Считаю основным не Test driven development и даже не Asshole driven development (когда решение принимает самый редиска на проекте), а Bug driven development (BDD).
Разработка через баги - техника программирования, когда количество ошибок лавинообразно растет по отношению к количеству фиксов. Срок сдачи проекта, где используется BDD определяют не даты в контрактах, а только эти самые баги. Любой фикс в таком проекте - это баг, а многие баги - это фиксы для других багов.
Часто BDD путают с Fuckup driven development (FDD) - разработка через задницу, когда мантра "Ребята, мы в заднице. Давайте работать быстрее!" повторяется с периодичностью раза два в неделю. Ключевое отличие между BDD и FDD: в BDD баги - это причина проблем; в FDD проблемы могут быть разные (сроки от балды, чудаки у руля и т.п.), но все они ведут к спешке (Rush driven developement - разработка через сверхурочную работу) и багам.
Я собі по-іншому уявляв BDD. Це коли на початку проекту весь SRS конвертується в пачку багів, наприклад:
ОтветитьУдалитьSRS: Якщо на телефон подзвонили, він має показати incoming call screen.
конвертується в
BUG: Телефон не показує incoming call screen, коли на нього дзвонять.
Проект стартував, в баг-трекері 700 свіженьких багів... поїхали :)
dali_bude
Ну це навряд чи реально, на відміну від "количество ошибок лавинообразно растет по отношению к количеству фиксов". Так що я просто вирішив бути реалістом.
ОтветитьУдалитьBug driven development (BDD) - це, насправді, ідеальна форма розробки для будь якого аутсорс проекту - такий проект триватиме вічно (і всі завжди будуть з роботою) - ну або доки в замовника бабло не закінчиться)))
ОтветитьУдалитьПричому самі замовники і підштовхують до такої форми девелопменту - бо вони хочуть все і одразу: в результаті розробка являє собою набір "фіч" (латок-костилів) побудований на корявому прототипі (корявий - бо його робили "чим скорше" аби показати замовникам "хоть щось", і в жертву "швидкості" принесли все). І ніколи часу на те, щоб підрихтувати всі корявості не буде - мало того, це неможливо, бо забравиши саму уродську корявість - одразу всі "фічі" (костилі-латки) і повідвалюються.