Yesterday we had a leadership mini-workshop with the key members of my team. A main discussion topic was Definition of Done, both within the “Agile process” section and also in the broader context of “How will we become a great development team”.
Very shortly after we started the usual discussion of “OK, we all know how Done Criteria should look like (like all sorts of desting, documentation, code reviews, quality criteria checks etc.), but how do we enforce that it is happening”, we realized that it is not enforcement that will make it happen. If we push this stuff on developers as an “extra task”, they will push back saying “give me more time for that”. And of course this doesn’t work. There is rarely an extra time and capacity buffer available for this.
What works is to consider this as not a significant extra overhead task, but as natural part of everyday developer behavior, aka culture.
How to achieve this? Our recipe is educating people, providing best practices and positive examples, and remove this from the frontline of the “short term vs long term battle” and make this an almost invisible part of life.