Systemutveckling
Systemutveckling består av en process som kan ske på två sätt,
det kan utföras på ett strukturerat och planerat sätt eller så kan
det ske på ett ostrukturerat och oplanerat sätt, dvs.
adhoc-mässigt.
Systemutveckling kännetecknas av att den övertid har blivit allt
mer komplex vilket har lett till att systemutvecklingen idag
utmärks av att det är en strukturerad process. Arbetet med att ta
fram och utveckla informationssystem kännetecknas ofta av att
arbetet utförs i projektform.
Ett antal viktiga punkter i lyckade systemutvecklingsprojekt är
att projektgruppen består av motiverade medlemmar, sunt förnuft.
Det tillsammans med ett antal principer för att skapa bra
implementation, högkvalitativ mjukvara och en levande och korrekt
dokumentation.
Begreppen jag vill lyfta fram i systemutveckling
är Continuous Integration (CI), Test-driven Development (TDD)
samt lika ansvar för kod och dokumentation.
Continuous Integration (CI)
Continuous Integration (CI) syftar på genomförandet av
kontinuerliga processer för att tillämpa kvalitetskontroll. Det rör
sig om mindre ansträningningar som tillämpas ofta. CI syftar till
förbättra kvaliteten på programvaran samt att minska den tid det
tar att leverera. Detta genom att ersätta den traditionella vägen
att tillämpa kvalitetskontroll, dvs tillämpning efter avslutad
utveckling.
Test-driven Development (TTD)
TDD handlar om arbete i korta iterationer där varje iteration
har som målet att lägga till ny funktionalitet eller förfina redan
existerande funktionalitet, observera att iterationen får aldrig
förekomma med båda målen.
Ny funktionalitet - Skapas genom att
utvecklaren/programmeraren först skapar ett test för att sedan köra
testet och ser att det felar (ibland kan det hända att testet går
bra direkt), sedan skriver utvecklaren koden för att uppfylla
testet och kör testet för att verifiera att det går igenom.
Förfining av existerande funktionalitet/Refactoring
- Är den process där koden struktureras om för att
undvika dubbel kod eller för att få en överskådligare struktur. Här
får ingen ny funktionalitet läggas till. Som en del av detta
verifieras även att de existerande testerna fortfarande går
igenom.
Lika ansvar för kod och dokumentation
Med lika ansvar för kod och dokumentation anser jag att alla
deltagare i projektet har en gemensam skyldighet att se till att
dokumentation om mjukvaran är korrekt och uppdaterad.
Samma sak gäller mjukvarans källkod.
Jag som utvecklare bör kunna hjälpa till att skriva
dokumentation om hur en viss funktion i mjukvaran fungerar, trots
att någon av de andra utvecklarna i projektet har implementerat den
funktionen. Uppstår det ett fel i mjukvaran (bug) som jag har
skapat, ska en annan utvecklare i projektet kunna avhjälpa, lika
gärna som jag.