Разработка программного обеспечения стала проще, чем когда-либо прежде, настолько, что новые инструменты и тенденции в области создания программного обеспечения уменьшают ценность программистов как специалистов по сравнению с другими ИТ-профессионалами. Это смелое заявление требует аргументации, которая приводится в данной статье наряду с рекомендациями по поводу того, как разработчику следует реагировать на сложившуюся ситуацию.
Уменьшение ценности разработчика программного обеспечения как специалиста
В определенном смысле разработка программного обеспечения становится все проще по мере развития вычислительной техники. Когда в середине XX века появились современные компьютеры, единственными инструментами, с которыми разработчикам приходилось иметь дело, были язык ассемблера и машинный код. Тогда написание программ было делом трудоемким и требовало высочайшего уровня квалификации.
Первые высокоуровневые языки программирования, такие как Fortran, вошли в употребление в середине 1950-х годов. Они значительно упростили программирование по сравнению с использованием языка ассемблера, но большинство разработчиков согласится, что Fortran и подобные ему языки тоже не так уж просты. Использование первых высокоуровневых языков программирования также требовало специальных знаний.
С течением времени тенденция упрощения языков и методов программирования набирала обороты. В 1960-х годах появились новые высокоуровневые языки программирования, такие как Си, характеризующиеся более простым синтаксисом и межплатформенной переносимостью. К 1970-м годам архитектуру приложений заметно упростило объектно-ориентированное программирование. В 80-90-х годах стандартизация аппаратных платформ и программных протоколов сократила обязательный объем специализированных знаний разработчика, необходимых для написания кода для определенного типа компьютера или операционной системы.
Новые средства разработки
На сегодня новое поколение инструментов и методик программирования еще более упростило разработку программного обеспечения. В качестве примера можно привести платформы малокодовой разработки, позволяющие создавать приложения с минимальными трудозатратами на написание программного кода. Более того, средства программирования без кода сделали возможным написание приложений, не требующее навыков разработки кода вообще.
Между этими двумя типами инструментов существуют различия. Платформы бескодового программирования позволяют тем, кто не обладает специальными техническими навыками, создавать простые приложения, тогда как инструменты малокодового программирования обычно призваны сделать более эффективной работу компетентного разработчика. Тем не менее в обоих случаях конечным результатом является ускорение и упрощение разработки программного обеспечения и, как следствие, снижение значимости навыков опытного разработчика для этого процесса.
Разработка программного обеспечения с открытым исходным кодом также изменила сферу создания приложений. В рамках этой концепции можно активно заимствовать сторонние разработки при написании собственных приложений. Можно даже инициировать проект с открытым кодом, предоставив написание большей его части сторонним программистам. Таким образом, принятый в качестве стратегии разработки программного обеспечения, открытый код экономит время разработчиков и снижает значимость собственных программистов компании для удовлетворения ее потребностей в программировании.
Карьерные перспективы разработчика
Из всего изложенного выше следует, что быть разработчиком стало проще, чем когда-либо прежде, поэтому сегодня такому специалисту особенно трудно доказать свою ценность как профессионала. Впрочем, я не думаю, что мы стоим на пороге реальности, в которой большинство компаний вообще перестанут приглашать в свои проекты разработчиков, предоставив помощникам по административным вопросам создавать приложения с использованием бескодовых платформ. Не стоит преувеличивать проблему. Разработчики по-прежнему выполняют множество важных для компании функций в части изменения и настройки программного обеспечения, и в ближайшее время необходимость в них не исчезнет. Тем не менее содержать армию опытных разработчиков в штате организации для построения ее программного обеспечения сегодня не так важно, как раньше.
Что же делать разработчику, который хочет защитить свои позиции? Не думаю, что решение проблемы может обеспечить «борьба против системы», то есть противостояние средствам малокодовой разработки, открытому программному обеспечению и прочим инновациям. Напротив, сегодня разработчик должен действовать в рамках стратегий, позволяющих ему оставаться востребованным специалистом для потенциальных работодателей.
Эти стратегии могут включать в себя:
- Переход на модель разработки и поддержки DevOps, выводящую роль разработчика за рамки простого написания кода с включением функций развертывания и обслуживания программного обеспечения. Разработчики старой школы, возможно, считают, что развертыванием и обслуживанием приложений должен заниматься кто-то другой, поэтому соответствующие функции традиционно возлагались на любые подразделения, кроме отдела разработки, однако реальность такова, что эффективное развертывание и управление чрезвычайно сложными современными приложениями и средами требует аналитической оценки на уровне кода.
- Фокус на оптимизации приложений, а не только их реализации. Написать приложение сегодня проще, чем когда-либо, из чего отнюдь не следует, что легко создать приложение, которое будет эффективным и высокопроизводительным. В частности, средства малокодового программирования ускоряют процесс разработки, но редко приводят к созданию оптимизированного кода. Сосредоточившись на совершенствовании кодовой базы с помощью таких методов, как перепроектирование или оптимизация функций, разработчик может повысить свою значимость даже в тех организациях, где малое число разработчиков выпускает базовый код массовым тиражом.
- Знания в области безопасности. Как и оптимизация приложений, безопасность — еще один аспект, который легко упустить из виду, когда приложения создаются очень быстро. Хотя разработчики не всегда ставили безопасность программного обеспечения во главу угла, фокус на безопасности — еще один хороший способ оставаться востребованным, особенно учитывая сегодняшнюю актуальность угроз информационной безопасности.
Мир разработки программного обеспечения меняется, что требует соответствующего изменения роли разработчика. Только так разработчик может оставаться востребованным специалистом в условиях, когда новые инструменты и стратегии делают разработку программного обеспечения тривиальной задачей.