Cloud Nine Development Workflow
Når du arbejder med en klient på et stort projekt, skal du organisere din kodning godt for at nå alle dine mål og planlægge dit arbejde på en ordentlig måde. Men samtidig ønsker du ikke at miste for meget tid på unødvendige aktiviteter. Her er, hvordan vi forsøger at balancere det hos Cloud Nine, og hvordan vi optimerer vores arbejdsgang.
Projektplanlægning
Før vi rent faktisk begynder at skrive kode, forsøger vi groft at estimere hvor lang tid hele processen vil tage. Vi starter med at dele projektet op i mindre stykker, som vi kalder epos. Hvert epos har ét stort mål, som at oprette en underside på et websted. F.eks. hvis vi opretter en e-handelsside, ville målet være at bygge en kurvside.
Efter at have oprettet et epos opdelte vi dem i mindre opgaver. For det nævnte eksempel på en indkøbskurvside vil vi forsøge at skelne mere præcise funktionaliteter som at hente data om produkter eller tilføje nye produkter til en indkøbskurv. Når disse opgaver er adskilt, er vi klar til at vurdere dem. Der er mange måder at lave estimeringen på, men den mest populære ville være at bruge en planlægnings-poker, hvor hver udvikler kan sige noget om, hvor lang tid en given opgave kan tage.
I sidste ende opsummerer vi det hele og kan mere eller mindre forudsige, hvornår vores produkt er klar.
Problemsporing
Ok, så vi har vores opgaver og estimater, men hvordan sporer vi dem? Hos Cloud Nine bruger vi Jira. Værktøjet hjælper os med at holde styr på vores fremskridt i et projekt. Der kan vi ikke kun se, hvad vores opgaver går ud på, men også hvad status for opgaver er, hvem der tager sig af dem, en aktivitetshistorie, estimater og mange andre nyttige ting. I hverdagen visualiserer vi også vores arbejdsfremskridt bedre ved at bruge en tavle fra det virkelige liv på et kontor, så det er nemt at se hurtigt og vide, hvad der foregår i projektet, og hvad planen for andre teammedlemmer er.
Udviklingsarbejdsgang
Nogle gange kan det blive svært at få fat i et stort projekt, så vi udnytter agile teknikker og deler vores arbejde op i sprints. Hver sprint har et lille sæt mål, som gør det meget nemmere at koncentrere sig om at nå dem. For at komme tilbage til vores e-handelseksempel, ville et godt sprintmål være at gøre det muligt at gennemgå et brugerscenarie som at finde et produkt på en webside, tilføje det til en indkøbskurv og afslutte ordren. Med et mål for øje er det nemmere at prioritere opgaver og fokusere på at give en ordentlig værdi til et produkt. Så prioriteringerne kan ændre sig, men hvornår kan det ske?
Hver dag om morgenen samles et team for at lave en standup og diskutere kort, hvad der er en status og et mål for den næste arbejdsdag. Vi forsøger at synkronisere og få fat i, hvad andre teammedlemmer har gang i, så vi kan dele potentielle problemer og være i stand til at hjælpe hinanden med dem.
Kodehåndtering
Da vi arbejder i teams, er vi nødt til at dele kode mellem hinanden, så en naturlig løsning er at bruge et versionskontrolsystem. Hos Cloud Nine bruger vi Git, det mest populære værktøj af den slags. Det giver os også mulighed for at adskille kode, som muligvis ikke er klar endnu, fra kode, som potentielt kan frigives.
Fra et udviklersynspunkt er det vigtigt at holde koden så ren og så fejlfri som muligt. Men ingen er perfekte, det er derfor, vi laver kodegennemgange, så andre teammedlemmer kan sikre sig, at andre ikke har glemt noget vigtigt, mens de udfører en given opgave, og ikke lavede større fejl. Så hver gang en udvikler opretter et stykke kode til en bestemt opgave, kan det blive tjekket og verificeret af en anden.
Sæt det hele sammen
Brug af alle værktøjer og processer gør livet for en udvikler her meget lettere. Med dem alle kan han eller hun koncentrere sig om at give mere værdi til et produkt. Udover det gør det også vores samarbejde meget bedre og hjælper vores teamwork med at nå et højt niveau af synergi, så vi kan samarbejde og i sidste ende nå alle vores mål!
Om Piotr
Mit navn er Piotr og jeg er webudvikler. Jeg flyttede til Stockholm fra Polen for to somre siden, og jeg begyndte at arbejde på Cloud Nine-kontoret umiddelbart efter det. Her udvikler jeg backend-løsninger i C#, med fokus i øjeblikket på et e-handelsprojekt.