A cleaner, what a cleaner does? He solve problems. But a cleaner can also use some free time to make better code! 🙂
My friend Klaus Wuestefeld told me once about “The Cleaner”. So here’s what I think about this role.
Movies are great opportunities to create metaphors to things we need to care about software engineering. We have learned about communication, and now we are going to discuss the role of a cleaner in a software development team.
Remember we want to make software available in production as fast as possible. But not only fast, as we need consistency. We need good, working code. One team can use short iterations, or even no iterations… in this case using a continuous flow approach, to achieve this result.
But… looking at a technical perspective, we can miss something on the way. Or we can find things we need to improve right after a deploy to production. It may not be something to cause harm… but the team will need to fix that, someday. 😀
Instead of having a fight about solving or not solving an issue during the next cycle, what about having someone to fix issues, keep code quality high and keep continuous improvement going on? Code Coverage, automation in general. Nice?
Yes, this can be very nice. But… do not leave one person doing this role for long. Neither let the team think about not doing quality code, since there’s someone to fix later. That’s not the case. Usually the cleaner is working on legacy, smelly code. 😛
If you use iterations, use its timebox to define how long someone stays playing the role. Make sure to move people around, to keep the collective ownership of code high.
I like this one:
Keep the bar green to keep the code clean! – xUnit principle
So… keep quality high. Remember that quality is not an option. It’s something that should be inside every line of code.
— Daniel Wildt