четверг, 29 июля 2010 г.

Bug driven development

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 - разработка через сверхурочную работу) и багам.


3 комментария:

  1. Я собі по-іншому уявляв BDD. Це коли на початку проекту весь SRS конвертується в пачку багів, наприклад:

    SRS: Якщо на телефон подзвонили, він має показати incoming call screen.

    конвертується в

    BUG: Телефон не показує incoming call screen, коли на нього дзвонять.

    Проект стартував, в баг-трекері 700 свіженьких багів... поїхали :)

    dali_bude

    ОтветитьУдалить
  2. Ну це навряд чи реально, на відміну від "количество ошибок лавинообразно растет по отношению к количеству фиксов". Так що я просто вирішив бути реалістом.

    ОтветитьУдалить
  3. Bug driven development (BDD) - це, насправді, ідеальна форма розробки для будь якого аутсорс проекту - такий проект триватиме вічно (і всі завжди будуть з роботою) - ну або доки в замовника бабло не закінчиться)))
    Причому самі замовники і підштовхують до такої форми девелопменту - бо вони хочуть все і одразу: в результаті розробка являє собою набір "фіч" (латок-костилів) побудований на корявому прототипі (корявий - бо його робили "чим скорше" аби показати замовникам "хоть щось", і в жертву "швидкості" принесли все). І ніколи часу на те, щоб підрихтувати всі корявості не буде - мало того, це неможливо, бо забравиши саму уродську корявість - одразу всі "фічі" (костилі-латки) і повідвалюються.

    ОтветитьУдалить