Universitetsprojekt

Hattmakarna

Hattmakarna interface preview

Ett digitalt affärssystem till ett fiktivt företag med rollspelande kundmöten. Systemet skulle användas för att hantera beställningar, lagerhantering och kundtjänst. Fokuset för projektet var att arbeta enligt agila grundprinciper med hjälp av Scrum och eXtreme Programming.

Scrum eXtreme Programming Java Swing Git
Hattmakarna interface preview

Vad jag gjorde

Projektet utfördes i grupp och vi arbetade mestadels tillsammans i samma rum. Vi kunde därför diskutera, parprogrammera och hjälpas åt med hela projektet. Vi började med att diskutera och dokumentera de funktioner som skulle utvecklas. Detta hjälpte oss att tidigt utforma en databasstruktur som vi inte behövde ändra på under projektets gång.

Vi arbetade genom hela projektet enligt Scrum och använde Scrumwise för att planera och dokumentera arbetsprocessen. Funktioner dokumenterades som User Stories i en Product Backlog, där arbetet prioriterades och uppskattades med Story Points. Arbetet planerades sedan in i sprintar med en sprint backlog. Vi höll dagliga standups och hade sprintplanering, sprint review och sprint retrospective i slutet av varje sprint.

Jag arbetade främst med att designa och utveckla huvudmenyn och dess funktionalitet. Där implementerade jag en kalendervy som visar alla beställningar och deras aktuella status. Jag utvecklade även funktionalitet som gör det möjligt för anställda att ta ansvar för delar av eller hela beställningar. Genom att dra och släppa beställningar direkt i kalendern kunde användaren dessutom enkelt ändra deras status.

Utmaningar & höjdpunkter

Den största utmaningen

Även fast det var en av de roligaste och mest lärorika momentet i projektet så var kundmötena lite utav en utmaning. Kunderna rollspelade personer utan teknisk kunskap vilket gjorde att vi behövde tolka deras önskemål och anpassa sättet vi kommunicerade kring implementeringen av det. Ibland fick vi medvetet extrema önskemål för att utmana oss i att se bortom den efterfrågade lösningen och istället resonera fram ett realistiskt sätt att möta kundens behov.

En höjdpunkt

Vi hade en väldigt bra gruppsammanhållning och arbetade nära tillsammans genom hela projektet. Det gjorde det enkelt att diskutera idéer, hjälpa varandra och samtidigt ha roligt under utvecklingen. Vi gjorde också plats för lite humor i projektet genom interna skämt och små easter eggs i systemet. Det gjorde arbetet både roligare och mer kreativt, samtidigt som vi hela tiden hade ett gemensamt fokus på projektets mål.

Vad jag lärde mig

Under projektet fick jag erfarenhet av att arbeta agilt och använda Scrum för att planera och genomföra utvecklingsarbetet. Jag utvecklade även min förmåga att samarbeta med andra utvecklare och projektledare för att hålla arbetet strukturerat och inom projektets tidsramar. Jag fick även mer erfarenhet av Git som versionshantering, där flera utvecklare arbetade parallellt i samma kodbas och regelbundet behövde hantera branches, merges och kodändringar. Tekniskt lärde jag mig bland annat att arbeta med lyssnare, vilket var särskilt intressant eftersom det var ett område vi inte hade arbetat med i tidigare kurser.

Vad jag skulle göra annorlunda

En sak jag hade gjort annorlunda är att arbeta mer strukturerat med Git. Vi använde branches och pull requests på ett effektivt sätt, där kod granskades av en annan gruppmedlem innan den mergades, och vi lyckades undvika större konflikter. I efterhand hade jag däremot använt tydligare commit-meddelanden och avgränsat varje branch och pull request till en specifik funktion eller förändring. Det hade gjort historiken tydligare och kodgranskningen enklare.