Testa oss
Vi hjälper våra kunder effektivisera sin produktutveckling. Är du nyfiken på vad vi kan göra för er produkt, utvecklingsmiljö eller organisation?
Konfigurationshantering (Configuration Management - CM) innebär ett kontrollerat sätt att leda och hantera utveckling och förändring av sammansatta system och produkter under hela deras livscykel.
I praktiken går det ut på att undvika onödiga kostnader genom att säkerställa att man kan hålla ordning på de olika ingående delarna av ett system och deras inbördes beroende, samt i vilka olika produktkonfigurationer (varianter) som respektive del igår. Med en genomtänkt systemarkitektur och en medveten strategi för återanvändning av väl beprövade komponenter kan kostnaderna för underhåll över tiden reduceras kraftigt.
Även mindre inbyggda system kan innehålla stora mängder programkod, i vissa fall körs koden till och med på flera processorer eller på flera processorkärnor vilket ökar komplexiteten drastiskt. Att verifiera all kod manuellt är orealistiskt utan i praktiken behöver man återanvända både programkod och använda automatiserade testrutiner. En bra ALM-plattform hjälper till med att spåra förändringar i produkt- och testkonfigurationerna samt testresultaten över tiden och ger på så sätt tryggheten att alltid vid varje given tidpunkt kunna bedöma kvaliteten på samtliga produktkonfigurationer.
Ett sätt att hantera återanvändning på ett effektivt sätt är att se på var och en av de ingående komponenterna som produkter ("software product lines”) vilket drastiskt kan korta ned tiden för att utveckla nya produkter, dock gäller det återigen att vara pragmatisk då en produktifiering av komponenter som aldrig kommer att återvändas ger den motsatta effekten. Man måste alltså vara säker på att man kommer att återanvända en komponent eller funktion för att det skall vara värt att produktifiera den, det klassiska exemplet på produktifierad programvara inom inbyggda system är operativsystemet.
Det är inte bara programkoden som kan och bör produktifieras. Med automatiserade testrutiner i form av enhetstester, modultester och systemtester säkerställs att man alltid har full insyn i kvaliteten på samtliga produktkonfigurationer. Testkoden är precis lika viktig att konfigurationshantera då denna rätt utformad kan återanvändas i projekt efter projekt, oavsett om man behöver skriva om programkoden eller ej. Bara det faktum att man kan visa att en omskriven programkod har samma beteende som föregångaren är en mycket stor fördel. Naturligtvis omfattas även testkod m.m. av krav och ändringshantering.
För att säkerställa att produktdokumentation i så stor utsträckning som möjligt är konsistent med källkoden bör man se till att denna i största möjliga utsträckning produceras automatiserat, gärna både för t.ex. webpublicering, tryck m.m. Även slutgiltiga release artefakter som t.ex. installations-skivor bör automatiseras i största möjliga grad. Med en genomgående strategi kring automatisering tvingas man strukturera sina produkter på ett rationellt sätt, vilket oftast är fördelaktigt även ur ett livscykelperspektiv.
Naturligtvis bör den valda ALM-plattformen lagra alla artefakter såsom krav, testfall, kod, dokumentation, releaser m.m. på ett gemensamt ställe. Om dessutom alla stödverktyg som behövs för att bygga och testa produkten lagras på samma ställe underlättas arkivering och eventuell framtida återställning av den kompletta utvecklingsmiljön vilket drastiskt kortar ned tiden för att återstarta ett projekt.
En väl genomtänkt ALM strategi innebär att man även ser på stödverktygen som en del i ALM-plattformen.
Vi hjälper våra kunder effektivisera sin produktutveckling. Är du nyfiken på vad vi kan göra för er produkt, utvecklingsmiljö eller organisation?