We upgraded the Prototyp CLI application (a prototype from a previous Prototyp Week) and added a Mob Programming Timer.
Press to view video
During the last Prototyp Week, a Prototyp CLI (Command Line Interface) was developed to simplify the daily work life of all employees. That version of the CLI application supported communication in Slack, time reporting in Harvest, and time estimation in Planning Poker. Now, we wanted to upgrade the CLI app with:
As we were developing a module for mob programming, we decided "to do as we learn" and use a mob programming approach. The whole team worked simultaneously on the same thing in the same space with the same code.
We took turns typing on the keyboard (being the driver) while the rest instructed and guided (navigators) what was being typed. Each person got 20 minutes as a driver before we switched. This way, we got to learn and experiment with a new programming language and explore new libraries together!
One challenge was to make the right choice of what CLI Library to use. We wanted to know how they all worked to understand what was possible, so we spent much time (more than we had) exploring a handful of them, such as Charm’s Bubbletea and Wish, Cobra, and Reactea. Ultimately, we settled on using Bubbletea and Wish for the mob programming timer module and combining Cobra and Bubbletea for the onboarding module.
https://charm.sh/ offers a variety of CLI libraries.
The long exploration phase also led to difficulties in keeping our focus in the actual production. Instead, we jumped back and forth between libraries and working on the mob- and the onboarding modules alternately. In addition, we had little to no experience writing in Go before, which, combined with the already mentioned, became a significant hurdle for us.
Therefore, at the end of the week, we decided to narrow the scope and focus on what we felt was more bite-sized and had the potential of being complete (or near to it) with the time we had left. We decided to focus only on the mob programming timer.
In the end, we managed to finalize a small mob programming timer accessible by SSH which we could add to the current CLI application
Mob programming is very time-consuming when everyone is new to a code language. The learning curve is quite steep if the team also needs to learn more about CLI libraries. Even if we didn't finish everything we wanted to do, it was still worth it for us - because what we lost in speed we made up for in fun.