Unified Process. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Vergelijkbare documenten
Evo Evolutionary Project Management. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Scrum. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Agile systeemontwikkeling. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

XP Extreme Programming. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

Scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum agileagileagileagileagileagileagileagil

RAD Rapid application development. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

RUP Rational Unified Process. Een introductie. Algemene informatie voor medewerkers van SYSQA B.V.

BDD/Gherkin. Een introductie

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Scrum. Een introductie

Satisfy the real (and changing) customer expectation

Aliens?

Agenda. Introductie Aan het werk Conclusie / restrospective

Agile Testen in de praktijk

1. De watervalmethode Agile softwareontwikkeling Iteratief werken Agile technieken voor teams... 3

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren

Ontwikkelmethoden en technieken DSDM POMT HC3

Agile werken: zó doen we dat

Verzamelde vragen en antwoorden Agile Applicatie ontwikkeling. Agile Methodiek en Technologie. Zest Application Professionals

Handout. Pagina 1. SYSQA B.V. Almere. Capability Maturity Model Integration (CMMI) Technische Universiteit Eindhoven SYSQA SYSQA.

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 2

MDA in de praktijk. Freek Bosch, Business Unit Manager Amsterdam, 4 juni 2009

Inhoud. 1. Agile werken. 2. Het belang van Agile werken. 3. Basisprincipes van Agile werken. 4. De meest gebruikte Agile methode: Scrum

Betere dienstverlening financiële organisaties met continuous delivery Flexibeler, efficiënter en in kort tijdsbestek software ontwikkelen

Ontwikkelen en testen van e-business: beheerste dynamiek

Leiderschap in een organisatie met technische professionals

Definitief 1.0 Handreiking voor toepassen van Agile Scrum binnen Overheidsdiensten april 2012

Eigenschappen van moderne ontwikkelmodellen

Auditen van Agile projecten

De Agile Analist. Ebook over requirements en agile. Deel I

SMART requirements schrijven

Inleiding ontwikkelmethoden

Oplossingen voor het testen van objectgeoriënteerde software

B.Sc. Informatica Module 4: Data & Informatie

Stuurgroep ICT innovatie in de ouderenzorg. 12 oktober 2010

Ralph van Roosmalen Automatisch testen Theorie en de praktijk

bedrijfsprocessen en vormt daarmee de kapstok voor de producten van andere disciplines. Het PAM is geen RUP concept.

Webtesten onder schaarste

Testgedreven ontwikkeling dat is pas veilig!

het doel, de keuzen zijn gebaseerd op kennis en ervaring van de deelnemers van de bijeenkomsten.

Agile in Projecten minimalisme of strak pak? Richard Weber PMP

your reference in testing services WorkShop Agile in de praktijk - Erik Boelen - 18 december 2008

Introductie User Stories. SYSQA B.V. Almere

Inhoud. Introductie tot de cursus

Agile bij grote administratieve systemen. Omgaan met requirements

VAN USE CASE NAAR TEST CASE ORDINA SMART COMPETENCE CENTER

Releasen met een druk op de knop: Met behulp van Continuous Delivery sneller uw doel bereiken

Martin van Leeuwen Happy Testing

WHITEPAPER IN 5 MINUTEN. 11. Scrum

Subwerkgroep Methoden. Toelichting inhoud en voortgang tot nu toe

DevOps Waarom moeilijk doen 31 oktober als het samen kan

Bijlage 3: Master testplan

Procesvisie op Maat. Op basis van het Master Test Plan wordt een gedetailleerd testplan voor elke fase opgesteld.

Marc Koper Performancetesten voor dummies

SCRUM FRESHAPPLE.NL #DIGITALATHLETES

Use-Case 2.0. Requirements Kenniscentrum 15 November Eric Lopes Cardozo

Succes = Noodzaak x Visie x Draagvlak 2. Case: Implementatie Requirements Lifecycle management bij Rabobank International

Tool Ambitie Resultaat

Factsheet CONTINUOUS VALUE DELIVERY Mirabeau

Anko Tijman Een agile teststrategie op basis van MoSCoW

Duurzaam Product. Ecodesign methode van Tischner

SmartScrum: Agile én duurzaam

Ontwikkelmethodiek voor software

Titel, samenvatting en biografie

Uitdagingen performancetesten in een Agile omgeving Best Practices & Demo

fysieke beveiliging onder controle Fysieke beveiliging Lean & Agile Thimo Keizer

Business Sprint LOOT-scholen en Zo.Leer.Ik in kader van project Leerling Door Madelief Keyser en Michael van Wetering

Adding value to test tooling Hoe en waarom DevOps de wereld van performance testen verandert

Agile (Scrum) Werken Jeroen Hak

Lean Six-Sigma. HealthRatio Operational Excellence

Requirements in een klein project - Voor een team van 1

Tien tips voor canonieke datamodellering. Bert Dingemans

Factsheet KICKSTARTERS Mirabeau

Oplossingen voor het testen van objectgeoriënteerde software. Oplossingen voor het testen van. Overzicht. Pieter van den Hombergh.

EXIN Agile Scrum Foundation

TestNet Voorjaarsevenement 2010 Jurian van de Laar 12 mei 2010

Management. Analyse Sourcing Management

6 Presentatie VTTI Tweede Coentunnel anders aangepakt 29 november VTTI Tweede Coentunnel anders aangepakt. Waar is de Coentunnel?

20 mei Management van IT 1. Management van IT. Wat is dat eigenlijk? IT organisaties: overeenkomsten en verschillen

Procesgerichte IT BPM de link tussen bedrijf en IT

CMM 3: levert het wat op?

Het belang van. Data Modellering. GEMINIT Training. Data Modellering. Frédéric BARBIER

Introductie. Hoofdstuk Over softwareontwikkeling

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 4

WAT BETEKENT BUSINESS AGILITY VOOR UW ONTWIKKELSTRAAT? SAMENVATTING BUSINESS AGILITY ITERATIEVE AANPAK ONTWIKKELSTRAAT

Agile Foundation examen - OEFENVragenformulier

Integrale productontwikkeling wearable products BNO FHI bijeenkomst Utrecht, 4 november Michaël Hoonakker

Medical device software

Enterprise Resource Planning. Hoofdstuk 3 Planning, ontwerp en implementatie van Enterprise Resource Planning-systemen

Tentamen Systeemontwikkeling 1 (I00100)

Incore Solutions Learning By Doing

Titel: Agile development process for usable software Richting: 2de masterjaar in de informatica - Human Computer Interaction Jaar: 2009

De projectmanager. en zelforganiserende teams

De Agile Analist. Henk Jan Huizer

Er valt veel te zeggen over enterprise architectuur. Dit document wil een deel van het onderwerp aansnijden vanuit twee motto s: Begrippen...

Requirements Management Werkgroep Traceability

Project methodiek. Auxilium BV Oude Delft CD Delft. T: F: E:

Cosmic Full Function Points (CFFP) Een introductie. Algemene informatie voor medewerkers van: SYSQA B.V.

Verschillen in QA aanpak tussen ERP projecten en niet-erp projecten

Transcriptie:

Unified Process Een introductie Algemene informatie voor medewerkers van SYSQA B.V.

Organisatie SYSQA B.V. Pagina 2 van 10 Inhoudsopgave 1. Inleiding... 3 2. Unified Process... 4 3. Fasering... 5 3.1. Inception... 5 3.2. Elaboration... 5 3.3. Construction... 5 3.4. Transition... 6 4. Kenmerken... 7 4.1. Unified Process best practices... 7 4.2. Use-cases... 8 4.3. Basisveronderstellingen... 8 5. Unified Process en andere methodes... 9 6. Literatuurverwijzingen... 10

Organisatie SYSQA B.V. Pagina 3 van 10 1. Inleiding De traditionele systeemontwikkelmethodes zoals SDM I, SDM II en LAD hebben, zo blijkt in de praktijk, een aantal nadelen. Zo wordt de fasering als rigide ervaren, is de doorlooptijd vaak langer dan gewenst, zijn de kosten hoog en is de gebruikersparticipatie te laag. Ook worden riskante activiteiten, zoals de integratie van modules en een load test, pas in een laat stadium uitgevoerd. Als gevolg hiervan zijn er aan het einde van de 20e eeuw een aantal systeemontwikkelmethodes ontstaan die tegemoetkomen aan deze tekortkomingen. De methodes worden gekenmerkt door een hoge gebruikersparticipatie en het iteratief ontwikkelen. Met dit laatste wordt bedoeld dat er meerdere ontwikkelrondes na elkaar plaatsvinden. In plaats van ernaar te streven in één keer het systeem te bouwen worden meerdere versies gemaakt en steeds verbeterd en verfijnd. Deze methodes staan bekend als Iterative and Incremental Development (IID). Verwant aan IID zijn de zogenaamde agile methodes, waarbij agile staat voor snel en flexibel reagerend op veranderingen. Deze agile methodes zijn behalve iteratief ook gebaseerd op evolutionaire ontwikkelmethodes. Daarnaast speelt flexibiliteit een grote rol, het vermogen om het systeem tijdens de ontwikkeling snel aan te passen aan veranderende eisen. Agile ontwikkelmethodes zijn dus iteratief, evolutionair en flexibel. Unified Process is een agile systeemontwikkelmethode.

Organisatie SYSQA B.V. Pagina 4 van 10 2. Unified Process Het Unified Process (UP) is een populaire iteratieve ontwikkelmethode, met name het hieruit voorkomende RUP (Rational Unified Process) wordt vaak gebruikt. De basis van Unified Process is samen te vatten aan de hand van een aantal belangrijke werkwijzen en richtlijnen: Ontwikkel binnen kortlopende iteraties; Ontwikkel de onderdelen met een groot risico en onderdelen welke van groot belang zijn (bijvoorbeeld de basisarchitectuur) in vroege iteraties, bij voorkeur gebruik makend van bestaande componenten; Stel vast dat je kwaliteit levert aan de klant; Voer veranderingen vroeg in het project door; Werk samen als één team Misschien de belangrijkste kwaliteit van UP, in vergelijking met andere populaire IID methoden, is haar vermogen om meer of minder formaliteiten in het proces in te bouwen, met optionele ondersteuning voor hogere formaliteit en documentatie. In tegenstelling tot wat vaak gedacht wordt, moedigt UP aan tot een relatieve lage mate van formaliteit, alhoewel het meer documentatie en modellering aanbeveelt als bij bijvoorbeeld XP het geval is. UP biedt een set van ongeveer 50 optionele werkproducten. Unified Process werkt met iteraties die onderverdeeld zijn in vier fases, zie hoofdstuk 3. UP kan bij zowel kleine, als grotere projecten worden toegepast. UP moet wel altijd worden aangepast aan de organisatie of het project in de vorm van gedetailleerde procesomschrijving. Het op maat maken van de gebruikte processen wordt de development case van het project genoemd. Hierbij wordt gekozen welke best practices en UP werkproducten gebruikt worden. Daarbij wordt over het algemeen uitgegaan van het principe hoe minder hoe beter. Aangeraden wordt om alleen de minimaal benodigde werkproducten, om de risico s en doelen van het project aan te kunnen pakken, op te nemen in de development case.

Organisatie SYSQA B.V. Pagina 5 van 10 3. Fasering Het ontwikkelproces van UP is vanuit managementperspectief onderverdeeld in vier fases. Iedere fase is een essentieel onderdeel voor het project. De fases zijn: Inception (opstartfase); Elaboration (uitwerkingsfase); Construction (bouwfase); Transition (overdrachtsfase). 3.1. Inception Het doel van de Inception fase is het bereiken van overeenstemming tussen de stakeholders over de doelstellingen van het project. Idealiter beslaat de inception fase een korte periode (bijvoorbeeld een paar dagen) in het ontwikkelproces. Iteraties zijn mogelijk maar zeldzaam. Doelen: Doelstellingen, business case, visie en scope definiëren en vaststellen; 10% van de belangrijke requirements tot in detail specificeren; Belangrijkste risico s definiëren; Inschatting maken van de werkzaamheden voor de elaboration fase. Mogelijke activiteiten Uitvoeren requirements workshop; Opstellen visiedocument; Opstellen Start Use-case model en aanvullende specificaties; Prototyping. 3.2. Elaboration In de Elabortion fase worden de architecturaal belangrijke onderdelen, geprogrammeerd en getest in een serie van korte iteraties. Op het eind van deze fase kan een redelijk betrouwbaar plan en inschatting worden gemaakt van het project. Die vormen een stabiele basis tijdens het ontwerp en de ontwikkeling. Doelen: Architecturaal belangrijke onderdelen van systeem bouwen en testen; Belangrijke risico s geïdentificeerd en gereduceerd; 80% van de belangrijkste requirements tot in detail specificeren; Het bereiken van voldoende stabiliteit en informatie om de doorlooptijd en benodigde inspanning voor het project te bepalen. Mogelijke activiteiten: Ontwerpen, programmeren en testen van de architecturaal belangrijkste onderdelen in korte iteraties; Uitvoeren Requirements workshop, scherper stellen visie; Verbeteringen aanbrengen in de omgeving (procesmatig en technisch). 3.3. Construction Het doel van de Constuction fase is het verder uitwerken van de requirements en het ontwikkelen van het systeem op basis van de architectuur. In deze fase wordt de rest van het systeem gebouwd in korte iteraties, op basis van de in de elaboration fase gebouwde architectuur.

Organisatie SYSQA B.V. Pagina 6 van 10 Doelen: Systeem compleet ontwerpen, programmeren en testen zodat het klaar is voor de uitrol; Efficiënte en voorspelbare ontwikkeling, bouwend op de stabiele architectuur welke in Elaboration fase is ontwikkeld. Mogelijke activiteiten: Ontwerpen, programmeren en testen van het systeem in korte iteraties; Stakeholder evaluatie en bijsturing; idealiter is er alleen sprake van minimale veranderingen in de requirements; Opstellen alle documenten; Alfa-testen. 3.4. Transition Doelstelling van de Tranisition fase is het ter beschikking stellen van de software aan de eindgebruikers. Aan het eind van deze fase dienen de doelstellingen van het project gehaald te zijn en kan het project worden beëindigd. Deze fase eindigt met de uiteindelijk uitrol (mogelijk in meerdere iteraties) van het systeem in productie. Doel: Bevestigen dat het systeem klaar is voor uitrol; Uitrollen van het systeem. Mogelijke activiteiten: Beta-testen en het krijgen van feedback; Verwerken van bevindingen en aanpassen van de documentatie; Verzorgen van opleiding en marketing; Uitrol van het systeem.

Organisatie SYSQA B.V. Pagina 7 van 10 4. Kenmerken Om een project een UP project te kunnen noemen moet het tenminste voldoen aan de volgende kenmerken: Het project volgt de UP richtlijnen en best practices; Er wordt minimaal gebruik gemaakt van minimaal een aantal van de UP middelen zoals het visiedocument en risicolijst. De iteraties en mijlpalen zijn georganiseerd volgens de UP fasering, te weten Inception, Elaboration, Construction en Transition. Alhoewel de originele UP ontwikkelaars een voorkeur hadden voor een relatief lichte inrichting van het proces, werd dit niet goed gecommuniceerd in hun eerste lesmateriaal. In de meer recentelijk uitgebrachte versies is dit verbeterd. 4.1. Unified Process best practices UP is feitelijk niet beperkt tot de onderstaande zes best practices, maar onderstaande zes zijn belangrijk om minimaal toe te passen. Gebruikers van Unified Process moeten deze werkwijzen begrijpen en toegepassen in elk UP project. 1. Werk iteratief De belangrijkste van de UP best practices is het gebruik maken van iteraties met een (vooraf) vastgestelde duur. Periodes van twee tot zes weken wordt aangeraden. Met andere woorden, begin vroeg met programmeren, als slechts een deel van de meest belangrijke requirements tot in detail bekend zijn. Verbeter de requirements en het ontwerp op basis van feedback, in plaats van te proberen alle requirements van te voren te analyseren. 2. Realiseer de belangrijkste onderdelen eerst Leg de nadruk bij het programmeren op de onderdelen die van groot belang zijn en/of een groot risico met zich meebrengen en programmeer een samenhangende architectuur in vroege iteraties. Streef er hierbij naar om bestaande componenten (zowel grote als kleine) te hergebruiken om het creëren van nieuwe code en de kans op fouten te reduceren. Voor grote projecten worden de requirements analyses en de kernarchitectuur idealiter ontwikkeld door een samengesteld klein team, later wordt dit team opgesplitst en worden de teamleden, subprojectleiders die leiding geven aan subteams welke parallel werken. 3. Controleer voortdurende de kwaliteit. Test vroeg, vaak en realistisch door alle software geïntegreerd te testen tijdens elke iteratie. Deze best practice houdt in dat er gebruik wordt gemaakt van technieken zoals test-driven developement en continue integratie. Bovendien gaat het verder dan alleen het testen van de code, aangezien vroeg in het traject de bruikbaarheid van de software wordt getest. Bovendien wordt het ontwikkelproces zelf via regelmatige team vergaderingen onder de loep genomen om vast te stellen wat de toegevoegde waarde is van verschillende activiteiten. 4. Ontwerp software voordat deze gerealiseerd wordt. Maak, voordat er binnen een iteratie daadwerkelijk wordt begonnen met programmeren, in ieder geval een visueel model. Maak bijvoorbeeld gebruik van schetsen op een whiteboard om verschillende ontwerpideeën te bespreken, zonder in te gaan op gedetailleerde ontwikkelmethodes. 5. Verbeter continu de requirements Verbeter requirements door gebruik te maken van handige manieren om ze te vinden, vast te leggen en bij te houden. Vind en verbeter requirements iteratief en opbouwend, in plaats van via uitgebreide analyse vooraf, maak bijvoorbeeld gebruik van een serie (één per iteratie)

Organisatie SYSQA B.V. Pagina 8 van 10 van requirement workshops in de vroege fases van een project. Zoek waar van toepassing functionele requirements door het schrijven van use cases en leg deze vervolgens vast. Organiseer de requirements (gebruikmakend van beschikbare hulpmiddelen) aan de hand van attributen (zoals risico, prioriteit en status) en zorg ervoor dat afhankelijkheden makkelijk kunnen worden teruggevonden, zodat deze kunnen worden geanalyseerd. Hou vervolgens de status van requirements bij zodat bekend is wat klaar is, waar men mee bezig is enz. 6. Beheers configuraties. Leg veranderingen vast door strak configuratiemanagement, versiemanagement, changemanagement en releasemanagement. 4.2. Use-cases Unified Process vereist geen gebruik van use cases voor het vastleggen van functionele reguirements. Lijsten met kenmerken en ontwikkeling op basis van vereiste kenmerken zijn mogelijk. Use cases worden echter wel aangemoedigd binnen UP, mits het gebruik van use cases geschikt is voor het probleem domein. In dat geval wordt binnen UP aangeraden om iteraties te organiseren rond scenario s van use cases, waarbij de scenario s die het meest risicovol zijn, architecturaal van groot belang zijn of van groot belang zijn voor de business vroeg in het project worden opgepakt. Het ontwerpen en implementeren gebeurt vervolgens op basis van wat nodig is om de use case scenario s te kunnen uitvoeren. Daarnaast raadt UP aan om de acceptatietesten op systeemniveau op deze use cases te baseren. Use cases vormen dan de basis voor de iteratieve ontwikkeling en acceptatietesten. 4.3. Basisveronderstellingen In tegenstelling tot XP en Scrum, heeft UP geen expliciete onderliggende basisveronderstellingen, deze kunnen echter wel worden afgeleid. Waar XP bijvoorbeeld de nadruk legt op menselijke en communicatieve kwaliteiten, legt UP de nadruk op een project georiënteerde (i.p.v. een mens georiënteerde) focus.

Organisatie SYSQA B.V. Pagina 9 van 10 5. Unified Process en andere methodes Unified Process is een brede en algemene IID proces definitie. Het definieert en gebruikt vele gedetailleerde werkwijzen, zowel werkwijzen die onderdeel uitmaken van Unified Process als werkwijzen overgenomen van andere methodes, zoals XP testing of Scrum Meetings. Menig werkwijze zoals XP s testdriven development en continue controle op de kwaliteit, zijn feitelijk specialisaties of variaties op de UP werkwijzen. Voor softwareontwikkeling biedt UP een aantal voordelen ten opzichte van andere methodes: UP bevat een uitgebreide beschrijving van de verschillende stappen binnen een project, dit maakt het zeer geschikt voor onervaren ontwikkelaars; UP biedt een goed beschreven proces en voorspelbare stappen, wat help bij het sturen van de activiteiten, het onder controle houden van het project en het mogelijk maakt om meerdere keren van hetzelfde proces gebruik te maken; UP biedt verschillende werkproducten die al of niet door de ontwikkelaar kunnen worden ingezet om het proces te verbeteren; UP biedt een gemeenschappelijk taal voor alle betrokkenen. Unified Process kan eventueel gecombineerd worden met (elementen uit) andere agile ontwikkelmethodes zoals Evo, Scrum en XP. Wel is bijvoorbeeld de lengte van een iteratiestap bij UP (30 kalenderdagen) te lang voor Evo. Het vermijden van vooraf gedefinieerde processen en voorspelbare stappen bij Scrum kan strijdig zijn met de UPmethode, terwijl binnen XP de tijd besteed aan het modelleren bij UP (tot ½ dag) niet acceptabel is.

Organisatie SYSQA B.V. Pagina 10 van 10 6. Literatuurverwijzingen Larman, C. 2004. Agile and Iterative Development. A Manager s Guide. Addison-Wesley.