Saturday, December 16, 2006 6:40 PM
mikaeld
MSF på hyffsat ren svenska, del 1
Då jag är en mycket varm anhängare till Microsoft Solutions Framework och jag kommit på att en av de största hindren för projekt att komma igång med hela MSF-tänket är att de flesta white-papers och böcker är tämligen tråkiga. En annan faktor är att man valt ut de absolut krångligaste orden på engelska för att beskriva helt lysande koncept som egentligen är långt ifrån komplicerade, kommer här unge herr Deurells "MSF på hyffsat ren svenska". Tänkte skriva en serie blogg entries med en intro till MSF då mycket av min tid på jobbet handlar om workshops och praktiskt jobb som nästan alltid knyts ihop med MSF...
Det häftiga med Visual Studio Team System och Team Foundation Server är att detta skapat ett härligt sätt att knyta in metod och process med ett mer pragmatiskt förhållningssätt till det aktuella projektet (till skillnad från att börja köra RUP genom att slänga in några feta metodböcker till projektrummet och sedan snabbt som #¤"%#¤ stänga dörren...). Det magiska med VSTS är att det blivit ett sätt att föra in metod/processstöd som ett naturligt sätt för att förbättra teamarbetet och leveransen. Att detta jobb sedan drivs från utvecklingsprojekten och inte som ett krav om metod-/processtillämpning som trycks ner i halsen på dev-projekt från någon avdelning som inte behöver ta ansvar för projektets resultat (Oftast ett ypperligt säkert sätt att misslyckas) är klockrent...
Låt oss se på VSTS som om det vore ett vackert, coolt jetplan som en dag landade i projektrummet. En naturlig fråga som skulle komma på morgonmötet (kanske en scrumsession) skulle förmodligen vara: "Hur "#¤%# får vi den där coola grejjen att börja flyga?". MSF är svaret på detta!!! Enkelt...
MSF består av flera delar, den absolut vackraste (och den som oftast inte får tillräckligt med uppmärksamhet) är MSF:Core. MSF:Core är ingen metod eller process utan mer ett beskrivande (descriptive) ramverk för vad som händer i en SDLC (Software Development Life Cycle) och tips på best-practices baserat på Microsoft (och andras) erfarenher. Här beskrivs några grundläggande koncept som är generella för alla SDLC, Foundational Priciples (för projektet i helhet och för individen), Team Model (hur bygger man ett fungerande team), Process Model, och disciplines (återkommer till dessa i en dedikerad blog-entry). Detta är med jetplans analogin färskt i minnet en generell beskrivning av hur flygplan flyger (det finns en landningsbana (tänk på att skotta den på vintern), kontrolltorn (ha ett schema för att alltid ha en spelare i tornet), pilot (planet tenderar att flyga svajjigt annars), luften tar en längre väg på vingens välvda yta vilket skapar ett undertryck, ni fattar, generella saker för hur alla flygplan flyger). MSF:Core beskriver vad vi skall tänka på när vil bemanna projekt, hur vi ser på Program Managment, Projekt Management (inte en snubbe som springer runt och frågar hur många % man har kvar på några workitems), Risk management, att alla individer i projektet är lika viktiga och hur vi undviker hierarkiskt styrda projekt mm. Ett desciptive (beskrivande) ramverk kännetäcknas av att det ser på objeket utifrån, med ett betraktande perspektiv. Ungefär som vi kollar på renen i den där jul-leksaksbubblan som det snöar i när man skakar om den... MSF:Core ser på SDLC och kommer med best-practices och beskriver sånt som funerat bra i projekt internt på Microsoft... Kanon!!!

Själva processen eller metoden instansierar vi genom att välja vilken metod vi vill köra (se MSF:Core som en abstrakt basklass som innehåller generella råd, tips och best practices för mjukvaruprojekt och VSTS som en spelare som instansierar och jackar in sig mot den verkliga klassen (MSF:Agile, MSF:CMMI, MSF:Scrum), som kopplar på process/metod stöd enligt nedan;

MSF_Core ligger dock i botten för alla dessa och det mesta av detta (nästan det bästa) kommer ni inte att springa på när ni nyinstallerat VSTS och TFS. Det ni ser där är den skapade metod-instansen (med MSF:Core i botten) som VSTS jackar in sig emot. I de flesta projekt jag kört där jag lyckats lyfta "andan" och energinivån i projektet har jag tillämpat MSF:Core's grundprinciper (ett exempel var det stora klädföretaget). MSF:Scrum, MSF:Agile är alltså metod/processtödet som kopplas på den generella MSF:Core "andan". Detta gör att det går lysande att köra MSF:Core med Scruminriktning (vanligt internt på Microsoft (fråga det coola Jolt (WPF) teamet)) eller någon annan variant (MSF:Agile, MSF:CMMI). Denna metod/process implementation av MSF har nu helt plötsligt gått från att vara descriptive till att vara prescriptive (vad är nu detta???). Jo, nu betraktar vi inte längre objektet (SDLC) utifrån utan flyttar oss in i smeten och ger konkreta råd och stöd för HUR vi skall arbeta. Kopplat till flyg-grejjen blir detta publikationer som beskriver hur vi flyger ett specifikt plan t.ex. JAS (militärt) eller hur vi flyger en MD-80 (passagerarplan). Förhoppningsvis är det bara aktuellt att gå igenom hur man genomför barrelrolls med ett JAS plan och inte med en MD80 t.ex... I fallet MSF:Scrum är det hur man jobbar med Product, Sprint backlocks, Sprint reviews, Sprint retrospectives och annat som är livsviktigt när man kavlar upp byxbenen, armarna (och allt annat som går att kavla upp...) och går in i projektrummet för att göra "riktigt" arbete...
Ville med detta inlägg bara visa kartan för MSF. Nästa entry kommer köra igång med grunderna i MSF:Core.
Ha en underbar dag i MSF-land! ;-)
ps. Dag König, min kära evangeliserande kollega på Microsoft gav MSF en fet spark i magen (och några andra känsliga områden) häromdagen genom att kalla det Microsofts svar på RUP... Dag, jag tycker du är lysande men nu får du ta och be MSF om ursäkt... Du skrämmer bort våra användare... :-) Hmmm... När jag tänker på det så är det rätt kul, en evangelist som svär i kyrkan... ;-) ds.