Полууспешно пытаюсь внедрять readme driven development. Те девелопер должен человеческим языком описать что он будет делать с точки зрения того, как этим пользоваться юзеру.
Получается не всегда, но всегда полезно.
Отсюда следует второе: прежде чем делать - подумай и раскажи, как проверять