Från labbet

En timer för mobbprogrammering till vår CLI app

Vi uppgraderade den befintliga Prototyp CLI-applikationen (prototyp från en tidigare Prototyp-vecka) och lade till en timer för mobbprogrammering.

Tech used

  • Go
  • Charm
  • CLI

Press to view video

Bakgrund

Under en tidigare Prototyp-vecka utvecklades ett CLI (Command Line Interface) för att förenkla det dagliga arbetet för alla anställda på Prototyp. CLI-appen hade redan stöd för kommunikation via Slack, tidrapportering i Harvest och tidsestimering i Planning Poker, men nu ville vi lägga till:

  1. En timer för mobbprogrammering som kan användas vid par- och mobbprogrammering för att hålla reda på när man ska växla mellan förar- och navigatörsroller, todo:s och naturligtvis tiden.
  2. En onboarding-modul för nyanställda för att få dem att komma igång med sina datorer och se till att de har allt de behöver för att börja programmera.

Processen

För att “leva som vi lär” så beslutade vi oss för att mobbprogrammera under hela projektet. Hela teamet arbetade därför tillsammans med samma kod, i samma miljö. Vi turades om att vara förare (driver) och vara den som skriver på tangentbordet medan resten instruerade och guidade (navigatörer). Varje person fick 20 minuter som förare innan vi bytte. På så sätt fick vi lära oss att experimentera med ett nytt programmeringsspråk samtidigt som vi utforskade nya CLI-bibliotek tillsammans!

Gruppen utvecklare deras nya Prototyp CLI system.

Utmaningar

Att välja rätt CLI-bibliotek var en utmaning. Vi behövde övergripande förstå hur de fungerad så vi tillbringade mycket tid (mer än vad vi hade) med att utforska några av dem. Exempelvis så tittade vi på Charms Bubbletea och Wish, Cobra och Reactea. Vi landade till slut i att använda oss av Bubbletea och Wish för modulen för mobbprogrammering och en kombination av Cobra och Bubbletea för onboarding-modulen.

https://charm.sh/ har mängd olika CLI-bibliotek att tillgå.

https://charm.sh/ har en mängd olika CLI-bibliotek att tillgå.

Det var svårt att hålla fokus i produktionen eftersom vi lade så mycket tid på att utforska de olika CLI-biblioteken. Istället hoppade vi fram och tillbaka mellan biblioteken samtidigt som vi skrev kod för de olika modulerna i takt med att vi lärde oss. Detta tillsammans med att vi i teamet inte hade någon större erfarenhet av att skriva kod i Go gjorde att vår produktionsprocess blev lidande.

I slutet av veckan bestämde vi oss därför för att begränsa vårt scope och endast fokusera på det som vi kände hade potential att bli färdigt med den tid vi hade kvar. Vi bestämde oss för att satsa fullt ut på timern för mobbprogrammering.

Resultat / Lärdomar

Till slut lyckades vi färdigställa en timer för mobbprogrammering (tillgänglig via SSH) som vi kan lägga till i Prototyps CLI-applikation.

Mobbprogrammering är väldigt tidskrävande när alla är nya i ett kodspråk. Behöver teamet dessutom lära sig mer om CLI-bibliotek blir inlärningskurvan ganska brant. Även om vi inte hann färdigställa allt vi ville göra så var det ändå värt det för oss – för det vi förlorade i hastighet kompenserade vi med att ha roligt.

Mob programming modul for Prototyp CLI.