We’re growing at Nulogy, and we recently divided our product development team into two. I have been a developer on the original team for nearly three years and saw it grow to nine people. After the split, the new team that I was on had only two developers. This was a concern.
In the past, our primary way of learning had been through pair-programming in a large team of experienced developers. Additionally, the large team size provided a diversity of ideas and mentorship. We were now mostly on our own and had to take ownership of our growth.
Of course, that’s nothing new in software development. However, at Nulogy, we hadn’t developed rituals and practices at the team level to be intentional about learning.
Fear of Career Stagnation
At our first developer retrospective, we discussed the risk of career stagnation since the two of us had similar levels of expertise. And we had already shared most of what we knew since we have been working closely together for a couple of years. Not only that, but we were a fraction of the original team’s size which meant a lower velocity and possibly lower code quality due to a lack of pair rotation.
We believe that “The Obstacle is the Way” in that challenges can be utilized to catalyze growth. We wanted to use this challenge as an opportunity to develop a new habit. Because we have such a tremendous amount of Autonomy and Trust at Nulogy, we had the courage to ask ourselves during that retro: What can we do to overcome our blind spots? How can we absorb new information in novel ways? What bold moves can we take to overcome these challenges?
How might we continue to learn?
We use Dave Hoover’s Apprenticeship Patterns as a foundation for our learning at Nulogy. In it, he advises studying the classics by reading constantly. He prioritizes tried and tested books over blog posts because they are likely to provide lessons that are timeless.
But many software developers can attest to the visceral somersault that washes over them at the mere thought of getting through a book like this:
We needed a way to stay committed to learning, especially when going through thick books such as:
- Implementing Domain Driven Design (pictured above)
- Clean Code
- Growing Object Oriented Software Guided By Tests
- Design Patterns
- The DevOps Handbook
We also needed a way to retain the knowledge we extracted…
We already had book clubs and such at Nulogy, but we wanted something more regular, lightweight, and fun. We needed a new organizational habit so we devised an experiment that we called the First Pomodoro. The choice of naming came from the decision to have our first pomodoro of the day be devoted to learning — before standup.
The Pomodoro technique is commonly used by developers at Nulogy to set aside uninterruptible pair programming time. We typically code in cycles of 25 minutes followed by a 5-minute break for interruptions/meditations/bathroom breaks/etc.
We decided to spend our first pomodoro exclusively focused on building Production Capacity. Then we’d have a short standup meeting with our team, as usual, followed by Production for the rest of the day.
Steps Involved in First Pomodoro
So here is the breakdown of the First Pomodoro. We ask each other the following two questions and follow it up with an activity:
- What did you learn yesterday?
- What do you want to learn or apply today?
- Retention Check (reinforcement through Spaced Repetition)
Because what good is learning if you just forget it soon after?
When we share what we learned the previous day, we get a chance to write it on a cue card. We then collect it onto our personal stacks. During Retention Check, we take the other person’s stack of cue cards and use it to quiz them. The purpose of the quizzing is to do Spaced Repetition; a technique taught in school and one that is effective for reinforcing learnings. We move any correctly answered cards to the back of the stack and any incorrectly answered cards to somewhere near the front of the stack depending on how incorrect the answer was.
To be clear: The First Pomodoro is not where we do our readings.
We each read our books on our own time: at home or during our commute. The First Pomodoro is where we share our learnings. “When one person teaches, two people learn.” The act of sharing is a powerful way of reinforcing what we have read, and the discussions and quizzing helped both of us retain the knowledge.
Importance of the Habit Loop
Our Cue is the time that we start our First Pomodoro. The Routine consists of going through the three steps. And the Reward, well, we didn’t know what to do about that. But during the inception, we knew we’d need something to make it feel good to practice the First Pomodoro. We decided to write on our whiteboard the current count of distinct cue cards we had in both of our stacks combined. We’d increment the number every day at the end of the First Pomodoro as we learned new things and added cards. So the Reward was a visual “sense of progression.”
Why didn’t we just perform this whole thing at home on our own time? Well, you see, what really drives this habit is the Sense of Believing we get by doing it as a group. Even if it is just with one other person. We can do it alone but we will be less likely to stick to the habit.
Initially, it was just my team member and I and we wouldn’t get a new developer hire for a while. During that time we were learning more intensely than we had ever before. And every morning was like a game. We’d come in excited to share what we’d learned the previous day. Every time we did the First Pomodoro, we were energized and highly engaged. And the software development hadn’t even started for the day!
Because we were aware of what we were both learning, we were super-aligned, and we were able to apply the concepts within our organization efficiently. In one of our cross-team DevOps meetings, we were able to quickly use an impact assessment model from the book Lean Change Management that one of us had been reading the week prior.
One of the ways that we measured the success of the First Pomodoro is by reflecting on stories of successful collaboration and technical advancement (like the one mentioned above) it has generated on our team. And I’m excited to share more of these stories in depth in future blog posts!
Scaling the First Pomodoro
After a couple of months, we had a new developer join us. We were excited, and we didn’t lose our First Pomodoro practice. To scale, we started tripling. Proceeding clockwise, one person would ask “What did you learn yesterday?” to the person next to them, and that person would repeat the question to the person next to them until we completed the first step. For the new developer, it proved to be a valuable onboarding practice. In addition to providing her a place to share what she is learning during onboarding, it has also been demonstrative of the culture of learning and growth that we value at Nulogy. Here we are all humbly learning as if we’re all onboarding.
We imagine that if we were to have another team member join us for First Pomodoro, we would pair up. This way we would be able to complete it within 25 minutes. We would triple anytime there is an odd person.
Looking Beyond the Horizon
After months of First Pomodoros, I could not believe we did not do this before. It is now essential to us. I have personally learned so much, that the mental models I now have are drastically shifting my software development approaches, for the better. If this is the effect of only a few months, how different will I be in one year? How much further ahead in my software development career will I be? I could not even begin to imagine. And most importantly, the real Reward of this habit is the feeling of learning something new every day with your team.
It just feels good to learn together.
We were faced with several obstacles when we split into two teams last year. Fearing stagnation, we developed an organizational habit called the First Pomodoro for daily learning. It took us several weeks to iron out all the kinks. It is now an essential part of our team’s culture. By sharing our story, we hope that the First Pomodoro will spread throughout our organization and beyond.
Other Tips for Effective First Pomodoros
- The First Pomodoro practice is like an XP organizational practice. You have to do it regularly to realize the benefit behind it. If you only do it once in a while, the overhead of doing it may make you feel it isn’t valuable. Imagine if we pair programmed or TDDed only once a week. It probably wouldn’t have the same effect on our codebase as it does if we do it on every feature.
- Learn “meta-skills.” These can be memorization tricks, how skills are acquired, the psychology of motivation, etc. Comes in handy when trying to beat those cue cards!
- Some days you may feel like you didn’t learn enough. Other days, you’ll be thrilled. No matter what, though, learning is a process. Not a goal. The fact that you’ve committed to and have shown evidence to your subconscious mind of daily learning releases it from any inhibitions because you can look forward to the next day’s session.
- Listen intently and with great interest when your peers are sharing their learnings. They probably have valuable insights that’ll help you work more collaboratively as a team.