Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Ruud Steeghs at 20:45 on Wednesday 13 December    Add 'Agile Development Practical experiences' site to delicious  Add 'Agile Development Practical experiences' site to technorati  Add 'Agile Development Practical experiences' site to digg  Add 'Agile Development Practical experiences' site to dzone

Johan Lybaert is programma manager in een project met een omvang van 100 manjaar, een team van meer dan 50 mensen waarbij een grote diversiteit aan (nieuwe) technologieen gebruikt wordt.

In het project wordt XP gebruikt als ontwikkelmethodiek en Scrum als project management methodiek.

In deze sessie voert Johan ons in sneltreinvaart langs een groot aantal best practices op het gebied van Agile development (het zijn er zoveel, het lijkt of hij ze allemaal behandelt ;-) )
Omdat zon beetje alle bekende best practices en uitgangspunten van XP en Agile Development voorbij komen, zullen we hier alleen de meest opmerkelijke en fundamentele noemen.

Als eerste belangrijke punt voor het toepasssen van Agile methodieken is feedback, continue feedback; blijven leren van je eigen en andermans ervaringen. Om dit voor elkaar te krijgen en om te leren van de ervaringen van het bedrijf, klant, teamleden en het project als geheel, wordt elke twee weken een evaluatie gehouden.

Naast technisch inhoudelijke kennis zijn de soft skills van een ontwikkelaar uitermate belangrijk. De tien belangrijke soft skills van de ontwikkelaar zijn:
- moed
- verantwoordelijkheid
- houden van staan
- directe communicatie
- houden van samenwerken (pair programming)
- denk voordat je handelt
- doe wat je zegt
- op zoek naar permanente feedback
- houd het eenvoudig (KISS, Keep It Simple, Stupid ;-) )
- houden van plezier hebben

Verantwoordelijkheid is belangrijk omdat niet langer dikke ontwerp document vooraf opgeleverd worden (BigDUF) die geimplementeerd moeten worden. Developers zijn Designers en hebben eigen verantwoordelijkheden bij het maken van het Design. Wel is er een Lead Architect die kritische ontwerpstukken toetst aan de overall architectuur.

Alle teamleden moeten houden van staan omdat elke ochtend (same time, same place) worden scrums gehouden. Elk deelteam heeft een eigen scrum, vervolgens is er een scrum of scrums. Aanwezigheid is ten alle tijden verplicht. Twee belangrijke regels zijn dat je tegen de groep praat en niet tegen de (scrum) leider en dat problemen na de meeting worden opgelost, niet tijdens.

Directe communicatie is belangrijk. Het is bewezen dat de minst efficiente vorm van communiceren is: een document schrijven en dit door de ander laten lezen. Of zoals een van de ontwikkelaars zegt: “ik word niet betaald om boeken te lezen, ik word betaald om code te schrijven”. Met andere woorden: directe kennisoverdracht en geen dikke documenten opsturen.

Pair programming wordt vooral als waardevol gezien wanneer iemand minder kennis heeft van een bepaald onderwerp of technologie. Het is dan ook een zeer effectieve manier om nieuwe teamleden in te werken. Doordat het team zo succesvol samenwerkt is het ook eenvoudig om nieuwe medewerkers in te passen.

Agile werken is vooral FUN! Plezier hebben staat voorop.

Het gehele ontwikkelteam is op een gestructureerde manier opgebouwd. Het gehele team wordt de software factory genoemd. In deze factory zijn feature teams, zeg maar deel teams die elk verantwoordelijk zijn voor een bepaald functioneel onderdeel.

Ondersteunend aan deze teams is er een Factory Support team dat zich bezig houdt met build management, configuration management, integration en database support.

Opmerkelijk in het verhaal van Johan was de hoeveelheid tijd en energie er gestoken wordt in leren. Er worden infosessies georganiseerd, leessessies en workshops.
Deze activiteiten dragen bij aan de ontwikkeling van de ontwikkelaars en daarmee ook aan de kwaliteit van de code en dus aan de toegevoegde waarde voor de klant!
Daarnaast is er in het projectteam veel aandacht voor coaches. Zo zijn er verticale coaches (een coach per functioneel deelgebied) en horizontale coaches (voor elke technologie)

Als laatste komen in dit uur de 10 Agile best practices voorbij. Alle punten dragen bij aan de agility van het project. Toch is het de combinatie van alle 10 dat je echt Agile bent volgens Johan.

Een belangrijk les die geleerd is over Unit testing is dat met name op het gebied van GUI testing en Integration testing de 80-20 regel toegepast moet worden. De hoeveelheid inspanning om dat laatste stukje GUI of integratie te unit-testen kost zoveel bouw inspanning dat het niet meer als de moeite waard beschouwd wordt.

Het is onmogelijk om hier in een paar woorden alle best practices en lessons learned te behandelen. Zodra de presentatie online is op de JavaPolis site is het zeker de moeite waard om de presentatie te downloaden en te leren van de slides. Veel punten zullen als open deur of vanzelfsprekend overkomen, andere punten zullen nieuw zijn. Maar… Hoewel het open deuren lijken, probeer de principes en practices maar eens succesvol toe te passen in een project!
Uiteindelijk weten we waarschijnlijk allemaal waarom en hoe we Agile projecten zouden moeten doen, maar hoeveel van ons doen het daadwerkelijk zo?

Waarschijnlijk beseffen veel klanten niet dat zij op deze interactieve en succesvolle wijze kunnen samen werken met IT-projecten. Wie gaat de uitdaging aan?


© 2020 Java Competence Network. All Rights Reserved.