До изучения программной инженерии я часто задавался вопросом: что собственно делает человека инженером? В процессе 5-летнего обучения в колледже у меня было достаточно времени, чтобы подумать об этом. Не сразу, но в конце концов мне удалось найти ответ на свой вопрос. Он выразился в определении трех основных законов, которым должен следовать каждый инженер-программист.

Чтобы стать инженером-программистом, требуются годы обучения. Однако основные принципы, на которых базируется подход к разработке программного обеспечения, можно свести к 3 фундаментальным законам.

Рассмотрим каждый из этих законов, чтобы лучше понимать образ мышления инженеров-программистов.


1. Проектирование предшествует написанию кода

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

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

В конце концов, контроль над процессом  —  один из основных принципов инженерной деятельности. Вот почему инженер должен определять, что и как сделать, а также какие инструменты применить.


2. Стоимость неудачи должна быть минимизирована

Мои преподаватели говорили: “Если проекту суждено провалиться, он провалится в первые несколько недель. Чем раньше он провалится, тем лучше”. Я до сих пор придерживаюсь этого правила.

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

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


3. Результаты должны быть измеримы

Инженеры не просматривают результаты  —  они их измеряют. Это еще один ключевой аспект инженерного подхода к ПО. Вместо того чтобы просто принимать к сведению результаты, инженеры измеряют их, чтобы точно знать, как и почему команда смогла их достичь. Только тогда можно понять, где и что нужно улучшить.

Каждый проект преследует свои цели, и не всегда легко найти правильные показатели для измерения результатов. Именно здесь опыт инженера играет ключевую роль.

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


Заключение

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

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Antonello Zanini: The 3 Basic Laws of Software Engineering

Предыдущая статьяTypeScript: разница между типами any и unknown
Следующая статьяRust: выполнение HTTP-запросов и обработка ответов с помощью reqwest