RUP OP MAAT
Agile ICT met RUP, Scrum en PRINCE2 Derde herziene druk
Remi-Armand Collaris Eef Dekker
RUP op Maat Agile ICT met RUP, Scrum en PRINCE2 Derde, herziene druk
Remi-Armand Collaris Eef Dekker
Meer informatie over deze en andere uitgaven kunt u verkrijgen bij: Sdu Klantenservice Postbus 20014 2500 EA Den Haag tel.: (070) 378 98 80 fax: (070) 378 97 83 www.sdu.nl/service © 2011 Sdu Uitgevers bv, Den Haag Academic Service is een imprint van Sdu Uitgevers bv Eerste druk, 2006 Tweede, herziene druk, 2008 Derde, herziene druk, augustus 2011 Omslagontwerp: René Everwijn (Ordina) Fotografie cover: DigiDaan.nl Zetwerk: Studio Imago, Amersfoort Druk- en bindwerk: DeltaHage, Den Haag ISBN 978 90 12 58196 7 NUR 980, 982 Alle rechten voorbehouden. Alle auteursrechten en databankrechten ten aanzien van deze uitgave worden uitdrukkelijk voorbehouden. Deze rechten berusten bij Sdu Uitgevers bv. Behoudens de in of krachtens de Auteurswet gestelde uitzonderingen, mag niets uit deze uitgave worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar gemaakt in enige vorm of op enige wijze, hetzij elektronisch, mechanisch, door fotokopieën, opnamen of enige andere manier, zonder voorafgaande schriftelijke toestemming van de uitgever. Voor zover het maken van reprografische verveelvoudigingen uit deze uitgave is toegestaan op grond van artikel 16 h Auteurswet, dient men de daarvoor wettelijk verschuldigde vergoedingen te voldoen aan de Stichting Reprorecht (Postbus 3051, 2130 KB Hoofddorp, www.reprorecht.nl). Voor het overnemen van gedeelte(n) uit deze uitgave in bloemlezingen, readers en andere compilatiewerken (artikel 16 Auteurswet) dient men zich te wenden tot de Stichting PRO (Stichting Publicatie- en Reproductierechten Organisatie, Postbus 3060, 2130 KB Hoofddorp, www.cedar.nl/pro). Voor het overnemen van een gedeelte van deze uitgave ten behoeve van commerciële doeleinden dient men zich te wenden tot de uitgever. Hoewel aan de totstandkoming van deze uitgave de uiterste zorg is besteed, kan voor de afwezigheid van eventuele (druk)fouten en onvolledigheden niet worden ingestaan en aanvaarden de auteur(s), redacteur(en) en uitgever deswege geen aansprakelijkheid voor de gevolgen van eventueel voorkomende fouten en onvolledigheden. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the publisher’s prior consent. While every effort has been made to ensure the reliability of the information presented in this publication, Sdu Uitgevers neither guarantees the accuracy of the data contained herein nor accepts responsibility for errors or omissions or their consequences. Voor de templates in dit boek en op de website www.rupopmaat.nl, evenals voor het RUP-logo op het omslag geldt de volgende statement: “Reprint Courtesy of International Business Machines Corporation copyright (2006) © International Business Machines Corporation”.
Inhoudsopgave Ten geleide Woord vooraf Veranderingen ten opzichte van de tweede druk 1
3
4
XVII
Inleiding
1
1.1 1.2 1.3 1.4
Doel van dit boek Scope Templates Leeswijzer
2 3 4 4
De ontwikkelaanpak
9
Deel 1 2
XI XIII
Inleiding RUP
11
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
12 13 17 18 19 22 25 26 26
Watervalmethode versus iteratief ontwikkelen Uitgangspunten RUP Belangrijke begrippen Fasen Iteraties en timeboxing Disciplines RUP anti-patterns De RUP op Maat Development Case Samenhang met andere methoden
Use Cases
29
3.1 3.2 3.2 3.3 3.5 3.6
30 31 31 31 33 34
Use Cases in begrijpelijke taal Use Cases en systeem Use Case scenario’s Het Use Case Model De Use Case centraal Totstandkoming van een Use Case Specification
Het ontwikkelproces
35
4.1 4.2
37 38 39 41 43 43 45 45 46 48
4.3
4.4
Mijlpalen per fase Inception 4.2.1 Activiteiten in Inception 4.2.2 Verantwoordelijkheden in Inception Elaboration 4.3.1 Activiteiten specifiek voor Elaboration 4.3.2 Verantwoordelijkheden specifiek voor Elaboration Het iteratieve proces in Elaboration, Construction en Transition 4.4.1 Iteratieve managementactiviteiten 4.4.2 Iteratieve ontwerpactiviteiten
Inhoudsopgave
V
4.5
4.6
Deel 2 5
6
7
8
VI
4.4.3 Iteratieve realisatieactiviteiten 4.4.4 Iteratieve acceptatieactiviteiten 4.4.5 Iteratieve kwaliteitsactiviteiten 4.4.6 Verantwoordelijkheden in het iteratieve proces Transition 4.5.1 Activiteiten specifiek voor Transition 4.5.2 Verantwoordelijkheden specifiek voor Transition Het ontwikkelproces in de opdrachtgeverorganisatie 4.6.1 Procesgebieden en hun verbanden 4.6.2 Betrokkenheid van belanghebbenden
50 51 52 54 54 55 56 56 56 58
De managementaanpak
61
Projectmanagement in perspectief
63
5.1 5.2 5.3 5.4
64 66 68 70 70 71
Perspectief opdrachtgever Perspectief opdrachtnemer Projectorganisatie Inzet van opdrachtnemer en opdrachtgever 5.4.1 Inzet ontwikkelteam 5.4.2 Inzet belanghebbenden
Oriëntatie op de projectopdracht
75
6.1 6.2 6.3 6.4
76 77 77 79
Uitgangssituatie Rechtvaardiging ontwikkelmethode Kostenindicatie Offerte
Plan het ontwikkeltraject
81
7.1 7.2 7.3 7.4 7.5 7.6 7.7
82 83 83 84 85 85 86
Risico’s Scope Inschatting Resources Globale planning Het inrichten van de projectomgeving Checklist
Manage iteraties
87
8.1 8.2 8.3 8.4 8.5 8.6 8.7
88 89 89 90 90 91 92
Detailplanning Communicatie Afsluiten van RUP-fasen Risicobeheersing Scopebewaking Tijd- en budgetbewaking Uitloop is een keuze
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
Deel 3 9
Rollen
9.1
9.2
9.3
9.4
9.5
9.6
10
Overzicht van rollen, taken en werkproducten
Belanghebbenden 9.1.1 Stuurgroep 9.1.2 Product Owner 9.1.3 Businessanalist 9.1.4 ICT Architect 9.1.5 Implementatiespecialist 9.1.6 Beheerder 9.1.7 Acceptatietester 9.1.8 Domeindeskundige Projectmanagement 9.2.1 Teamleider 9.2.2 Ontwikkelteam Requirements 9.3.1 Informatieanalist 9.3.2 Use Case Ontwerper Architectuur en Bouw 9.4.1 Softwarearchitect 9.4.2 Programmeur 9.4.3 User Interface Designer Test 9.5.1 Testmanager 9.5.2 Tester Ondersteuning 9.6.1 Toolbeheerder 9.6.2 Integrator
95 97
98 99 100 100 101 101 102 103 103 104 104 105 106 106 107 108 108 109 109 110 110 111 111 111 112
Taken
113
10.1 Belanghebbenden 10.1.1 Participeer in het definiëren van het doel 10.1.2 Beschrijf acceptatiecriteria en -procedure 10.1.3 Start een geprioriteerde lijst met wensen 10.1.4 Keur een werkproduct goed 10.1.5 Plan het implementatietraject 10.1.6 Richt OTAP-omgeving in 10.1.7 Actualiseer de wensen en prioriteer 10.1.8 Visualiseer de haalbaarheid van de release 10.1.9 Participeer in het detailleren van Use Cases 10.1.10 Ontwikkel ondersteunend materiaal 10.1.11 Deploy een applicatie 10.1.12 Beschrijf onderhoudsprocedures 10.1.13 Voer acceptatietests uit
114 115 116 116 117 117 118 118 119 119 120 120 121 121
VII
10.2
10.3
10.4
10.5
10.6
VIII
10.1.14 Voer gebruikersacceptatietests uit 10.1.15 Behandel Wijzigingsvoorstellen 10.1.16 Voer externe review uit 10.1.17 Train de organisatie 10.1.18 Richt de helpdesk in 10.1.19 Voer de productieacceptatietest uit Projectmanagement 10.2.1 Identificeer risico’s en tegenmaatregelen 10.2.2 Plan het ontwikkeltraject 10.2.3 Beoordeel het Acceptatieplan 10.2.4 Doe een kick-off 10.2.5 Plan de iteratie 10.2.6 Bespreek dagelijks de voortgang 10.2.7 Manage de iteratie 10.2.8 Demonstreer het iteratieresultaat 10.2.9 Evalueer de iteratie Requirements 10.3.1 Ontwikkel een gezamenlijke visie 10.3.2 Creëer een gemeenschappelijk discussiedomein 10.3.3 Inventariseer requirements 10.3.4 Beschrijf navigatiemogelijkheden 10.3.5 Specificeer Use Cases 10.3.6 Review Use Cases Architectuur en Bouw 10.4.1 Construeer de software architectuur 10.4.2 Modelleer Componenten 10.4.3 Modelleer de database 10.4.4 Visualiseer Use Cases 10.4.5 Maak technische vertalingen van Use Cases 10.4.6 Bouw functionaliteit 10.4.7 Review technische werkproducten Test 10.5.1 Ontwikkel de testaanpak 10.5.2 Manage Acceptatiebevindingen 10.5.3 Schrijf Testontwerpen 10.5.4 Voer tests uit 10.5.5 Vat testresultaten samen 10.5.6 Beoordeel Acceptatiebevindingen 10.5.7 Review test werkproducten Ondersteuning 10.6.1 Richt ontwikkelomgeving in 10.6.2 Richt Configuration Management omgeving in 10.6.3 Stel een oplevering samen 10.6.4 Houd collegiale reviews
122 122 123 123 124 124 125 125 126 126 127 128 129 129 130 130 131 131 132 133 133 134 135 136 136 137 137 138 138 139 139 140 140 141 141 142 142 143 143 144 144 145 145 146
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
11
Werkproducten
147
11.1 Belanghebbenden 11.1.1 Business Proces Model 11.1.2 Project Start Architectuur 11.1.3 Acceptatieplan 11.1.4 Product Backlog 11.1.5 OTAP-omgeving 11.1.6 Release Burndown Chart 11.1.7 Trainingsmateriaal 11.1.8 Beheerdocumentatie 11.1.9 Acceptatiebevindingen 11.1.10 Wijzigingsvoorstel 11.2 Projectmanagement 11.2.1 Risicolijst 11.2.2 Software Development Plan 11.2.3 Voortgangsrapportage 11.2.4 Iteratieplan (taakbord) 11.2.5 Iteratie Burndown Chart 11.3 Requirements 11.3.1 Vision 11.3.2 Glossary 11.3.3 Use Case Model 11.3.4 Use Case Specification 11.3.5 Navigation Map 11.4 Architectuur en Bouw 11.4.1 Proof of Concept 11.4.2 Architectureel Prototype 11.4.3 Software Architectuur Document 11.4.4 Design Model 11.4.5 Datamodel 11.4.6 Use Case Realization 11.4.7 Werkende Code 11.5 Test 11.5.1 Testplan 11.5.2 Testontwerp 11.5.3 Testsuite 11.5.4 Testrapport 11.6 Ondersteuning 11.6.1 Ontwikkelomgeving 11.6.2 Opleverdocument 11.6.3 Oplevering
149 149 150 150 151 151 152 152 153 154 155 156 156 157 158 158 159 159 160 160 161 162 163 164 164 165 165 166 166 167 167 168 168 169 169 170 170 170 171 171
IX
Deel 4
Bijlagen
173
Bijlage I Vergelijking van RUP op Maat met RUP en OpenUp Bijlage II Templates Vision template Acceptatieplan template Use Case Model template Software Development Plan template Software Architectuur Document template Use Case Specification template Bijlage III Projectinschatting met Use Case Punten Bijlage IV Referenties Bijlage V Glossary Bijlage VI Totaaloverzicht verantwoordelijkheden
X
175 181 183 189 193 197 203 209 217 225 229 237
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
Ten geleide
Samenwerking als sleutel tot succes Al geruime tijd lopen we tegen de grenzen aan van onze huidige, hoofdzakelijk Anglo-Amerikaans georiënteerde werkwijzen. Deze werkwijzen zijn ontstaan gedurende de industriële revolutie met de introductie van lopendebandwerk. Hierbij werd gebruikgemaakt van laaggeschoold personeel dat een kunstje werd geleerd dat ze gedachteloos konden herhalen. We bevinden ons echter nu in een tijdperk waarin kennis een veel belangrijker rol speelt dan productiemiddelen. We nemen geen hooggeschoold personeel aan om gedachteloze kunstjes te herhalen. We verwachten dat ze al hun kennis en vaardigheden inzetten om zo effectief mogelijk te zijn in hun werk, om te innoveren. Er is in managementland een nieuwe beweging te bespeuren die weer teruggrijpt op onze eigen Rijnlandse manier van denken. Deze denkwijze is beter toegerust op het stimuleren van teamvorming. Een team is een groep van mensen die zodanig op elkaar zijn ingespeeld dat ze boven de mogelijkheden uit stijgen die ze als som van individuen hebben. En teams zijn wat we nodig hebben, om ons in de huidige globaliserende maatschappij, met toenemende concurrentie en met zaken als outsourcing en offshoring, als organisatie staande te kunnen houden. In ICT-land zien we dezelfde beweging, weg van het blind volgen van processen en initiële planningen, richting flexibel omarmen van verandering. Ook hier worden echte teams steeds belangrijker, teneinde met de overvloed aan technische wensen en mogelijkheden en de complexiteit van moderne ICT-systemen te kunnen omgaan. Dat ICT-ers zich verenigen in multidisciplinaire teams is echter niet meer voldoende. Ook participatie van business en beheer is onmisbaar om de nieuwe generatie ICT-voorzieningen succesvol van de grond te krijgen. Dit is precies waar de steeds prominenter aanwezige Agile-beweging met haar diversiteit aan methoden, zoals RUP en Scrum, naartoe werkt. Voor u ligt de derde, herziene druk van het boek RUP op Maat. Een toegankelijke kijk op hoe succesvolle organisaties met hun ICT-ontwikkeling omgaan, gebruikmakend van RUP en Scrum, aansluitend op bestaande managementstructuren als PRINCE2. Het boek is gebaseerd op vele jaren ervaring in de toepassing van en ondersteuning bij het toepassen van deze methoden. In
Ten geleide
XI
deze derde druk is weer een aantal nieuwe inzichten verwerkt die dit boek hernieuwd het lezen waard maken. Ik wens u veel leesplezier. Met vriendelijke groet, Barend de Zoete Directeur ICT Ordina N.V. Nieuwegein, juni 2011
XII
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
Woord vooraf
Tweede druk, mei 2008 Het heeft even geduurd, een jaar om precies te zijn, maar hij ligt er: de tweede, herziene druk van ons boek RUP op Maat. Een mooi moment voor een terugblik. Een aantal jaren geleden zijn we allebei aan het pionieren geslagen met RUP. Eef als informatieanalist en Remi-Armand als projectleider. Het iteratief werken voelde vrij natuurlijk. Het aantal werkproducten dat we vanuit RUP zouden kunnen maken was echter overdonderend. We moesten dus kiezen. De vraag die ons daarbij heeft geholpen is: “Wat missen we nu en wat heeft RUP daarvoor te bieden?” Zo hebben we ervaring opgedaan met werkproducten, op het moment dat we ze nodig hadden. Daarna kwam de volgende hobbel. Bij RUP worden templates voor een groot aantal werkproducten meegeleverd. Deze laten veel ruimte voor interpretatie; terecht natuurlijk, want ze moeten breed inzetbaar zijn. Verder levert RUP twee varianten, een formele en een informele. We begonnen met het vertalen van de informele variant en hebben die naar behoefte uitgebreid met elementen uit de formele variant. Ook maakten we de helpteksten en de invulling specifiek aan de hand van onze ervaring in projecten. Ook het gebruik van Use Cases was niet vanzelfsprekend. Bij het uitproberen van nieuwe ideeën en technieken hanteerden we als belangrijkste uitgangspunt dat deze voor gebruikers begrijpelijk moeten zijn. Uit de terugkoppeling van gebruikers merk je dan snel genoeg wat werkt en wat niet. Bij de totstandkoming bleek het te helpen om er in een vroeg stadium naast de ontwerper ook de programmeur, tester en user interface designer bij te betrekken. Ter ondersteuning van de projecten die we samen uitvoerden, zijn we aan de slag gegaan met het vastleggen van de opgedane ervaringen. Het eindresultaat is een handzaam boek dat in de markt duidelijk in een behoefte voorziet. Het vertelt in helder Nederlands hoe je RUP praktisch kunt inzetten. Onze ervaringen met het gebruik van het boek bij het geven van workshops, het uitvoeren van RUP-coaching en terugkoppeling uit projecten, vormden aanleiding voor een herziene versie. Als je na jarenlange ervaring voor het eerst iteratief te werk gaat, kan het gebeuren dat je duizelingen en kronkels in je hoofd ervaart en een lichte misselijkheid. Dit is niet vreemd, want voor iteratief ontwikkelen is een transformatie van denken nodig. Ons boek kan helpen om het gevolgde ontwikkelproces kritisch en praktisch te blijven verbeteren.
Woord vooraf
XIII
We wensen jullie veel succes bij de toepassing van RUP. Remi-Armand Collaris Eef Dekker Diverse collega’s hebben een bijdrage geleverd aan de totstandkoming van dit boek, door ons te faciliteren of door commentaar te leveren op de inhoud. Al deze collega’s hartelijk bedankt! Derde druk, augustus 2011 Het is alweer drie jaar geleden dat de tweede druk van de pers rolde. In die tijd is er in ICT-land aardig wat gebeurd en hebben wij, de auteurs, weer een heleboel ervaring opgedaan. Een van de belangrijkste inzichten is dat het niet voor iedereen duidelijk is waaróm je met een bepaalde methode aan de slag gaat. Je wilt iets veranderen want je bent niet tevreden over hoe het nu loopt. Je wilt iets in de richting van sneller, goedkoper, beter of blijer. Snellere time-to market, goedkoper voor een betere business case, hogere kwaliteit voor lagere ontwikkel-, beheer- en onderhoudskosten, blijere gebruikers en ontwikkelaars. Al deze zaken hangen met elkaar samen. Hieruit blijkt dat het invoeren van een methode geen doel op zich is. De resultaten in de richting van de hierboven beschreven doelen zijn veel belangrijker. Het mag ook duidelijk zijn dat voor het halen van deze doelen het blind invoeren en volgen van een methode niet de oplossing kan zijn. Als dat wel zo was, zouden we niet zo’n grote variëteit in methoden en hun toepassing kennen. ICT-landschappen en de omgevingen waarvoor zij opereren zijn zo complex geworden dat we alleen door intensieve samenwerking en het laten evolueren van ICT-oplossingen aan de eerder genoemde doelen tegemoet kunnen komen. Hiervoor is het nodig dat alle direct betrokkenen bij een ICT-initiatief (zowel klant als ICT-medewerkers) zich één team voelen en zich samen eigenaar voelen van de oplossing en de weg daar naartoe. Deze weg hoeft niet vanuit het niets verzonnen te worden, maar kan worden geïnspireerd door eerdere ervaringen binnen de organisatie of daarbuiten in de vorm van methoden. Een van die methoden is RUP. Deze methode levert vooral processen en tools om tot specialistische werkproducten te komen. Om zelforganisatie van teams te ondersteunen hebben we in onze coachingspraktijk de Agile-methode Scrum regelmatig toegepast en daar goede ervaringen mee opgedaan. Scrum is een framework dat goed is te combineren met andere methoden. Het biedt praktische hulpmiddelen om het team zijn eigen werkwijze te laten verbeteren. Dit sluit weer prima aan op het eerste uitgangspunt van RUP: ‘Pas je proces aan’. Dit is een van de redenen om in deze druk van RUP op Maat aandacht te besteden aan de manier waarop Scrum binnen een RUP-project kan worden ingezet om de hierboven beschreven doelen nog een stap dichterbij te brengen.
XIV
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
Het echt halen van die doelen blijft echter mensenwerk. Hiervoor zijn experts nodig, zowel vanuit de business als vanuit ICT. Het helpt als ze vertrouwen krijgen en optimaal worden ondersteund om hun werk goed te kunnen doen. We hopen met onze coachingsactiviteiten en workshops en met deze nieuwe, geheel herziene derde druk van RUP op Maat hier een bijdrage aan te leveren. Remi-Armand Collaris Eef Dekker Woord van dank Ook deze keer hebben diverse collega’s en bekenden een bijdrage geleverd aan de totstandkoming van dit boek, door ons te faciliteren of door commentaar te leveren op de inhoud. Voor de derde druk waren dit (in alfabetische volgorde): Leon Aarts, Tarik Balik, Ilse Dekker, Linda Dorlandt, René Everwijn, Saskia Hinrichs, Marianne Jelgerhuis, Gert van de Krol, Gerard Kuipers, Henk Ledderhof, Harmen Mantel, Anne Miedema, Henk Noothout, Theun Oostenbrug, Dick van der Sar, Linda van der Spek, Emil van de Streek en Anko Tijman. Al deze mensen en al diegenen die aan de eerdere drukken hebben meegewerkt, hartelijk bedankt!
Woord vooraf
XV
Veranderingen ten opzichte van de tweede druk
RUP op Maat en de taal We hebben gemerkt dat het niet verheldert om de Engelse RUP-termen te gebruiken. Daarom hebben we, waar mogelijk, Engelse termen vervangen door gangbare Nederlandse termen (bijvoorbeeld: Data Model wordt Datamodel, Risk List wordt Risicolijst) of hebben we de term vereenvoudigd: Product Acceptance Plan wordt Acceptatieplan. De term Component is veranderd in Werkende Code, zodat de bewoording meer het doel aanduidt dan het middel om er te komen. Vereenvoudigingen Sommige werkproducten zijn geïntegreerd. Zo zijn Configuratiehandleiding en Deploymenthandleiding samengenomen als Beheerdocumentatie en is de Gebruikershandleiding opgenomen in Trainingsmateriaal. De Data Migration Specification is opgenomen in de Project Start Architectuur, en het Business Object Model in het Business Proces Model. Soms hebben we een meer omvattend begrip gekozen, zodat Unit Test is opgenomen in het nieuw geïntroduceerde Testsuite. Dezelfde beweging is uitgevoerd voor rollen: Acceptatietestrollen is verder vereenvoudigd tot Acceptatietester, en Beheerrollen tot Beheerder. Er waren twee soorten bevindingen te managen: die van het team en die van de accepterende partij. We vereenvoudigden dit door de bevindingen van het team onder de zelforganisatie van het team te laten vallen, zodat ‘manage bevindingen’ alleen nog slaat op de acceptatiebevindingen. Om die reden is de bijbehorende taak ‘manage acceptatiebevindingen’ genoemd. RUP op Maat en andere methoden We hebben nu meer expliciet gekozen voor Scrum als invulling voor de management workflow (zie paragraaf 4.4.1). Hierdoor is de invulling van deze workflow flink gewijzigd en is de Product Owner rol toegevoegd, evenals de werkproducten Product Backlog, Knelpuntenlijst, Iteratie Burndown Chart en Release Burndown Chart. Ook in de Doelstellingsworkflow (zie paragraaf 4.2.1) is de Scrum-invulling te zien in de extra taak ‘Actualiseer de wensen en prioriteer’, waarbij de initiële vorm van de Product Backlog ontstaat. Naast het hoofdstuk over RUP en PRINCE2 dat al bestond, hebben we een paragraaf toegevoegd om de aandachtsgebieden van de verschillende methodieken inzichtelijk te maken (zie paragraaf 2.9).
Veranderingen ten opzichte van de eeerste druk
XVII
RUP op Maat en andere procesgebieden Hoe verhoudt RUP zich nu tot gerelateerde procesgebieden, zoals business modeling, implementatie, enterprise architectuur en beheer? We hebben een paragraaf toegevoegd waarin we deze relatie expliciet maken (zie paragraaf 4.6). Ook de workflows zijn hierdoor uitgebreid met de rol van Implementatiespecialist en de werkproducten Business Proces Model en Project Start Architectuur. Workflows De naamgeving van de workflows is meer gericht op de inhoud: de Inception workflow heet nu Doelstellingsworkflow, de Elaboration workflow is Architectuurworkflow geworden en de Transition workflow is hernoemd naar Afrondingsworkflow. De aanpassingen als gevolg van de aandacht voor andere procesgebieden en methoden en de toevoeging van Scrum zijn ook doorgevoerd in de workflows (zie hoofdstuk 4). Het managementdeel In het managementdeel is de tekst verhelderd en ingrijpend ingekort, met name in de hoofdstukken 6 t/m 8. Ook hebben we de diverse stuurgroeprollen voor de verantwoordelijkhedenmatrix samengevoegd in de rol Stuurgroep, waardoor we in dat verband niet afzonderlijk meer spreken over Contractmanager, Projecteigenaar en Projectmanager. De rol van Projectleider is hernoemd naar Teamleider, om beter tot uitdrukking te brengen dat deze rol ondersteunend is voor een gedeelte van het project (ICT-deel) – niet voor het gehele project – en om beter aan te sluiten bij PRINCE2. De taak ‘Sluit het project af’ is samengevoegd met de taak ‘Evalueer een iteratie’; het werkproduct Projectevaluatierapport is buiten de scope van RUP op Maat geplaatst, omdat deze niet bij de Teamleider ligt. PRINCE2 in de 2009-versie De gezichtspunten van PRINCE2 in de 2009-versie zijn voor zover nodig verwerkt in hoofdstuk 5, waar we de relatie tussen PRINCE2 en RUP bespreken. Overige wijzigingen Bijlage III over Projectinschatting met Use Cases heeft een nieuwe inhoud; we gaan dieper in op de achtergronden en do’s en don’ts van het tellen. De eerdere inhoud (de beschrijving van de berekeningsmethode) is verplaatst naar publicaties op de website www.rupopmaat.nl Een overzicht van wijzigingen in de tweede druk ten opzichte van de eerste druk is terug te vinden op www.rupopmaat.nl/wijzigingen2006-2008.html
XVIII
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
1. Inleiding
1. Inleiding
1
ICT-bedrijven en ICT-afdelingen nemen geregeld projectopdrachten aan. Dit zijn opdrachten waarbij een team van ICT-medewerkers (een gedeelte van) een project voor een opdrachtgever realiseert. ICT treedt op als opdrachtnemer binnen een project bij de opdrachtgever. Het levert een team (verder aangeduid als ontwikkelteam) inclusief Teamleider en aanvaardt projectverantwoordelijkheid. De business vult dit team aan met domeindeskundigen. Projectopdrachten kunnen in omvang en scope sterk variëren. Toch hebben ze meestal met elkaar gemeen dat binnen een projectopdracht een systeem wordt gerealiseerd met als basis specificaties, die door, of in samenwerking met, de opdrachtgever worden opgesteld. Dit proces heeft een wetmatigheid gemeen met lopen op water: zolang de basis is bevroren, is het goed te doen (behalve als je te snel wilt, dan merk je dat je je op glad ijs begeeft…). Helaas is er een andere wetmatigheid in softwareontwikkeling die stelt dat een opdrachtgever pas gedurende een project helder krijgt wat hij precies nodig heeft. Hierdoor zijn zowel de specificaties als de van de ICT-opdrachtnemer verwachte diensten gedurende het project voortdurend onderhevig aan verandering. In veel projecten is het management gericht op het zo vroeg mogelijk vastleggen en bewaken van specificaties, om op die manier uitloop in tijd tegen te gaan. Hierdoor verstart echter het ontwikkelproces en leveren projecten wél wat vooraf is afgesproken, maar niet wat de business nodig heeft. In situaties waarin de specificaties nog niet volledig zijn uitgekristalliseerd, is het beter een projectmanagement- en ontwikkelmethode te kiezen die veranderende inzichten omarmt om daarmee zoveel mogelijk waarde te leveren voor de business. 1.1
Doel van dit boek
Dit boek biedt een gebruiksklare aanpak voor ICT-ontwikkeling gebaseerd op in de markt bewezen methodieken. Het biedt nieuw gevormde teams een mogelijkheid om met een compact, begrijpelijk proces van start te gaan. Ervaren teams kunnen het geboden proces en begrippenkader gebruiken om hun werkwijze met elkaar te bespreken en te verbeteren. Dit boek is een praktisch uitgewerkte toepassing van het Rational Unified Process (RUP) van IBM (een gestructureerde iteratieve aanpak), aangevuld met practices uit Scrum (een Agile-aanpak die zelforganisatie van teams bevordert). Ook laten we zien wat de verbanden zijn met de populaire projectmanagementmethodiek PRINCE2. Wij bieden een aanpak voor het iteratief uitvoeren en managen van projectopdrachten, vanaf het offertetraject tot en met de oplevering van een bruikbare ICT-oplossing. We leveren een gemeenschappelijk referentiekader, zodat communicatie tussen alle betrokken partijen verbetert. Verder hanteren we een voor de Nederlandse markt herkenbaar begrippenkader, waardoor we de leercurve verkleinen. 2
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
Dit boek is gericht op iedereen die bij een softwareontwikkelproject is betrokken of die zich erop wil voorbereiden. Dit zijn ontwikkelteamleden en ICT-managers, maar ook belanghebbenden, zoals gebruikers, beheerders en management vanuit de business. Daarnaast is het boek geschikt voor studenten die in het kader van hun opleiding behoefte hebben aan een geïntegreerde kijk op het toepassen van in de ICT gangbare methodieken. 1.2
Scope
Het boek gaat uit van een aantal voorwaarden die het bruikbaarheidsgebied van de ontwikkelaanpak afbakenen. • Er is sprake van een opdrachtgever-opdrachtnemersituatie (eventueel binnen één organisatie) • De opdrachtnemer krijgt opdracht voor (een gedeelte van) een project van de opdrachtgever: de projectopdracht • De opdrachtnemer heeft projectverantwoordelijkheid en is verantwoordelijk voor de teambezetting, inclusief een Teamleider voor dit team • De projectopdracht is klein tot middelgroot; dit betekent een teamgrootte tot circa 12 man en een doorlooptijd tot circa 18 maanden • Het betreft een ICT-ontwikkeltraject Als een project niet aan deze voorwaarden voldoet, kan het boek nog steeds als basis dienen voor de aanpak, maar moet er meer aandacht worden besteed aan het op maat maken voor jouw situatie. Bovengenoemde voorwaarden leiden tot speciale aandacht voor de volgende zaken. • Het managen van een projectopdracht met RUP en PRINCE2 Het boek gaat uitgebreid in op voor de Teamleider belangrijke werkproducten en de door hem te ontplooien activiteiten • De opdrachtnemer-opdrachtgeversituatie Het uitvoeren van een project in een opdrachtnemer-opdrachtgeversituatie heeft gevolgen voor zowel de inrichting van het project als voor de activiteiten van de Teamleider • Het betrekken van belanghebbenden met RUP en Scrum We beschrijven de belanghebbendenrollen, zoals beheerders, gebruikers en managers die tijdens het ontwikkeltraject nodig zijn, en de manier waarop deze zichzelf kunnen organiseren
1. Inleiding
3
• Het bewaken van de scope We beschrijven hoe een strakke scope kan samengaan met het zo goedkoop mogelijk omarmen van voortschrijdend inzicht Bij de opzet van dit boek ligt de nadruk op ontwikkelactiviteiten en het managen hiervan. Hierdoor zullen de projectorganisatie aan de kant van de opdrachtgever en diens beheeractiviteiten tijdens en na het in productie nemen minder worden belicht. Het is de bedoeling een overkoepelend beeld te geven van het opzetten van, het meedraaien in en het managen van een ICT-ontwikkelproject. 1.3
Templates
Bij RUP op Maat zijn voor een aantal belangrijke werkproducten templates ontwikkeld. Het betreft de volgende templates. • Glossary template • Vision template • Projectinschatting template (Rekenblad voor Use Case Punten Analyse) • Use Case Model template • Software Development Plan template • Iteratieplan template • Software Architectuur Document template • Use Case Specification template • Use Case Realization template Een aantal van deze templates is te vinden in Bijlage II. De laatste versie kun je downloaden vanaf de bij het boek behorende website www.rupopmaat.nl 1.4 Leeswijzer Het boek bestaat uit vier delen. Hierna volgt een overzicht van deze delen en hun hoofdstukken. Per hoofdstuk geven we een korte beschrijving van de inhoud en tips voor het lezen ervan. Deel 1: De ontwikkelaanpak Deel 1 richt zich op iedereen die bij het ontwikkeltraject is betrokken. Dit zijn zowel ontwikkelteamleden als belanghebbenden, waaronder gebruikers, beheerders en managers. Na een inleiding in RUP en een uitleg van Use Cases, volgt een beschrijving van het RUP op Maat ontwikkelproces.
4
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
• Hoofdstuk 2: Inleiding RUP Behandelt de ideeën achter iteratief ontwikkelen met RUP. Naast een toelichting op het bijbehorende begrippenkader wordt uitgebreid aandacht besteed aan de uitgangspunten van RUP en de samenhang met andere methoden. Lees dit hoofdstuk als je nog niet bekend bent met RUP of om je kennis op te frissen. • Hoofdstuk 3: Use Cases Beschrijft de ideeën achter Use Cases en waarom RUP ze als basis neemt voor het gehele ontwikkelproces. Lees dit hoofdstuk als je nog niet bekend bent met Use Cases en hun functie binnen het RUP-ontwikkelproces, of om je kennis op te frissen. • Hoofdstuk 4: Het ontwikkelproces Beschrijft het ontwikkelproces, gebruikmakend van practices uit RUP en Scrum. Hierin zijn workflows te vinden die de samenhang tussen rollen, taken en werkproducten en hun volgordelijkheid tonen, alsmede verantwoordelijkhedenmatrices die laten zien welke rollen op welke wijze zijn betrokken bij het vervaardigen van welke werkproducten. Je kunt aan de hand van dit hoofdstuk een selectie maken van voor jou interessante rollen, taken en werkproducten; je kunt deze uitdiepen in Deel 3. Deel 2: De managementaanpak Deel 2 richt zich op leidinggevenden en dan met name op de Teamleiderontwikkeling. Na een positionering van de projectopdracht ten opzichte van het project van de opdrachtgever en diens projectorganisatie, wordt het managen van de diverse projectfasen behandeld. Er is beschreven welke documenten (werkproducten) cruciaal zijn voor het opzetten en managen van een projectopdracht en in welke tijdsvolgorde ze tot stand komen. Tot slot wordt aandacht besteed aan projectbeheersing en het managen van iteraties. • Hoofdstuk 5: Projectmanagement in perspectief De projectopdracht wordt bekeken vanuit het perspectief van de opdrachtgever en opdrachtnemer. Verder wordt de projectorganisatie besproken en de plaats die het ontwikkelteam hierin inneemt. Dit hoofdstuk vormt daarmee de inleiding op de RUP op Maat managementaanpak. • Hoofdstuk 6: Oriëntatie op de projectopdracht Aan het accepteren van een projectopdracht door de opdrachtnemer gaat altijd een oriëntatie vooraf. De opdrachtnemer verschaft zich een beeld van de inhoud van de uit te voeren projectopdracht en de te volgen aanpak. Dit hoofdstuk besteedt aandacht aan de hiertoe benodigde informatie, een eerste kosteninschatting en scopebepaling, en de hieruit voortvloeiende offerte.
1. Inleiding
5
• Hoofdstuk 7: Plan het ontwikkeltraject In de Inception-fase ligt de nadruk op bereiken van overeenstemming over het doel van de projectopdracht. Dit hoofdstuk belicht de hiertoe benodigde managementactiviteiten (scopebepaling, budgettering, resourcing, planning en het inventariseren van risico’s) en de hieruit resulterende documenten. De aan het einde van dit hoofdstuk gegeven checklist kan meehelpen bepalen wanneer de Inception-fase kan worden afgesloten. • Hoofdstuk 8: Manage iteraties Gedurende het hele project moet de Teamleider iteraties managen en het project bewaken. Dit hoofdstuk belicht de activiteiten die de Teamleider ontplooit om zijn team te faciliteren en om milestones, risico’s, scope, tijd en budget te bewaken. Deel 3: Overzicht van rollen, taken en werkproducten Deel 3 biedt een compleet overzicht van alle in deze aanpak onderkende rollen, taken en werkproducten. Het dient als naslag waarin in tabelvorm de informatie uit de voorgaande hoofdstukken is verzameld en uitgediept. • Hoofdstuk 9: Rollen Biedt een compleet overzicht van binnen RUP op Maat onderkende rollen. Besteedt hierin vooral aandacht aan voor jou interessante rollen. • Hoofdstuk 10: Taken Biedt een compleet overzicht van binnen RUP op Maat onderkende taken. Besteedt hierin vooral aandacht aan voor jou interessante taken. • Hoofdstuk 11: Werkproducten Biedt een compleet overzicht van binnen RUP op Maat onderkende werkproducten. Besteedt hierin vooral aandacht aan voor jou interessante werkproducten. Deel 4: Bijlagen In dit deel zijn alle bijlagen verzameld die bij dit boek zijn opgenomen. • Bijlage I: Vergelijking van RUP op Maat met RUP en OpenUP De onderkende disciplines, rollen en werkproducten uit RUP op Maat worden vergeleken met de disciplines, rollen en werkproducten uit RUP 7.1 enerzijds en OpenUP 1.0 anderzijds. • Bijlage II: Templates In deze bijlage zijn de bij RUP op Maat behorende templates voor de belangrijkste werkproducten verzameld. Zie 1.3 Templates voor een overzicht.
6
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2
• Bijlage III: Projectinschatting met Use Cases In deze bijlage worden praktische tips gegeven over het toepassen van de Use Case Punten Analyse om tot een vroege projectinschatting te komen die begrijpelijk is voor belanghebbenden. • Bijlage IV: Referenties Verwijzingen naar voor deze aanpak gebruikte bronnen en bronnen die kunnen dienen als verdieping van in dit boek besproken onderwerpen. • Bijlage V: Glossary De Glossary biedt een lijst van in dit boek gehanteerde begrippen en afkortingen en hun betekenis. Daar waar we zijn afgeweken van het standaard RUP-begrippenkader, zijn de overeenkomstige RUP-termen in de Glossary terug te vinden. • Bijlage VI: Totaaloverzicht verantwoordelijkheden Alle in dit boek vermelde verantwoordelijkhedenmatrices (rollen met verantwoordelijkheden bij werkproducten) zijn in deze bijlage samengebracht.
1. Inleiding
7
RUP op Maat - Agile ICT met RUP, Scrum en PRINCE2 Derde herziene druk Vandaag de dag is de populariteit van Agile als aanpak voor ICT-ontwikkeling groter dan ooit. Iedereen ZLO JUDDJ JRHGNRSHU VQHOOHU EHWHU HQ EOLMHU 6QHOOHUH WLPHWR PDUNHW JRHGNRSHU YRRU HHQ EHWHUH EXVLQHVV FDVHEHWHUHNZDOLWHLWYRRUODJHUHRQWZLNNHOEHKHHUHQ RQGHUKRXGVNRVWHQEOLMHUHJHEUXLNHUVHQRQWZLNNHODDUV Het halen van deze doelstellingen gaat echter niet vanzelf en ervaring leert dat het doen van een dagelijkse stand-up meeting hiervoor niet voldoende is. $JLOHVWDDWYRRUYHUDQGHULQJRPDUPHQPXOWLGLVFLSOLQDLU VDPHQZHUNHQ ]HOIRUJDQLVDWLH EHWUHNNHQ YDQ JHEUXLNHUVHQDQGHUHEHODQJKHEEHQGHQDOOHHQGRHQZDWHFKW ZDDUGHOHYHUWYRRURQWZLNNHOLQJJHEUXLNHQEHKHHUHQ het opruimen van hindernissen die een soepel ontwikkelproces in de weg staan. Dit is hard werken voor zowel ontwikkelteam als beheer en business. Om de benodigde samenwerking vorm te geven en continue te verbeteren kan een organisatie varen op eigen ervaringen maar ook gebruik maken van ervaringen uit de markt zoals die zijn samengebracht in PHWKRGHQDOV5836FUXPHQ35,1&(5835DWLRQDO 8QLÀHG 3URFHVV LV HHQ XLWJHEUHLGH RQWZLNNHODDQSDN YRRUDOJHULFKWRSVSHFLDOLVWLVFKHDFWLYLWHLWHQ6FUXPULFKW ]LFK PHHU RS ]HOIRUJDQLVDWLH YDQ WHDPV HQ 35,1&( levert handvatten voor projectmanagement.
583RS0DDWWRRQWHHQ$JLOHWRHSDVVLQJYDQ583JHbruikmakend van practices uit Scrum en met een heldere DDQVOXLWLQJ RS PDQDJHPHQW PHW 35,1&( +HW ULFKW zich daarbij op zowel ontwikkelteamleden als belangKHEEHQGHQ]RDOVJHEUXLNHUVEHKHHUGHUVHQPDQDJHUV (U LV JHEUXLN JHPDDNW YDQ HHQ YRRU GH 1HGHUODQGVH markt herkenbaar begrippenkader. Vanuit hun ervaring in uiteenlopende projecten hebben de auteurs de essentie van Agile ontwikkelen met RUP kort en krachtig neergezet. RUP op Maat geeft antwoord op de volgende vragen: +RHEHWUHNLNGHNODQWRUJDQLVDWLHELMKHWRQWZLNNHO proces? +RHVFKULMILNJRHGH8VH&DVHV" +RH]RUJLNGDWWHDPOHGHQRSWLPDDOLQ]HWEDDU]LMQ" +RHEUHQJLNNZDOLWHLWLQPLMQRQWZLNNHOSURFHV" +RH]LHLNRIZHVXFFHVYROVDPHQZHUNHQ" Wil je serieus aan de slag met RUP en Scrum? Wil je mensen aansporen om te blijven nadenken en kritisch te kijken naar het eigen ontwikkelproces? En wil je dat GRHQ RS HHQ WRHJDQNHOLMNH PDQLHU WRHJHVSLWVW RS GH praktijk? Dan helpt dit boek je direct op weg! Zie de website www.rupopmaat.nl voor aanvullende informatie en downloads.
Over de auteurs Remi-Armand Collaris is consultant moderne ontwikkelmethoden bij Ordina. Hij is zijn carrière gestart als leraar wis- en natuurkunde en heeft van daaruit de overstap gemaakt naar JavaEE programmeur. Hij heeft de leiding JHKDGRYHU,&7RQWZLNNHOSURMHFWHQELMGLYHUVHÀQDQFLsOH dienstverlenende en (semi-)overheidsinstellingen. De laatste jaren richt hij zich vooral op RUP en Agile coaching en het verzorgen van workshops. Eef Dekker is informatieanalist en Scrum Master bij Bol.com. Hij is al jaren actief op het gebied van ontwikkelmethoden en informatieanalyse en geeft cursussen op het gebied van 583$JLOHHQ8VH&DVHRQWZHUS
ISBN
978 90 12 58196 7
NUR
980, 982
Voor meer informatie: www.rupopmaat.nl www.innoveerjijmee.nl