Det finns saker som du alltid gör och som du måste göra.
Så är det i all systemutveckling.
Det spelar ingen roll vilken metod du använder.
Semat, en förkortning som står för ”Software engineering method and theory”, gör anspråk på att ha frilagt kärnan i allt arbete med systemutveckling.
– Jag blir lite förskräckt när jag ser handböckerna för Rup, säger Ivar Jacobson.
Rup står för Rational unified process, och är till stor del Ivar Jacobsons egen skapelse.
Felet, medger Ivar Jacobson, var att försöka få med allt i Rup. Varje problem som ett programutvecklingsprojekt kunde råka ut för skulle lösas.
Efter arbetet med Rup har Jacobson gått mot en mer ”agnostisk” syn på systemutveckling.
Han ser numera systemutveckling som en samling ”practices”, praktiker. För varje uppgift som möter utvecklarna finns det en eller flera praktiker att ta till. En del ingår i en etablerad metod, en del finns bara i utvecklarnas huvuden. Poängen med Semat är att hur man än arbetar så måste man ta sig från början – löst formulerade önskemål – till slut – en körbar och levererbar produkt – med hjälp av ett antal praktiker, och praktikerna kan inte komma i vilken ordning som helst.
– Sedan spelar det ingen roll om du jobbar agilt eller med vattenfallsmetoden.
Så i stället för att försöka skapa en heltäckande metod för systemutveckling tar Semat bara med det som alltid måste göras.
– Sedan kan man lägga en metod som Scrum, som egentligen är en projektledningsmetod, ovanpå Semat. Och när man gör det, säger Ivar Jacobson, upptäcker man ofta att något fattas.
Utvecklarna fixar det som fattas ändå, med hjälp av kunskap och erfarenhet. Men det hjälper kanske att få se de vita fläckarna.
Semat har utvecklat ett hjälpmedel som är extremt low-tech. Nämligen en kortlek.
Alla steg i programutvecklingen är representerade på spelkort som läggs ut i en bestämd ordning. Sekvensen vågrätt, dimensioner av arbetet lodrätt. På varje kort finns en eller flera kryssrutor.
Semat-patiensen går till så att kort med alla rutor kryssade (avklarat) läggs till vänster, kort utan kryss (ej påbörjat) läggs till höger. I mitten får man en rad med kort som visar vad som är påbörjat men inte avslutat. Det visar vad man ska koncentrera sig på.
Det handlar väldigt lite om hur man skriver kod.
– Sedan år 2000 har mitt intresse gått från teknisk praktik till mänsklig praktik, säger Ivar Jacobson.
Software engineering method and theory, Semat, gör anspråk på att ha frilagt den gemensamma kärnan i all systemutveckling.
Enligt Semat finns det sju komponenter, ”alphas” i systemutveckling: Kraven, mjukvarusystemet, arbetet, arbetsgruppen, arbetssättet, möjligheter och intressenter. Dessa inslag följer med i arbetet från början till slut och omfattar arbetssteg som måste klaras av i en bestämd ordning.
Semat är ”agnostiskt” i förhållande till programspråk och metoder. Det beskriver sådant som alltid görs.
Semat har utvecklats i ett projekt som drogs igång av Ivar Jacobson, Bertrand Meyer (skapare av programspråket Eiffel) och Richard Soley.
Semat kommer inom kort att spikas som en standard av branschorganisationen OMG, Object management group.