Инжиниринг — это применение процесса для решения проблем; это не следует путать с наборами инструментов.

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

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

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

«Кодирование» — это один из инструментов инженеров-программистов, как и применение готовых библиотек. Это инструмент для экономии времени больше всего на свете. Это правда, что из-за повсеместного распространения готовых библиотек многие становятся самодовольными, но это говорит о человеческой природе. Зачем тратить время на то, что уже сделано?

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