Recent changesContact the site administrator
Home
VeraPeetersAtEuropeLoan

HISTORIE

Een van de grote projecten bij Lesire is voor EuropeLoan (http://www.europeloan.com).

Lesire heeft de software gemaakt en deze wordt nu aan EuropeLoan overgedragen. VeraPeeters werkt nog steeds enkele dagen per week voor EuropeLoan, om het ontwikkelteam te begeleiden bij de verdere implementatie van de software.

EuropeLoan heeft ongeveer 30 personeelsleden, waarvan momenteel 8 ontwikkelaars. Management is bekend met XP en staat er helemaal achter. Vera treedt op als XP Coach en expert, en is bezig de XP ervaring over te dragen aan de organisatie.

PRACTICES

PlanningGame: Ja. Het blijkt een openbaring voor klanten dat ze echt moeten kiezen. We gebruiken fysieke kaartjes. De kaartjes bevatten gewoon enkele woorden. Iedereen in development weet (min of meer) wat elk kaartje betekent. De kaartjes hangen tegen de muur. Bij het begin van de iteratie schatten ontwikkelaars kaartjes in. Meestal gebeurt dit met alle ontwikkelaars samen. Af en toe doen enkele van de ontwikkelaars het schatten. Customers kiezen dan kaartjes die zullen geïmplementeerd worden. Bij het begin van de iteratie worden de kaartjes grofweg in taken opgedeeld. Dit komt eigenlijk overeen met een soort eerste analyse. Niet alle kaartjes worden tegelijkertijd geïmplementeerd. We starten met de meest belangrijke, zodat we er tenminste zeker van zijn dat die zullen klaar geraken. Elke dag wordt er, tijdens de stand-up meeting, gekeken wat op dat moment de meest belangrijke taken zijn. Iedereen kiest dan waaraan hij die dag wil werken. Twee personen per taak.

FrequentReleases: Ja, om de 4 weken.

SystemMetaphor: Ja, sinds korte tijd heeft men een kort verhaal waarin het systeem wordt beschreven in de vorm van een aantal 'dozen'. Dan is het heel eenvoudig uit te leggen welke code welke andere delen van de code mag aanspreken. Blijkt erg handig te zijn bij het inwerken van nieuwe programmeurs. Dit is dus wel een technische metaphor.

SimpleDesign: Ja, maar is niet vanaf het begin van het ontwikkeltraject voldoende sterk gedaan (hoewel we toen dachten van wel). Daardoor zijn er stukken van de code waarvan we nu vinden dat ze veel simpeler kunnen. Refactoring dus. Ook wat DTSTTCPW en YAGNI: hoewel we een jaar geleden dachten dat we dat echt wel goed deden, blijkt nu eigenlijk dat we dat ongelooflijk veel sterker hadden kunnen doen... Het is een heel krachtige practice, die eigenlijk wel echt wat moeite vraagt. Refactoring gebeurt dikwijls nog in te grote 'brokken'. Het zou eigenlijk beter zijn als dit gewoon tussendoor in hele kleine stukjes gedaan wordt.

UnitTests: Ja. Gaat heel goed. Alle code heeft een unit test. Gebruiken JUnit. Dit is de eerste practice waarmee ze zijn begonnen. Vanaf het begin van dit project zijn er Unit tests gemaakt. Momenteel ben ik wel van mening dat de Unit Tests die we in het begin gemaakt hebben niet altijd gedetailleerd genoeg zijn. Refactoren dus.

FunctionalTests: Zijn we nu eingelijk mee begonnen. Het gedrag en de flow van de jsp-pages worden getest met HttpUnit. Werkt heel goed.

RefactorMercilessly: Ja, zoveel als mogelijk. Maar dat is eigenlijk nog niet genoeg. Als er gewerkt moet worden aan een stuk code waar iets mee scheelt, is de kans groot dat we er de tijd voor nemen om die eerst eens goed te refactoren. Typisch is wel dat die beslissing in het begin van de iteratie nogal gemakkelijker genomen wordt dan aan het einde. Er zijn nog altijd stukken code die nog eens aangepakt moeten worden.

PairProgramming: Ja, maar er is wel een drempel, vooral 's ochtens, wanneer mensen op verschillende tijdstippen binnenkomen. Een standup meeting helpt dan om met Pair Programming te starten. Ik ben ervan overtuigd dat het niet mogelijk is om elke dag van 's morgens tot 's avonds te pair programmen. Er zijn korte breaks nodig. Mensen hebben echt wel behoefte aan een beetje privacy. PairProgrammen is ook een fantastische manier om meer onervaren mensen in te werken. Persoonlijk denk ik dat het beter is om een oneven aantal mensen te hebben, zodat iedereen op zijn beurt eens een paar uurtjes wat minder intensief kan gaan werken.

CollectiveCodeOwnership: Ja. Een tijd geleden waren er sommige cruciale, wat minder simpele stukken, waarover de kennis maar bij 1 of 2 personen was. Door te PairProgramming en te Refactoren is de kennis over deze stukken ondertussen verspreid geraakt, en de angst om aan die stukken te werken is grotendeels verdwenen.

ContinuousIntegration: Ja. Elke nacht wordt er automatisch een build gestart, met Unit Tests en Acceptance tests. De resultaten worden naar iedereen gemaild. Als er problemen zijn, moet dit 's morgens onmiddellijk opgelost worden.

FortyHourWeek: Nee, nog niet goed genoeg, vooral vlak voor releases, onder andere vanwege onvoldoende Continuous Integration. Ik heb de indruk dat het aan het beteren is. Voor de ontwikkelaars zelf lijkt het eigenlijk een beetje een cultuurschok te zijn dat ze het een beetje rustiger aan moeten doen.

OnsiteCustomer: Ja, het is een klein bedrijf en de customer is enerzijds het management van EuropeLoan, en anderzijds de gebruikers van de BackOffice. De meeste customers zitten in dezelfde ruimte als de ontwikkelaars. Er zijn ook customers in andere landen, waarmee dus voornamelijk telefonisch contact is. De verschillende stories hebben hun eigen 'business owner'.

CodingStandards: Staan op de interne website. Als er iemand een bedenking heeft bij een bepaalde manier van werken, wordt er met de hele groep gediscussieerd en wordt er een standaard vastgelegd.

ERVARINGEN

Ongeveer 1,5 jaar geleden is het project bij EuropeLoan gestart. Alles moest van scratch opgebouwd worden. Het is lang een een- en twee-mans project geweest. Enerzijds wil dat zeggen dat een heel aantal van de practices niet kunnen toegepast worden. Maar anderzijds hebben alle kans gehad om met de meer programma-technische XP practices te experimenteren. UnitTesten is van in het prille begin heel systematisch doorgevoerd. Gaandeweg zijn we meer en meer practices beginnen toepassen.

Dit alles bleek zo enorm mee te vallen, ook voor de klanten bij EuropeLoan (=voornamelijk het management), dat er volledig voor XP gekozen is. We proberen nu zoveel mogelijk practices zo goed mogelijk toe te passen.

Bij EuropeLoan was het eigenlijk heel gemakkelijk om het management mee te krijgen. Vooral omdat de resultaten schitterend zijn. CTO van EuropeLoan is zelf ook programmeur geweest en heeft het XP concept opgepakt en uitgedragen.

PLANNEN

Werken aan de openstaande practices. En binnenkort evalueren en zien wat er kan veranderen. Vera blijft nog een tijdje bij EuropeLoan betrokken, maar het is de bedoeling dat ze binnenkort haar rol aan mensen binnen EuropeLoan gaat overdragen.

Informatie Brains4all