
Инженер - это звучит солидно и гордо, во все времена. Однако, в последнее время наша профессия (не только ИТ-инженеры) претерпевает деградацию в большинстве отраслей.
В статье я хочу подсветить эту проблему и указать, что сейчас можно сделать абитуриентам, выпускникам и уже действующим инженерам, чтобы выйти на новый уровень инженерной науки и практики (или хотя бы понять своё место в ней).
Введение
Почему я сделал такие выводы? Я сам инженер-технолог (кафедра машиностроительные технологии в МГТУ им.Н.Э.Баумана (МТ-3), специалист по проектированию технических и технологических комплексов). Также мой отец и дедушка были инженерами (авиация). Отец занимается инженерными задачами и сейчас. Когда мы с ним встречаемся, он мне много рассказывает про свою текущую и прошлую работы.
Сам я работал в основном в ИТ-компаниях. Но и был опыт в юридических компаниях (центр интеллектуальной собственности «Сколково», например) по оформлению интеллектуальной собственности (патенты, полезные модели).
Также я участвовал по всевозможных стартапных мероприятиях (примерно с 2012 года) - занимал призовые места на TechCrunch Disrupt, пробовал в ФРИИ, общался с инвесторами, бизнес-ангелами.
Таким образом, я всегда старался быть "на острие" инженерных продуктов, а также сам придумывал новые. Именно такой багаж опыта навёл меня на размышления об инженерной науке.
Разберёмся в терминах
Это важно в контексте статьи.
Я понимаю высокий уровень инженерной науки и практики, когда используются передовые технологии (передовыми они стали, так как они решают инженерные задачи качественнее (продукт получается лучшего качества), быстрее или дешевле предшествующих.
Продукция, которая обладает высоким инженерным уровнем, является качественным продуктом, с высоким уровнем отказоустойчивости, практически полным отсутствием ошибок, затраты на разработку и производство которой являются низкими, по сравнению с аналогичным продуктом, который использует старые, менее рациональные подходы.
Идеальный подход или вызов для инженеров был после Великой Отечественной Войны в период Сталина: снижение себестоимости продукции за счёт увеличения производительности труда.
Надо ещё пояснить, что под «производительностью труда» я имею в виду технический термин, который измеряется в изделиях в единицу времени, а не рублях на одного сотрудника, как любят экономисты считать.
Что не так с инженерным делом сейчас?
Если коротко, то инженерные навыки в большинстве компаний нужны сейчас на самом низком или базовом уровне. Средние и высокие не нужны. Поясню на примерах.
Возьмём сначала простой пример из бытовой жизни и не связанный с ИТ, чтобы удобно было стартовать.
Я недавно покупал себе кухню (кухонный гарнитур, набор шкафов и тумбочек для обустройства кухонной зоны) в дом в одном зелёном строительном торговом центре. В начале всё хорошо. Менеджер заходит в программу и там по размерам кухонного помещения проектирует набор мебели. Программа, конечно, не совершенна (низкого качества с точки зрения инженерного уровня), так как осуществляет проверку только по размерам шкафов, остальные параметры игнорируются. Шкафы приезжают ко мне в дом и вместе с ними 3 сборщика, которые тратят 3 полных рабочих дня на её сборку и монтаж. При этом сборщики привозят с собой большое количество инструментов, типа лобзиков, шуруповёртов, перфораторов, дисковых пил и др.
В итоге, я как инженер, наблюдаю в 21 веке самое настоящее кустарное производство, когда всё, что можно было бы автоматизировать, делается вручную. Из-за этого стоимость кухонных шкафов сейчас неадекватно высокая. Это как сравнивать автомобиль, сделанный автоматизированно (на конвейере) или вручную.
Для инженера средней квалификации задача по шкафам является простой. И в принципе её легко автоматизировать:
в программу добавить проверки не только размеров, но и совместимости между собой (например, плиту нельзя ставить рядом с холодильником и др.)
весь ручной труд свести к минимуму: все разрезы, склейки и монтаж проводить на фабрике и привозить к клиенту готовыми модулями. Сборщики при этом превращаются в монтажников и просто крепят модули к стене и подсоединяют к коммуникациям. С таким монтажом может справиться один человек за 2-3 часа или даже клиент своими силами.
Получается Икеа 2.0, когда даже собирать не надо, а просто прикрутить к стене.
И это простая инженерная задача, которая до сих пор не решена. Именно из-за этого человек в гараже с несколькими станками может успешно конкурировать с гигантами в индустрии.
Теперь перенесёмся в мир ИТ.
Сейчас, благодаря эджайлам, спринтам и другим подходам, в продуктах ценится, чтобы как можно чаще выходили новые функции. Всем пользователям нравится получать то, чего не хватает в ПО. А так как никто в компании не знает, что конкретно будет иметь успех, то проводится много экспериментов (или проверок гипотез), чтобы найти «золото» (то, что очень сильно необходимо пользователям, и чего нет у конкурентов). Это приводит к гонке между конкурентами, а в конечном счёте между разработчиками, чтобы зарелизить как можно быстрее и быть первым, что в конечном итоге может привезти к крупному коммерческому успеху.
Инженер в таких условиях делает то, что является самым простым для достижения скорого релиза. В большинстве задач применяются самые базовые и известные алгоритмы. Если с помощью базовых алгоритмов нужного результата нет, а производительность является критичной, то, обычно, добавляют вычислительные мощности, а не меняют алгоритм - так быстрее. Это подтверждает и Джон Кармак.

Если коротко, то он говорит, что если бы разработчики ПО сконцентрировались на оптимизации работы ПО, то старая техника работала бы так же быстро, как современная. А это вполне себе хорошая инженерная задача. Но цена такой оптимизации - сокращение частоты выпуска новых функций и продуктов.
Текущий подход приводит ещё и к тому, что программисту теперь совсем не обязательно получать/иметь высшее образование. Раньше (лет 15-20 назад) оно было необходимо и без профильного образования практически не было шансов на трудоустройство. Сейчас даже наоборот, человек без высшего образования имеет больше шансов на трудоустройство, так как вместо 4-5 лет в институте, он получает опыт работы.
Где сейчас инженерам интересно?
Инженерам сейчас хорошо и интересно в тех отраслях, где качество продукции является абсолютным приоритетом над остальными характеристиками, например, частотой обновлений/добавлений функций, себестоимости, сроками релиза.
В голову приходят такие индустрии:
военно-промышленный комплекс (тут всё понятно);
атомная энергетика (представляете, если в ПО или в оборудование будет баг?);
космос.
Естественно, эти индустрии требуют высоких уровней знаний и опыта от инженеров и руководящего состава только тогда, когда есть существенная заинтересованность в результатах работы этих отраслей. В России в 90-х годах в этих индустриях инженерам было делать нечего, зарплаты и условия были ужасные, всё держалось только на энтузиазме отдельных сотрудников. Сейчас, на мой взгляд, ситуация меняется, и в указанных индустриях стало вновь интересно работать, да и зарплаты пошли вверх и вполне могут конкурировать с зарплатами в обычных проектах.
Возможно я забыл про некоторые индустрии, напишите в комментарии, если вспомните.
Также выглядит многообещающе текущие тренды в ИТ, такие как искусственный интеллект (который, пока не интеллект) и робототехника. На них сейчас выделяются большие ресурсы и у многих компаний и индустрий есть экономически эффективные кейсы применения в случае появления разработок по этим направлениям.
Самый топ - это комбинация отраслей, которые я указал выше (ВПК, атомы и космос) с трендами (ИИ, робототехника). Тут уже одним ИТ-образованием не обойдёшься. Необходимо и механику знать, и технику, и ИТ, а также и языки (много литературы и статей выходит на разных языках).
Заключение
Если вы сейчас поступаете или уже получили инженерную специальность, то знайте, что в большинстве крупных компаний ваши знания не нужны.
Если вам хочется двигать инженерные подходы и науку дальше, то имеет смысл обратиться к тем индустриям, которые сейчас работают "на острие" инженерной науки, и у которой есть ресурсы и желание идти дальше. При работе с такими компаниями от инженера требуются следующие навыки и знания:
высокие технические знания в текущем уровне техники, разработке и программировании, лучше всего в разных направлениях;
высокие теоретические знания и постоянная их актуализация, желание и возможность их попробовать на практике;
софт-скиллы в следующем виде: умение грамотно и логично рассуждать, аргументировать свою позицию и доводить её до коллег и руководителей;
желание и отсутствие страха брать ответственность за серьёзные проекты, в которых достижение необходимого результата не является очевидным на старте работы;
высокая мотивация на результат, иммунитет к выгораниям, отсутствие страха совершения ошибок.
Остальные отрасли сейчас используют старые инженерные подходы и пока не стремятся серьёзно инвестировать в их развитие. При работе с компаниями из таких отраслей от вас потребуются знания:
синтаксиса языка программирования;
паттернов;
код-стайлов;
держать в уме большие проекты, для быстрой локализации места ошибки или будущей разработки;
софт-скиллы в стиле игры престолов, чтобы много задач не повесили, ответственности было поменьше, а бонусов побольше.
Лучше оценивайте свои желания, находите себе компанию (или создавайте свою) под свои желания и продвигайте инженерную науку дальше, на каком бы месте вы не работали!