Seminar
Agile Development met Visual Studio Team System
IT CLUB – for developers/architects
[te Kortrijk op 27/11/2007]
Door de steeds toenemende complexiteit en veelvuldig wijzigende business requirements tijden de ontwikkeling van software is men genoodzaakt te werken met grote en flexibele teams van ontwikkelaars (mogelijks offshore) en analisten die correct kunnen opgevolgd worden vanuit het projectmanagement en die eenvoudig begeleid kunnen worden vanuit een op voorhand vastgelegd process. Er is behoefte aan Software Lifecycle Management en er moet ‘Agile’ gewerkt worden waarbij men afstapt van het klassieke waterval model voor ontwikkeling. Agile betekent dat het team snel moet kunnen inspelen op wijzigigen zowel qua requirements als teambezetting. Agile gaat er van uit dat er steeds een werkende versie aanwezig is en deelt het ontwikkelprocess onder in voorgedefineerde iteraties. Testen is zeker een vaste waarde in dit concept.
Hiervoor is er een centrale ondersteuning nodig waar Visual Studio gecombineerd met de Team Foundation Server een correcte oplossing biedt.
Belangrijkste onderdelen van Team System hiervoor zijn :
Source Control : Team foundation server heeft als belangrijkste eigenschap dat het de source code van een applicatie ontwikkeld door meerdere developers kan centraliseren en een versiebeleid over de code kan uitoefenen. Door het check-in/check-out mechanisme is men er van verzekerd dat centraal steeds een consistente code base aanwezig is en kunnen de developers flexibel ontwikkelen.
Unit Testing : Bij omvangrijke projecten waar door een uitgebreid team aan gewerkt word is het van belang om een goede basis voor testen te bouwen. Door unit testing kan de correctheid van code automatisch op geregelde tijdstippen (bij check in of na een build bv.) gecontroleerd worden. Hierdoor kunnen bugs vermeden worden.
Build Server : Om steeds een werkende versie te hebben van de totale applicatie laat TFS toe om een server dedicated op te stellen voor het maken van nightly builds. De applicatie word volledig gecompileerd waarna de unit tests opniew uitgevoerd kunnen worden en eventuele fouten snel aan het licht komen. Elke nacht kan hierdoor een nieuwe setup gegenereerd worden met een rapportering van de fouten uit de testen.
Process Templates : Team foundation server beheerd niet alleen de sourcecode van de applicatie maar ook verschillende andere items (documenten, workitems, rapportering) die nodig zijn vanuit het standpunt van analyse en ontwikkelprocess. Hiervoor worden MSF for Agile en MSF for CMMI als processmethodologie ondersteund waarbij het ganse team begeleid wordt (=process guidance).
Project Rapportering via een SharePoint portal : De status van een project bestaande uit de vooruitgang aan de aanwezige workitems, de ratio van gemelde/opgeloste bugs en meetresultaten zoals code churn kan door projectleaders eenvoudig bekeken worden. Hierdoor kan de nodige planning voor een project snel bijgestuurd worden.
Database Testing : Een applicatie kan maar echt goed getest worden naar performantie toe als er voldoende data in de database aanwezig is. Door de data generation technologie in Team System kan men snel deze nodig testdata gaan genereren.
Quality of Service : Om een beeld te hebben van de kwaliteit van de software kan men steunen op het uitvoeren van de nodige load tests, thread analysis en code coverage.
Deel 1: De concepten en voordelen van Team System op een rijtje.
In dit eerste deel komen bovenvermelde aspecten uitvoerig aan bod en worden scenarios geschetst waarbij elk van de concepten bruikbaar ingezet kunnen worden.
Deel 2: Praktijkvoorbeelden Agile development uit de realiteit.
Na de theoretische uiteenzetting in deel 1 worden enkele praktijkvoorbeelden aan de hand van demos voorgesteld. Hierin is zeker ruimte voor discussie.
De spreker : CLAEYS Kurt (MCT voor syntrawest, .NET Architect en MCPD Enterprise Application Development voor Ordina)
Doelgroep :
ü Developers/Architecten die TFS willen toepassen of meer erover te weten willen komen.
ü Project Leaders die een Agile process methodologie willen toepassen en hiervoor de nodig tools zoeken en willen implementeren.