Разработка vs Кодинг: в чем разница?

Скот Риздал, разработчик с 30-летним стажем, опубликовал статью, в которой рассуждает, в чем разница между разработчиком и кодером и о важности высшего образования для инженера. Редакция techrocks.ru публикует адаптированный перевод материала.


Сейчас все говорят о недостатке ресурсов для разработки и что с этим делать. Часто разговор фокусируется на необходимости иметь ”кодеров”, как будто разработка ПО это производственный процесс и сводится просто к написанию кода. Да, технически вы не можете получить приложение без кодирования, но так ли это всё просто? Вот список требований — просто идите и закодируйте это?

Давайте копнем немного глубже…

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

Есть причина, почему разработка называется разработкой

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

Если вы не живете в лесу, вы слышали, что сейчас существует недостаток разработчиков ПО, или, как их иногда называют, ”кодеров”. Существует много способов бороться с этим, но наиболее очевидный способ – это учебные курсы. Это такие школы, которые предлагают пройти интенсивную краткосрочную (около 12 недель) программу по обучению студентов написанию и кодированию приложений. Сравните это с четырехлетним университетским обучением по информатике, которое включает интенсивные тренинги по проектированию ПО, кодингу и высшей математике, не говоря уже о факультативах и публичных выступлениях. Даже в этом случае, выпускникам требуются месяцы тренингов на работе и менторинга до того, как они действительно станут инженерами.

Быстро, Хорошо или Дешево: выбери два

Почему же всё это образование и обучение имеет значение? Ощутимые и быстрые результаты впечатляют, но менее очевидный и время-затратный результат, который создает профессиональная команда – это приложение, которое не потребуется в итоге переписывать и которое не станет нестабильным при добавлении или изменении функциональности. Например, одна из наоболее часто встречающихся ошибок среди неопытных кодеров – это незнание, куда поместить код для новой функции. Тенденция такова, что они кладут всё в одно место, или, что еще хуже, копируют во множество мест, а также предоставляют неполное решение, которое не покрывает все Use Cases. Это происходит потому что шаблоны проектирования не всегда очевидны для неопытного разработчика, и просто знаний о кодинге и базовых логических навыков недостаточно, для того чтобы разобраться в сложном приложении. А подход инженера-программиста – это анализировать требования, разделяя их на бизнес-логику, пользовательский интерфейс и данные, определять лучший способ разработки функциональности. К сожалению, разница между этими подходами не очевидна до тех пор, пока вы не получите на руки нестабильное, требующее поддержки хранилище кода.

Как и в любых сложных ситуациях, если ”вы не знаете, чего вы не знаете”, вы можете получить кучу проблем. Дипломированные инженеры-программисты знают, как найти пробелы в своем мышлении, и будут искать способ заполнить их до разработки решения. Интересная статистика от 2017 Stack Overflow Developer Survey показывает, что дипломированные разработчики придают большое значение образованию.

„…дипломированные специалисты в области компьютерных технологий и компьютерной инженерии сказали (49.4%), что образование было важно или очень важно.„ Stack Overflow

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх