3 основных принципа разработки программного обеспечения.
Перед изучением программной инженерии меня всегда мучил вопрос: в чем суть инженерной деятельности? В течение пяти лет обучения в университете у меня было достаточно времени для обдумывания этого. Наконец, я смог найти ответ, сформулировав три основных принципа, которыми должен руководствоваться каждый инженер-программист.
Хотя стать инженером-программистом требует многолетнего обучения, основные принципы, лежащие в основе подхода к разработке программного обеспечения, можно сформулировать в виде трех фундаментальных законов.
Давайте рассмотрим каждый из этих законов, чтобы получить более глубокое представление о мышлении инженеров-программистов.
Проектирование предшествует написанию кода
Первое, что я усвоил в процессе изучения программной инженерии, — это принцип того, что инженеры предпочитают сначала размышлять, а затем приступать к действиям. В контексте разработки программного обеспечения это подразумевает, что инженеры начинают с проектирования, а затем приступают к написанию кода.
Более того, многие инженеры-программисты даже не проводят большую часть времени за программированием. Их основная деятельность связана с проектированием базы данных, разработкой архитектуры программного обеспечения, принятием решений о технологическом стеке и обеспечением команды разработчиков всем необходимым для успешной реализации приложения.
В конечном итоге, контроль над процессом является одним из основных принципов инженерной деятельности. Поэтому инженер должен определять, что и как делать, а также выбирать подходящие инструменты для успешного завершения задач.
Неудачи следует сводить к минимуму в целях оптимизации затрат
Мои преподаватели всегда подчеркивали: «Если проекту предрешено провалиться, это произойдет в первые несколько недель. Чем раньше, тем лучше». Это правило, которому я придерживаюсь до сих пор.
В разработке программного обеспечения основной акцент делается на реализации ключевых функций, которые представляют собой наибольшие трудности. Ведь если команда разработчиков не сможет справиться с ними, проект столкнется с неудачей в самом начале. И, несмотря на то, что это представляется наихудшим сценарием, такой немедленный провал означает экономию времени, денег и усилий. Именно в этом состоит стратегия минимизации стоимости неудачи. Этот подход также применим в различных областях жизни, именно поэтому я считаю его наиболее важным уроком, полученным в процессе обучения.
Достигнутые результаты должны быть измеримыми
Инженеры не просто оценивают результаты — они измеряют их. Это еще один важный аспект инженерного подхода к разработке программного обеспечения. Вместо того чтобы просто фиксировать результаты, инженеры применяют измерения, чтобы точно определить, как и почему команда достигла поставленных целей. Такой подход позволяет точно определить, где и что можно улучшить.
Каждый проект имеет свои уникальные цели, и не всегда легко выбрать правильные показатели для измерения успеха. Здесь на сцену выходит опыт инженера.
В большинстве случаев чем раньше удастся определить эти показатели, тем лучше. Однако по мере развития проекта необходимо умение инженера адаптироваться, изменять инструменты и методы измерения результатов в соответствии с изменениями в проекте. Такой подход помогает сохранять контроль над процессом.
Заключение
Программная инженерия — это искусство, овладение которым требует многолетнего опыта. В этой статье мы рассмотрели три фундаментальных аспекта, на которых базируется эта область. Если вы только начинаете мечтать о карьере в области программной инженерии, эти принципы могут вас вдохновить. В случае, если вы уже на пути к этой профессии, они могут послужить вам вечными уроками, сохраняющими свою актуальность.