tgoop.com/emacsway_log/1285
Last Update:
Много раз на практике наблюдал ситуацию, когда специалист имеет правильное понимание, но не может его аргументированно донести своим коллегам. Возникает борьба за лидерство, токсичность, конфликтность. Одни только баттлы вокруг SRP чего стоят. Нередко это заканчивается агрессивно-пассивной позицией: "делай как хочешь, только меня потом не трогай".
Ключем к пониманию ситуации является слово "потом".
Суть архитектурного решения сводится к тому, чтобы бесконечно большое множество вариантов реализации сократить до одного единственного варианта. Иными словами, архитектура - это о том, как не надо делать. И здесь важно не многообразие вариантов само по себе, а те критерии, по которым их количество можно сократить.
Плохое архитектурное решение - это не то, которое не приняли, а то, которое приняли без учета критерия, который стал очевиден после его принятия. Т.е. не хватило опыта предвидеть. А обобщенный опыт выражен теорией. Теория дает недостающие точки зрения и позволяет минимизировать вероятность ошибочного архитектурного решения. Теория - это способ доступа к чужим ошибкам.
Во время спора обычно всегда не хватает угла зрения, который высветил бы недостаток одного из вариантов решения. Это не значит, что спор разрешился бы, если бы этот угол зрения появился, т.к. спор может уже войти в фазу крутого пикирования психологической защиты. Но без этого угла зрения он точно не разрешится.
Я уже говорил, что лидерство заключается, в первую очередь, в дальности горизонта видения. Еще в Дао Де Цзин писали, что мудрый лидер управляет не запретами, а проливанием света на последствия. Вот этот горизонт видения и есть то самое, вокруг чего люди объединяются.
Именно поэтому Craig Larman говорил:
💬 “Место, где происходит реальная работа” в программировании - это код, из чего следует, что первоклассными менеджерами должны становиться лучшие разработчики, которые часто оценивают код.
- Craig Larman, https://less.works/ru/less/principles/systems-thinking.html
Хороший лидер уберегает от проблем. Потому что способен их предвидеть. Потому что знает. Что означает, что ничто другое не имеет значения.
Как говорил Л.Н.Толстой, один из самых влиятельных людей мира, единственным инструментом власти которого было слово:
💬 "Всякая истина, выраженная словами, есть сила, действие которой беспредельно".
Поэтому очень важно не только видеть правильное решение, но и видеть причинно-следственные связи, приводящие к этому решению.
Хорошим примером является DDD. Зачастую разработчики интуитивно чувствуют его полезность, но не понимают какую именно проблему он решает. Попытки "насадить" DDD могут привести к формированию оплота сопротивления. Даже у Nick Tune, известного автора по DDD, такое случалось.
BY emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.

Share with your friend now:
tgoop.com/emacsway_log/1285