We hear a lot about “best practices”. They apply to every endeavor from home repairs to business strategies. The phrase is also often used when examining agile software development approaches such as Kanban, Lean, Scrum and XP.
What are best practices? They’re really just methods, processes, rules or techniques that have been successful in certain situations. Once a practice delivers a successful outcome, it’s immediately a candidate for “best practice” status. Multiple successful outcomes make it appear to be a sure-fire approach.
Do best practices represent the best we can do?
Of course not. A best practice, even if it’s optimal, is merely a snapshot in time. It’s the best we can do today, given the present situation. It says nothing about tomorrow.
There is another downside to the idea of best practices. They often serve as a crutch; a kind of safe haven. Because a practice is generally accepted as a best practice, it must be the right thing to do — a no-brainer. Thusly, there is no need to analyze and assess the present situation. All you need to do is adopt best practices.
Take daily standup meetings, for example. These represent the most widely accepted element in any form of agile software development. But, are they an essential characteristic of being agile — a best practice?
Consider these two divergent situations.
Team One consists of senior developers and testers. They have been through many agile projects together and work well as a unit. Do they need to meet everyday? It won’t hurt but it’s likely to be unnecessary. The team should decide what works best for them. Perhaps meeting 2-3 times a week will suffice. Or, they might decide to meet weekly for longer than the prescribed 15 minutes.
Team Two consists of a senior-level contributor along with a staff of mostly junior members. This is the first agile project for most of them. Do they need to meet everyday? Yes! In this situation, the best practice recommendation of daily meetings should be followed. A junior team needs additional oversight and more opportunities to self-correct.
Any particular best practice may not be suitable to your situation. If you conclude that a best practice cannot work or will be too difficult to implement, ask yourself how the practice can be adjusted to make it work for your team.