Цього тижня на роботі я знову розбурхувався . Пройшовши стандартну спритну, TDD, спільну власність, спеціальну методологію розробки ніколи не плануючи нічого, крім кількох історій користувачів на картці, словесно жуючи жуйку над технічними властивостями сторонніх інтеграційних рекламних нудот, не роблячи жодного реального мислення чи належна ретельність та архітектурно прив’язуючи весь виробничий код до першого тесту, який впадає в голову комусь протягом останніх кількох місяців, ми закінчуємо цикл випуску і ось, і ось основна зовнішньо помітна особливість, яку ми розробляємо, занадто повільна, щоб використання, баггі, стаючи лабіринтно складним і повністю негнучким.
Під час цього процесу були зроблені "шипи", але ніколи не було задокументовано, і жодного архітектурного дизайну не було вироблено (не було ФС, тож, чорт-ха-е, якщо ти не знаєш, що ти розробляєш, як можна планувати чи досліджувати це ?) - проект переходив від пари до пари, кожен з яких лише коли-небудь зосереджувався на одній історії користувача одночасно, і результат був неминучим.
Щоб вирішити це, я пішов з радіолокатора, пішов (страшний) водоспад, запланував, зашифрував і, в основному, не змінив пари і спробував максимально працювати сам - зосередившись на твердій архітектурі та технічних характеристиках, а не на одиничних тестах, які з’явиться пізніше, коли все буде зафіксовано. Код зараз набагато кращий і насправді є абсолютно зручним, гнучким та швидким. Деякі люди, здається, насправді обурювали мене тим, що робили це, і пішли зі шляху, щоб саботувати мої зусилля (можливо, несвідомо), оскільки це суперечить святому процесу спритного.
Тож як ви, як розробник, пояснюєте команді, що планувати свою роботу не "не спритно", і як ви вписуєте планування у спритний процес? (Я не говорю про ІПМ; Я говорю про те, щоб сісти з проблемою та замалювати чітку конструкцію, яка говорить про те, як проблему слід вирішувати досить детально, щоб кожен, хто працює над проблемою, знав, що архітектура та шаблони, якими вони повинні користуватися, і де новий код повинен інтегруватися в існуючий код)