RUP - Rational Unified Process

Rational Unified Process (RUP) är en iterativ systemutvecklingsprocess som bygger på best practice från Rational Software, som i dag ägs av IBM. Resultatet blev en omfattande verktygslåda som beskriver roller, aktiviteter och artefakter. RUP är motsatsen till lättviktsmetodiker som Scrum och XP och tillämpas ofta i stora vattenfallsprojekt.

Även om RUP innehåller mycket är syftet att ta fram en unik anpassning för varje projekt, ett så kallat Development Case. För de allra flesta RUP projekt används för många delar och projekten blir tunga och dokumentintensiva. I slutet av artikeln finns en del om Agilt RUP som visar hur RUP även kan användas i agila projekt.

Best practice

RUP (Rational Unified Process) är i grunden en verktygslåda med sk ”bästa tillämpningar” för systemutveckling av IT-system. Om man läser om de värderingar som RUP bygger på så finns det många likheter med Agile Manifesto och de principer som Scrum bygger på.

Tillämpningar enligt RUP:

  • Utveckla iterativt
  • Hantera systemkrav (genom användningsfall)
  • Använd komponentbaserad arkitektur
  • Modellera visuellt (främst genom UML)
  • Kontinuerlig kvalitetskontroll
  • Kontrollera förändring (kontrollera, återfölja och dokumentera förändringar)

Processen

RUP innehåller fyra faser som alla har en väldefinierad milstolpe. I varje fas kan en eller flera iterationer genomföras för att stegvis uppfylla milstolpen.

Faserna i RUP är:

  • Förberedelse (Inception)
  • Etablering (Elaboration)
  • Konstruktion (Construction)
  • Överlämning (Transition)

Processen för RUP illustreras ofta enligt bilden till nedan. Beroende på vilken fas projektet befinner sig i så ändras fokus över tiden för de olika disciplinerna.


Källa: Wikipedia

Agilt RUP

Sedan Scrum placerade Agile på kartan för de stora företagen har intresset ökat för vad dessa nya metoder och synsätt innebär. Många stora svenska företag använder i dag RUP, PROPS eller en liknande tungviktsprocess. Den agila rörelsen framfart har medfört att man börjar ifrågasätta modeller som RUP och i det hotet har begreppet Agilt RUP växt fram.

Precis som Scrum så ska RUP anpassas till varje projekt, den stora skillnaden är att RUP som ramverk är extremt omfattande. Så även om det förekommer agila RUP projekt så är majoriteten av alla RUP projekt tunga vattenfallsprojekt.

Genom att vara extremt minimalistisk i utformningen av ett RUP projekt är det säkerligen möjligt att skapa ett agilt projekt. Risken är dock att för många delar av RUP inkluderas i projektet vilket resulterar i ett tungt och processorienterat projekt.

En fundamental skillnad mellan de flesta agila metodiker och RUP är att RUP fokuserar på att inkorporera verktyg i processen. I Scrum förespråkad enkla verktyg som inte begränsar teamet i hur de bäst kan arbeta. RUP förlitar sig till stor del på sin egen produktfamilj, precis som MSF Agile som i sin tur inkorporerar olika produkter från Microsoft som stöd för agila projekt.

Uppdaterades: 2011-11-29 16:07:06