Сегодня в разработке ПО акцент делается на гибкости, открытости вариантов, упрощении операций, повышении скорости — с целью быстрого удовлетворения запросов бизнеса, отмечают опрошенные порталом Enterprisers Project эксперты.
ПО по сути никогда не меняется. Это, как недавно выразился технический директор Capitol Canary Михаил Оплетаев, «набор инструкций, который говорит компьютерам, что делать».
С другой стороны, разработка ПО — то, как люди пишут и доставляют эти инструкции — регулярно меняется. Определенные принципы остаются более или менее неизменными с течением времени, но многие аспекты того, как создается ПО — языки и библиотеки, методологии, инструменты, пакетирование, тестирование и так далее — постоянно развиваются.
Вместе с этим меняется и понимание того, что значит создавать и эксплуатировать ПО, а также что значит создавать и руководить командой разработчиков. Давайте рассмотрим пять современных реалий разработки ПО — как их понимают успешные ИТ-лидеры.
1. Опыт разработчика — это все
Это выражение является хрестоматийной гиперболой, но не следует интерпретировать его буквально в контексте ИТ.
«CIO должны осознать реальность того, что у них есть возможность формировать опыт разработчиков в своих организациях — и что это может быть самым важным фактором в привлечении и удержании талантов», — говорит Рави Лачман, технический директор Shipa.io.
Неудовлетворенные разработчики обычно не создают отличное ПО. Но это чрезмерное упрощение. Реальные проблемы, которые возникают при плохом (или просто посредственном) опыте разработчиков, гораздо серьезнее.
Война за таланты реальна, и трудности с заполнением вакансий в сфере ПО не означают, что вы плохой начальник. Но если вы испытываете трудности с наймом и удержанием талантливых сотрудников, игнорируя опыт разработчика, то это уже другая история.
«Инженеры-программисты ищут новые задачи, чтобы развивать свои навыки и расширять сферу деятельности и технические знания, чтобы оставаться актуальными, строить карьеру и получать большее финансовое вознаграждение, — говорит Лахман. — Если организация какого-то CIO не может предоставить такие возможности, инженеры-программисты могут легко найти другую».
Он приводит несколько советов, как расставить приоритеты и оптимизировать работу с разработчиками:
- Разрешить ротацию: «CIO должны разрешить инженерам регулярно ротироваться между различными задачами или направлениями работы в рамках проектов цифровой трансформации».
- Уменьшить трение: «CIO должны стремиться к устранению барьеров на пути от сырых идей разработчиков до внедрения в производстве их готовых продуктов».
- Дать разработчикам возможность видеть результаты и строить на их основе: «Крайне важно, чтобы разработчики имели возможность быстро узнавать и итеративно оценивать свои достижения».
- Отслеживать (и решать) проблему выгорания: «Как и любой человек, инженер выдерживает конечную когнитивную нагрузку, и мало кому нравится постоянно переключаться с одного контекста на другой».
Опыт разработчиков выходит за рамки привлечения и удержания персонала, это краеугольный камень хорошего ПО. Теперь это также показатель успеха (или неудачи) цифровой трансформации — приоритет опыта сотрудников и снижение выгорания являются одними из ключевых рекомендаций недавнего отчета Harvard Business Analytic Services «Maintaining momentum on digital transformation».
По словам Лахмана, профессиональное долголетие разработчиков обычно является положительным показателем в этом отношении: «Это является существенным преимуществом на пути цифровой трансформации, учитывая ценные знания, которые накапливаются со временем. Удержание инженеров означает их вовлеченность и мотивацию. При наличии положительного опыта разработчика его успех развивается на основе достигнутого успеха, а мотивация — на основе мотивации в процессе цифровой трансформации».
2. Автоматизация повсюду
Если опыт разработчика является основой успеха человека в команде, то автоматизация — это ключ к техническому успеху. Скорость и частота разработки ПО сегодня может вызвать головокружение даже у самого закаленного инженера; автоматизация — это то, что решает эту проблему, не ломая вашу команду или ваши системы.
Автоматизация ИТ не нова, но сейчас она мощнее, чем когда-либо — и она практически везде в программном конвейере, от тестирования и безопасности до развертывания и масштабирования. Конвейеры CI/CD олицетворяют эту реальность, как и значительное распространение Kubernetes на предприятиях.
Для ИТ-лидеров автоматизация сопряжена с определенными соображениями и опасениями, включая сопутствующий фактор страха, который этот термин вызывает у людей в плане риска потерять работу. Руководителям следует относиться к этому с пониманием, поскольку они должны видеть в автоматизации мощный инструмент, который позволяет командам разработчиков делать больше при тех же (или меньших) затратах — вместо того, чтобы просто нагружать их непосильным давлением и заданиями.
3. Децентрализация все больше становится нормой
Разработка ПО не осталась в стороне от тенденции децентрализации в ИТ. Контейнеризация, микросервисная архитектура, открытый исходный код, гибридное облако и мультиоблако — все они предполагают новые методы и модели создания и эксплуатации ПО во все более распределенной, гетерогенной среде. А также открывают новые возможности — и создают новые сложности — с точки зрения затрат, производительности, управления, безопасности и многого другого.
По словам Каушика Де, вице-президента Capgemini Americas, такие модели, как контейнеризация и гибридное облако, отражают незаменимую роль ИТ в удовлетворении растущего спроса — среди клиентов, советов директоров, партнеров, инвесторов и других заинтересованных сторон — на цифровые преобразования и инновации.
Углубляющаяся связь между гибридным облаком и периферийными вычислениями — и разработка edge-приложений — является одним из новых примеров этой широкой тенденции.
Но децентрализация не означает бесконтрольность. Скорее, ИТ-лидеры должны искать платформы и процессы, обеспечивающие контроль и гибкость, поскольку распределенные разработка ПО и инфраструктура становятся нормой.
4. Безопасность критически важна
Казалось бы, это не должно вызывать сомнений, но ИТ-специалисты знают, что в реальности безопасность долгое время рассматривалась — намеренно ли, по незнанию или по каким-то другим причинам — как второстепенная задача в жизненном цикле разработки ПО: мол, об этом должен беспокоиться кто-то другой.
Ситуация меняется, и, скорее всего, навсегда. Во многих компаниях вопросы обеспечения надежной безопасности теперь стоят на уровне совета директоров. Угроз слишком много — и слишком велики затраты на их предотвращение и смягчение, чтобы их игнорировать. В 2021 г. генеральный директор Bank of America Брайан Мойнихан рассказал, что компания тратит на кибербезопасность более миллиарда долларов в год.
Хотя это редкий пример столь большого бюджета на безопасность, он свидетельствует о расширяющейся тенденции: безопасность заняла первое место по общему приоритету финансирования в отчете Red Hat «2021 Global Tech Outlook», причем 45% опрошенных ИТ-руководителей назвали ее своим приоритетом № 1.
По словам технологического евангелиста Red Hat Гордона Хаффа, по крайней мере часть этих денег тратится просто для того, чтобы удержаться на плаву в условиях невероятно сложного ландшафта угроз. Но это также отражает повышенное внимание к внедрению (и автоматизации, где это возможно) безопасности на всех этапах разработки ПО, особенно учитывая тенденцию децентрализации и значительную зависимость от внешних реестров контейнеров, библиотек и других программных компонентов.
«Повышение осведомленности о таких проблемах, как безопасность цепочки поставок ПО — понимание происхождения и уязвимостей, связанных с такими зависимостями, как библиотеки, — представляет собой значительный шаг к их смягчению», — считает Хафф.
5. Программное обеспечение — это неотъемлемая часть бизнеса
И последний, но, безусловно, не менее важный аспект: эра разработки ПО, сосредоточенной в малопонятном техническом подразделении в бэк-офисе ИТ-службы, должна быть официально объявлена мертвой.
Возможно, эта реальность еще не дошла до каждой организации, но это не делает ее менее правдивой. Разработка ПО неразрывно связана с показателями бизнеса. Без разработки ПО невозможна цифровая трансформация. Выберите любую из самых громких тем в мире бизнеса («цифровая трансформация» в их числе), и ПО почти неизбежно играет в ней свою роль.
Есть и другое измерение этой реальности — это не волшебство. ИТ- и бизнес-лидеры должны целенаправленно и продуманно подходить к тому, как, почему, когда и где они разрабатывают ПО, чтобы оно оказало трансцендентное воздействие, которое обещают такие звучные слова, как инновации.
«Современная разработка ПО должна делать что-то выдающееся для вашего бизнеса — улучшать качество обслуживания клиентов и увеличивать доходы, — или же вам следует спросить себя, зачем вы это делаете», — говорит Хафф.