Having started with the Pomodoro Technique® and seen how it can help you focus by cutting down on interruptions and improve estimations, it is now time to get the most out of each Pomodoro: Make the Pomodoro More Effective.
A big part of making the Pomodoro more effective is to think about how you structure and apply Pomodoros. It can also involve introducing dedicated Pomodoros for specific subtasks, and splitting work into meaningful subtasks.
Pomodoros and Software Development
Find out how much effort an activity requires
Cut down on interruptions
Estimate the effort for activities
Make the Pomodoro more effective
Set up a timetable
Other possible objectives
Software development is a craftsmanship, and like a painter or sculptor you have to step back and inspect your work every once in a while.
At the beginning of each Pomodoro, it is a good idea to think about what you're about to implement: overall design, how the new code will affect other parts of the system, and so on. At the end of the Pomodoro, review the code and consider improvements and potential issues.
This is in line with what the Pomodoro Technique® Book prescribes for objective IV. To further enhance the Pomodoro Technique® when used for development and Scrum, I have tried incorporating it with agile practices such as TDD (Test-Driven Development) and refactoring.
Refactoring and Pomodoros
Most Scrum users recognize the value of XP (Extreme Programming) practices. Many XP principles are in line with Scrum goals, for example paying attention to code quality which maps well to refactor mercilessly.
When first starting to think about refactoring in XP terms, it is difficult to get into the habit of doing it regularly. It is also easy to start skimp on refactoring when on a tight time schedule.
Two ways Pomodoros can help you refactor more regularly, and produce better quality code, are:
- In the last couple of minutes of each Pomodoro, look through the code you have written, tidy it up, and consider possible design improvements. Small changes can be implemented directly, or at the beginning of the next Pomodoro.
- Every third or fourth Pomodoro, dedicate a whole Pomodoro for refactoring. If you list the number of available Pomodoros (see objective III), consider marking the Pomodoro tagged for refactoring differently. For example a diamond or circle instead of a box (see figure below).
TDD and Pomodoros
TDD is an iterative process, and when you're comfortable with it I don't see any point in dedicating specific Pomodoros for unit test development.
However, if you find yourself forgetting about the test implementation, it might be a good idea to dedicate a Pomodoro for developing the unit test. This can also help as a reminder when estimating.
Pomodoros can be effective to facilitate good development practices like TDD and refactoring. Pomodoros create a natural rhythm for activities, and help ensure they are carried out. Marking Pomodoros differently can help visualizing different development steps (figure below).
In the next post, I will write about timetables and how it relates to agile development and the sprint velocity.