Här på Systematic är vårt engagemang för programvaruutveckling inte bara en del av processen – det genomsyrar vårt DNA. Men vad innebär det egentligen att skapa kod av högsta kvalitet? Hur kan vi konsekvent leverera högkvalitativa lösningar som alltid lever upp till kundernas krav? I denna Tech Byte tittar vi närmare vi kopplingen mellan förutsägbarhet, ansvar och kodkvalitet.
Av Tobias Rosenkranz Gundersen, Software Architect.
Systematics inställning till programvaruutveckling: det bästa av två världar
Vår strategi för programvaruutveckling kombinerar de robusta principerna hos CMMI (Capability Maturity Model Integration) och den smidighet som finns i Lean, Scrum och moderna metoder för programvaruutveckling. Den här kombinationen ger oss en välfungerande metod med balans mellan struktur och flexibilitet, vilket gör att vi kan vara innovativa och samtidigt hålla fast vid våra orubbliga kvalitetsstandarder.
Vi är specialiserade på att utveckla programvarulösningar för försvar samt hälso- och sjukvård över hela världen och våra processer säkerställer att vi alltid kan leverera högkvalitativa lösningar i tid och inom budget, trots att det rör sig om långa och komplicerade projekt med noll utrymme för fel.
CMMI är själva ryggraden – ett stringent ramverk som säkerställer enhetlighet, processmognad och organisatorisk samstämmighet. Denna kompass vägleder oss genom komplicerade projekt och förespråkar förutsägbarhet och tillförlitlighet, medan Agile andas in liv i våra processer genom att uppmuntra samarbete, snabba iterationer och förmågan att anpassa sig till ändringar. Våra team anpassar sig och presterar som bäst i dynamiska miljöer, och därför kompletterar Agile CMMI och skapar en synergi som ingen av metoderna skulle kunna uppnå på egen hand.
Man skulle kunna hävda att våra robusta processer gör det möjligt för oss att arbeta mer flexibelt eftersom våra välutvecklade processer säkerställer att vi inte bara kan missa att exempelvis testa en ny funktion innan den driftsätts. Detta tillvägagångssätt minimerar även risken för att vi ska behöva jobba övertid eller ha mycket pressade tidsfrister eftersom vi hela tiden har koll på hur vi presterar och var vi befinner oss i processen, vilket innebär att vi upptäcker eventuella risker redan i ett tidigt skede och kan vidta riskreducerande åtgärder.
Vår metod för mjukvaruutveckling kombinerar de robusta principerna för CMMI och smidigheten som är inneboende i Lean, Scrum och moderna programvaruutvecklingsmetoder.
Byggstenar för kod av högsta kvalitet
1. Robusta teststrategier
Kod av hög kvalitet skapas med hjälp av noggranna tester. Våra omfattande testsviter omfattar enhetstester, integreringstester och tester för ändpunkt till ändpunkt – och utgör grunden för vår utvecklingsprocess. De validerar funktion, upptäcker undantagsfall och säkerställer ett förutsägbart beteende. En genomtestad kodbas skapar förtroende och minimerar oförutsedda händelser.
2. Dokumentation som vägvisare
Ansvarsfull kod åtföljs av omfattande dokumentation. Infogade kommentarer, API-referenser och arkitekturdiagram syftar till att vägleda de som ska underhålla koden i framtiden. Dokumentation är inte någonting som ska slängas ihop i efterhand, utan ett arv som med omsorg utformas och traderas till efterföljande för att säkerställa en obruten kontinuitet i utvecklings- och underhållsarbetet.
3. Kontinuerligt lärande och utveckling
Förutsägbarhet och ansvar främjas av kunskap. Våra utvecklare är nyfikna av sig och lär sig aktivt genom konferenser, forskningsrapporter och diskussioner. Detta engagemang för kontinuerligt lärande främjar innovation, som i sin tur leder till kod av högsta kvalitet och ser till att vi ligger i framkant när det gäller tekniska framsteg.
"... Eftersom vi har så robusta processer kan vi tillåta oss själva att arbeta med mer flexibilitet, eftersom våra mogna processer kommer att säkerställa att vi helt enkelt inte kan glömma att t.ex. testa en ny funktion innan den sätts i produktion."
Arkitektperspektiv
Som arkitekt i Defence Services-teamet är jag med och utvecklar både skräddarsydda och färdiga lösningar för försvarsstyrkor, där jag hjälper till att definiera de tekniska riktlinjerna för skräddarsydd utveckling och integrering av SitaWare-produktsviten. Att arbeta med försvar har varit ett medvetet val för mig, eftersom säkerhet och kvalitet är ett måste inom det här unika området. Jag ställs inför tekniska utmaningar varje dag, samtidigt som jag får arbeta på långsiktiga lösningar som verkligen gör skillnad. Att veta att den högkvalitativa kod som jag hjälper till att leverera och integrera hos kunderna överträffar deras förväntningar och håller sig i längden tack vare vårt fokus på förutsägbarhet och ansvar gör mig otroligt stolt och får mig att känna att jag har åstadkommit något stort.
Om författaren
Tobias Rosenkrantz Gundersen är Software Architect på Systematic och arbetar i Defence Services-teamet. Här bygger han broar mellan tekniska lösningar och affärslösningar. Han definierar tekniska mål och ser till att kundbehov, affärsmål, företagsprocesser och industristandarder efterlevs. Tobias brinner för ny teknik och dess möjligheter inom försvarssektorn.