Scott Berkun навеял своей
заметкой...
Считаю основным не Test driven development и даже не Asshole driven development (когда решение принимает самый редиска на проекте), а Bug driven development (BDD).
Разработка через баги - техника программирования, когда количество ошибок лавинообразно растет по отношению к количеству фиксов. Срок сдачи проекта, где используется BDD определяют не даты в контрактах, а только эти самые баги. Любой фикс в таком проекте - это баг, а многие баги - это фиксы для других багов.
Часто BDD путают с Fuckup driven development (FDD) - разработка через задницу, когда мантра "Ребята, мы в заднице. Давайте работать быстрее!" повторяется с периодичностью раза два в неделю. Ключевое отличие между BDD и FDD: в BDD баги - это причина проблем; в FDD проблемы могут быть разные (сроки от балды, чудаки у руля и т.п.), но все они ведут к спешке (Rush driven developement - разработка через сверхурочную работу) и багам.