Найти в Дзене
Radik Zainullin

Хрупкость программного проекта

Навеяло прочтением Нассима Николаса Талеба - книги Антихрупность. Рассмотрим программный проект. Что нужно ввести в легаси проект, чтобы сделать его хрупким? Если процесс вхождения человека в проект очень болезненный, то есть ему приходится искать нужное программное обеспечение (оно коммерческое, с больших количеством версий, старое и очень капризное), поэкспериментировать с тем, что есть на шарах, для установки этого ПО требуется получить админский пароль или заказывать установку службе поддержки, которая делает это на отьебись, ему непонятен сам процесс установки и настройки, а он реально сложный, он работает только в связке с настроенным девопсом, где надо среду девопс настроить, чтобы получить работающий набор проектов. Данные знания надо хранить у двух, а лучше у одного разработчика, который в проекте с самого начала и хранит эту эксклюзивную информацию у себя. 1. Надо последовательно избавлятся от единой методики построение места разработчика. Если система очень сложная, в которо

Навеяло прочтением Нассима Николаса Талеба - книги Антихрупность.

Рассмотрим программный проект.

Что нужно ввести в легаси проект, чтобы сделать его хрупким?

Если процесс вхождения человека в проект очень болезненный, то есть ему приходится искать нужное программное обеспечение (оно коммерческое, с больших количеством версий, старое и очень капризное), поэкспериментировать с тем, что есть на шарах, для установки этого ПО требуется получить админский пароль или заказывать установку службе поддержки, которая делает это на отьебись, ему непонятен сам процесс установки и настройки, а он реально сложный, он работает только в связке с настроенным девопсом, где надо среду девопс настроить, чтобы получить работающий набор проектов. Данные знания надо хранить у двух, а лучше у одного разработчика, который в проекте с самого начала и хранит эту эксклюзивную информацию у себя.

1. Надо последовательно избавлятся от единой методики построение места разработчика.

Если система очень сложная, в которой нет описания жизненный цикл общения начиная от внешнего воздействия до ответной реакции, наличия побочных эффектов из-за неизолированности цикла, жизненый цикл со сразу многими участниками, то надо еще добавлять новую функциональность, в рамках простейших “ручных” трассировок. То есть усиленно делать макаронную систему.

2. Надо добавлять новую функциональность в систему, не имея в запасе надежной модели, описания, мониторинга.

Если система по здравому смыслу имеет очень простую идею, которую можно выразить тремя предложениями, которую могут создать и поддерживать три программиста, то так надо сделать проект из пяти систем, которые передают данные друг другу обогащая их и меняя. Надо сделать точку синхронизации в большой СУБД, которая нахрен не нужна. Надо сделать сразу "мертвый" проект.

3. Не надо думать о будущем, надо гальванизировать труп мертвого проекта и ждать пока он по настоящему станет мертвым. Не надо заранее готовить замену.

Надо чтобы была явная зависимость от сотрудников, есть сотрудник - можем что-то сделать, нет сотрудника - все стало раком.

5. Надо чтобы все наработанные практики проекта были в чьем-то единоличном владении.

6. Надо чтобы чтобы на проект работало много людей на полную мощность.

7. Надо никому не показывать архитектуру, а то будут пальцем у виска крутить.

8. Надо чтобы цена ошибки была нулевой.

9. Проект не надо критиковать.

10. То есть не надо мелких воздействий.

Надо думать что так было всегда и всегда так будет.

11. Над дать системе спокойно загнить. Когда все сломается окончательно, надо еще добавить людей в проект.

12. Надо всегда думать, что программирование это искусство, а не производство. Поэтому никогда не применять критерии производства к проекту и к работе программистов.

13. Проект надо сделать монолитом.