After a short commute from my kitchen to my home office area (i.e. a corner of my bedroom), I sit down at my desk and start catching up on emails and messages. It’s typical to work from the client’s office, but we’re all working from home at the moment due to Covid-19 restrictions.
It looks like my pull request from yesterday afternoon has some comments from a client team member. I spend some time thinking about the comments and the required changes. I reach out to the team member who left the feedback and we decide to pair on it later in the morning.
My teammate and I start pair programming over a video chat to address the pull request comments. Part of ThoughtWorks objectives at this client is to help introduce new engineering practices, with pair programming being one of them. It’s a slow process, but we are constantly looking for opportunities to help drive this initiative. My teammate and I get the changes through just before standup.
Time for standup! Using the card wall as an anchor, we take turns giving updates on the work and coordinating the day’s work. Since my card is done, I make sure to give a heads up that I am available to help finish something or pick up something new. We are nearing the end of the Sprint, so there is a little pressure to finish stories and to prepare for the next one. One of the developers is dealing with a particularly tricky issue, so a few of us volunteer to mob program after standup to solve the issue. Mob programming is a software development approach where a group of developers tackle one problem together, with one person at a time controlling the keyboard.
After a tea break, our mob programming session starts. We get started on tackling the tricky issue, taking turns to give suggestions as one person codes. It takes a little longer than we thought, but we manage to make enough progress to unblock the developer leading that card.
Lunch time! I make myself a big bowl of pasta. One of the advantages of working from home is that I can cook lunch for myself, which is something I love doing.
I get back to work and I look at the card wall to pick up a task. On the top of the to-do list, there’s an interesting card on improving the performance of a screen in our iOS app. I’ve got more experience doing backend work, but I’m happy to try anything. I’ll definitely have to do some research on this one.
I assign myself to the card and change the status to ‘in progress’. I start by familiarising myself with the requirements and taking a look at that specific section of code. Then I message one of the iOS experts on the team and we have a quick discussion on different approaches. I get started on making some code changes.
The team starts a card refinement session. This session is to help make sure that the cards that will be worked on soon are ready to be picked up by a developer. Before a card is talked about at one of these sessions, Three Amigos (which in this team is usually the product manager and a pair of developers) have already collaborated on the writing of the card. This usually means that when we discuss the card in the refinement session, there are often only a few clarifying questions needed before the team is satisfied.
It’s already almost the end of the day! I get back to work on the card I picked up after lunch and manage to make a little progress.
It’s time to wrap up for the day. I leave myself some notes for tomorrow and shut my computer.