Lava anti-pattern
Dec. 19th, 2023 06:07 pmЕсть такой известный анти-паттерн "лава" (когда новая фича или новый подход извергается, начинает заполнять код, постепенно застывает, не дойдя до финала, а потом следующее извержение - и продакшен является наслоением предыдущих недоделанных рефакторингов).
А сейчас я понял ещё более жуткий анти-паттерн - это "лава требований". Когда в проект приносят требования, реализуют чуть-чуть, и тут же бросаются за новыми требованиями (точнее, их приносят с ещё большим приоритетом). Предыдущие ещё не работают, но уже почти потеряли актуальность. А следующие фичи пишутся на основе и с учётом (насколько можно) предыдущих слоёв. Ни один из них не доводится до финала, и всё время "новые горячие фичи", а с низу остывающие недоделанные предыдущие фичи для предыдущих требований.
Ключевым тут является даже не "недоделанность", а то, что в проекте непрерывно появляются новые и новые требования, часть из которых системная (то есть не запрос на фичу, а требование поведения как полиси). Со временем требований становится так много, что даже вся команда целиком не может вспомнить все требования, которые были реализованы (или даже находятся в реализации).
Для высшего уровня, добавить в эту же кучу требования по безопасности (например, rsa 4096 бит рядом с ip-based security (без авторизации), реализованной только для части сервисов, то есть часть сервисов голая).
А сейчас я понял ещё более жуткий анти-паттерн - это "лава требований". Когда в проект приносят требования, реализуют чуть-чуть, и тут же бросаются за новыми требованиями (точнее, их приносят с ещё большим приоритетом). Предыдущие ещё не работают, но уже почти потеряли актуальность. А следующие фичи пишутся на основе и с учётом (насколько можно) предыдущих слоёв. Ни один из них не доводится до финала, и всё время "новые горячие фичи", а с низу остывающие недоделанные предыдущие фичи для предыдущих требований.
Ключевым тут является даже не "недоделанность", а то, что в проекте непрерывно появляются новые и новые требования, часть из которых системная (то есть не запрос на фичу, а требование поведения как полиси). Со временем требований становится так много, что даже вся команда целиком не может вспомнить все требования, которые были реализованы (или даже находятся в реализации).
Для высшего уровня, добавить в эту же кучу требования по безопасности (например, rsa 4096 бит рядом с ip-based security (без авторизации), реализованной только для части сервисов, то есть часть сервисов голая).