RAD

I dagens affärsklimat är företagen betydligt mer kostnadsmedvetna än för endast ett par år sedan. Att driva flerårsprojekt är ur ett ekonomiskt perspektiv inte längre ett alternativ om man vill utveckla nya komplexa system kostnadseffektivt. Alla vet att det tar längre tid att stoppa en oljetanker än att stoppa flera mindre fartyg.
Att dra igång ett utvecklingsprojekt med RAD som metod är betydligt lättare då eventuella problem med projektet ej slår lika hårt mot verksamheten.

Vad är RAD?
RAD står för Rapid Application Development och begreppet myntades av James Martin i boken ’Rapid Application Development’ från 1991.
RAD är en metod för att utveckla mjukvara på kortast möjliga tid, för minsta möjliga kostnad och med största möjliga kvalité. Metoden har en del typiska beståndsdelar för programutveckling men dessa har finslipats och anpassats till just RADs krav.

Några arbetsmetoder inom RAD förutom de som beskrivs nedan är; Workshops, SWAT Teams, TimeBox-utveckling, technical reviews, miniature milestones, aktiv riskanalys och delleveranser.

RADs iterativa modell består av flera metoder som tillsammans bidrar till den korta utvecklingscykeln och den höga kvalitén, bland annat är prototyper viktiga inom RAD för att tidigt i ett utvecklingsprojekt försäkra sig om att mottagaren av systemet får det han har beställt. Andra fördelar med att ta fram prototyper tidigt i ett utvecklingsprojekt är att användaren lättare kan komma med synpunkter om programmets funktionalitet, innan någon djupare programmering har skett och via prototypen upptäcka behov som ej behandlats i kravspecifikationen och som skulle ha varit svåra, ja till och med omöjliga att upptäcka genom den ordinarie kravanalysen.

Vi vet ju genom erfarenhet att mottagandet av ett system baserar sig på de uppfyllda kraven i kravspecifikationen men även på de outtalade kraven som ej finns med i kravspecifikationen. Genom att fånga in de outtalade kraven genom till exempel en prototyp kan man undvika gissningslekar och leverera ett system som uppfyller användarens samtliga krav.

En annan förutsättning för att lyckas med ett RAD-projekt är tydliga avgränsningar i systemutvecklingen och speciellt i själva konstruktionsfasen i systemutvecklingen. Vissa leverantörer hävdar att de vill ’överträffa kundens förväntningar’ – en sund inställning som helt klart har en plats i den generella marknadsföringen i ett företag, men som inte har något att göra i ett system-utvecklingsprojekt där i stort sätt alla försök till att ’överträffa kundens förväntningar’ ofta slutar i havererade tidplaner och överskriden utvecklingsbudget. Man kallar detta populärt för Gold Plating; att ’förgylla’ ett system med funktioner som användaren inte har önskat sig eller behöver.

CASE-verktyg
En annan central aspekt i ett typiskt RAD-projekt är att man arbetar med CASE-verktyg för att på snabbast möjliga sätt få fram både prototyper och färdiga program. Verktyg som Visual Basic har gjort att programutvecklingen varken behöver ta lång tid eller vara speciellt komplicerad. På marknaden finns flera andra exempel på verktyg som underlättar och effektiviserar utvecklingen av programvara. Även objektorienterad programutveckling kan bidra till ett RAD-projekt med sin återanvändbara kod.

Under senare år har även de olika verktygen för webproduktion utvecklats från rent grafiska verktyg till utvecklingsverktyg där relativt komplexa websystem numera kan utvecklas med hjälp av RADs principer. Detta var otänkbart för bara några år sedan då webtekniken fortfarande var ny och webhandelsplatser och portaler var några av de nya begreppen.

De flesta stora databastillverkare och leverantörer av lösningar för Business Intelligence har idag CASE-verktyg för att kunna tillgodose RAD-projektens behov, några exempel är Oracle, SAS Institute och Sybase. Dessa har i vissa fall utvecklat helt egna 4GL-språk, ibland väldigt lika befintliga programmeringsspråk. Detta har gjort att även större informationssystem och system för Business Intelligence kan utvecklas med snabba resultat och hög kvalité, med hjälp av RADs principer.

Projekthantering
En mycket viktig aktivitet i ett RAD-projekt, och ofta slarvigt utförd i ett vanligt utvecklingsprojekt, är riskanalysen och riskhanteringen. Eftersom RAD-projekten är väldigt korta och intensiva krävs en betydligt aktivare riskanalys än i ett vanligt projekt eftersom även mycket små problem kan äventyra tidplanen och orsaka relativt stora förseningar.
En veckas försening i ett halvårsprojekt är acceptabelt men en veckas försening i ett tvåmånadersprojekt kan vara katastrofalt. Genom att angripa problemen och riskerna innan de angriper projektet kan man eliminera de kända riskerna och istället vara förberedd på de okända riskerna. Detta betyder att projekt-ledaren inte bara bör planera utvecklingsaktiviteter och skriva åtgärdsplaner, som används om olyckan är framme, utan även planera för att aktivt eliminera riskerna och säkerställa projektets tidplan.

En RAD-projektledare kan till exempel välja att, inför ett projekt, vaccinera projektmedlemmarna under influensatider eller köpa in extra datorutrustning som kan finnas på plats om den ordinarie datorutrustningen skulle krångla.

Alla ovanstående grundprinciper vore relativt ineffektiva i ett RAD-projekt om man inte använde en strikt projektstyrning. Det är nämligen en av förutsättningarna för att lyckas med ett RAD-projekt. I ett vanligt utvecklingsprojekt tillåts vanligtvis, direkt eller indirekt, vissa brister i projekthanteringen och projektstyrningen. Man kanske tenderar till att ha en mer passiv riskhantering, en underutvecklad ändringshanteringsprocess eller lägre krav på dokumentationen. I ett RAD-projekt är däremot en strikt projektstyrning en grundförutsättning för att RADs metoder skall få den önskade effekten. För det normala utvecklingsprojektet skulle en sådan hög grad av struktur vara svår att upprätthålla och dessutom vara påfrestande både för projektledaren och projektmedlemmarna.

Ett RAD-projekt är däremot endast tänkt att pågå mellan ca 60 och 90 dagar vilket gör det lättare att hålla en högre grad av struktur.
Större utvecklingsprojekt med RAD som metod är möjliga genom att dela upp huvudprojektet i mindre delprojekt.

Sammanfattning
I slutändan är RAD en mycket effektiv utvecklingsmetod som är lämpad för små och medelstora utvecklingsprojekt. Även om RAD går att tillämpa på större projekt ställer detta höga krav på projektledning och projekt-medlemmar då kraven på struktur kan värka tuffa. Fördelen med RAD är däremot att man i ett vanligt utvecklingsprojekt kan välja vissa av RADs metoder och verktyg för att förbättra projektstyrningen och få ökad kontroll.

Mandrillo Consulting erbjuder projektledning enligt RAD men även enligt utvalda delar från RAD, för att bättre passa kundens projekthantering.
Vi kan även skapa en kundanpassad utvecklingsmodell eller modifiera befintliga modeller bland annat utifrån de metoder som finns inom RAD.