Недавно я читал статью на эту тему, в которой были отзывы других разработчиков программного обеспечения. Что было интересно, так это отсутствие консенсуса по теме. С обеих сторон дискуссии было высказано довольно много сильных мнений.

Как профессиональный архитектор программного обеспечения, должны ли вы также писать код? Аргумент состоит в том, что если вы не пишете код, вы становитесь все более оторванным от приложений, которые вы проектируете и разрабатываете. Это приводит к Архитектурному астронавту[^], который впервые был придуман Джоэлом Спольски еще в 2001 году. Архитектурный астронавт постоянно пытается мыслить все более и более высокими (и все менее релевантными) абстракциями. Конечным результатом является то, что роль этих конкретных архитекторов становится излишней.

Противоположный аргумент заключается в том, что, продолжая писать код, вы сохраняете свои навыки разработки на современном уровне и, следовательно, сохраняете большую степень актуальности. В конце концов, чтобы быть хорошим архитектором программного обеспечения, вы также должны знать, как создавать хорошие программные системы, верно?

Должен сказать, что я весьма разделен по этому вопросу. Я определенно согласен с тем, что как архитектор программного обеспечения определенно стоит продолжать оттачивать свои навыки разработки и поддерживать их в актуальном состоянии. Однако нужно ли для этого писать производственный код? Поддержание актуальности и актуальности ваших навыков — это одно, а разработка кода производительности — совсем другое.

Архитектор программного обеспечения не пишет код в том же объеме, что и разработчик программного обеспечения. Это должно быть достаточно очевидно. Если вашей основной функцией в организации является архитектор программного обеспечения, то вы, естественно, будете тратить большую часть своего времени на деятельность, связанную с архитектурой. Если ваша основная функция — разработчик программного обеспечения, то большую часть времени вы потратите на деятельность, связанную с разработкой.

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

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

Если эта статья была вам полезна, нажмите кнопку💚ниже. Спасибо!