Введение
Управление изменениями стало в XX веке самостоятельной научной дисциплиной, имеющей свои безусловные правила, и отдельным видом консалтинговых услуг, направленным на повышение операционной эффективности, с объемом мирового рынка более 50 млрд. долларов США [1]. Обострение конкурентной борьбы, глобализация рынков и географическое распределение производств, построение слаженных экосистем в бизнесе в XXI веке вынуждают придать данной дисциплине отраслевую специализацию. Более того, компании «новой экономики» [2] действуют в своем собственном своде бизнес-законов, где интеллектуальный потенциал сотрудников и «ноу-хау» являются более значимым активом компании, чем традиционные основные средства и другие материальные активы. Высокотехнологичные компании не слишком зависят от географии их расположения, их бизнес-процессы во многом виртуализированы, производимые ими товары и услуги довольно часто не имеют осязаемой формы, а клиенты и заказчики могут находиться по всему миру. Одним из самых ярких примеров отраслей «новой экономики» являются информационные технологии и, в частности, производство программного обеспечения (ПО). В 2019 году 7 из 10 самых дорогих компаний в мире ведут свою основную деятельность в отрасли информационных технологий [3]; они же являются крупнейшими в мире разработчиками прикладного ПО и Интернет-сервисов.
Производство ПО — это многомиллиардная по капитализации и высокотехнологичная отрасль, обладающая набором специфических особенностей как с точки зрения организации производства, так и с точки зрения типичного цикла развития компаний. Понимание таких особенностей при управлении изменениями в производстве ПО существенно влияет на успешность процесса. При этом практическое внедрение изменений в таких командах и компаниях проходит на фоне постоянного роста ожиданий потребителя от характеристик продуктов производства [4] — потребители уверены, что программные продукты должны постоянно становиться дешевле, качественнее, быстрее обновляться и предвосхищать будущие потребности. Такой рост ожиданий потребителей серьезно влияет на конкурентную борьбу на рынке, заставляет руководство IT-компаний увеличивать эффективность производственных процессов, повышать степень их автоматизации и прозрачности.
Описывая развитие IT-отрасли, следует указать, что создание и изменение моделей производственных процессов создания ПО, долгосрочные оценки и прогнозирование результатов проектов, научный анализ лучших отраслевых практик имеют более чем 40-летнюю историю. За это время изменились не только фундаментальные рыночные условия отрасли (объем рынка, конкуренция, сферы применения), но и базовые технологии и организационные модели. Однако в рамках введения в данную монографию будут обозначены в нескольких штрихах лишь ключевые производственные модели последних 40 лет.
К середине 70-х годов прошлого века сообщество разработчиков ведущих компаний США не обладало достаточной внутренней самоорганизацией для создания промышленных стандартов собственной деятельности. Традиционно описываемая «модель водопада» на практике оставалась общепринятым подходом. Вместе с этим некоторые лидеры рынка разработки крупных информационных систем вроде IBM создали практические инструкции по управлению проектами и по использованию собственных средств разработки ПО. Однако такие «первые пробы» не выдерживали испытаний при практическом применении и постоянно корректировались.
В 80-е годы XX века потребители программных продуктов были вынуждены сами стандартизировать если не ключевые процессы разработки, то хотя бы качественные параметры продуктов, процессы их проектирования и поставки потребителям. Здесь следует выделить работы Б. Боэма [5, 6] и стандарты описания жизненного цикла программных систем (ISO/IEC, ANSI/IЕЕЕ, DOD/NIST). Данные стандарты регулировали скорее коммерческие взаимоотношения между потребителями и производителями и ожидания по продукции. Несмотря на все усилия организаций, поддерживавших развитие и внедрение данных стандартов, их широкое распространение было достигнуто лишь в долгосрочных программах проектов в области государственных заказов (например, оборонная и космическая отрасли в США).
К началу 90-х годов прошлого века сразу несколько лидирующих компаний пытались вырваться из тисков привычной «модели водопада» в поисках увеличения эффективности процессов производства ПО. Следует выделить несколько причин данной тенденции:
— лавинообразный рост рынка — значительное количество компаний из разных отраслей экономики автоматизируют все больше собственных бизнес-процессов, используя прикладное ПО;
— рост ожиданий потребителей — текущие и потенциальные потребители требуют высокой скорости развития программных продуктов.
Одним из наиболее ярких явлений данной эпохи стало использование итеративных моделей разработки. Стандартизированные и специфицированные итеративные модели разработки были предложены лидерами индустрии прикладного ПО в виде собственных методологий (Rational Software — RUP; Microsoft — MSF; Borland — ALM), что стало основой итеративных процессных моделей.
Такие компании (Telelogic, Rational Software), вдохновленные усиливающимся влиянием ПО на традиционную экономику и ростом рынка заказной разработки ПО, в середине 90-х начали консолидацию программных продуктов, автоматизирующих процессы планирования, разработки и поддержки ПО.
Таким образом, стандартизация и внедрение производственных изменений в IT-секторе мировой экономики носило весьма динамичный, но не централизованный и непоследовательный характер. Даже серьезные академические попытки создания отраслевых стандартов довольно часто оказывались неудачными и требовали постоянных и значительных усилий в продвижении и популяризации на рынке. Так, с середины 80-х годов прошлого века и до сего дня существует, как минимум, два общепринятых мировых стандарта, построенных на итеративных моделях разработки ПО — это стандарты CMM (позже — CMMI) и стандарты ISO (например, ISO/IEC 12207). В данных стандартах подробно описаны все процессные области и процессы, связанные с разработкой программного обеспечения по итеративным моделям.
В течение 90-х годов рынок услуг в области разработки ПО становится глобальным, а IT-аутсорсинг — интернациональным. К середине первого десятилетия текущего века десятки (если не сотни) компаний, сертифицированных по 4-му и 5-му (самым высоким) уровням зрелости CMM, участвовали в глобальном рынке.
Однако рынок ПО продолжал свой лавинообразный рост в начале XXI века. В мире развивались новые классы устройств, работа которых принципиально требовала иных видов системного и прикладного ПО. Такое разнообразие задач автоматизации (и количество конечных заказчиков и потребителей) вызвало значительные изменения в структуре рынка. Традиционные треугольники соотношения цены, качества и сроков проекта получили противоречивые ожидания со стороны различных групп заказчиков.
Одновременно с этим завершается перестроение глобальной образовательной системы: теперь каждый год университеты в мире выпускают на рынок труда десятки тысяч разработчиков ПО и IT-инженеров. При этом сообщества программистов с течением лет и сменой поколений стали более организованными, приняли вид глобального форума в отрыве от коммерческих проектов и компаний-вендоров. Так, с начала текущего века последовательно набирали моду, а впоследствии — сторонников и реальные воплощения в отрасли модели «легковесных» («гибких») технологий разработки ПО. В настоящий момент «легковесные» модели создания ПО уже изменили как саму отрасль, так и ранее созданные итеративные модели производственных процессов. Основными причинами активного продвижения таких технологий и моделей являются:
— смена поколений разработчиков, а значит, сдвиг стереотипов и профессиональных ориентиров;
— значительное расширение горизонтов автоматизации бизнес-процессов и разнообразие различных устройств, для которых создается ПО;
— возрастание требований бизнеса и ожиданий потребителей по срокам реализации программных продуктов в ущерб конечному качеству в долгосрочной перспективе.
По своей сути «гибкие» технологии разработки относятся к итеративным моделям. Однако конкретные методики применения Agile сделали последние 15 лет современной истории полем для экспериментов и споров — от полного противопоставления RUP-образных моделей (сейчас также известны как UP — Unified Process) и Agile до слияния обеих парадигм разработки ПО в «гибридных» формах организации производства.
Основные попытки применения и стандартизации «гибких» подходов — это осмысление отдельных практик в рамках «улучшения» определенной области более старых итеративных и инкрементных моделей на базе RUP и MSF. Данный процесс далек от завершения, но основные закономерности можно выделить уже сейчас:
— почти каждая Agile-практика создавалась на основе реального проектного опыта, «отягощенного» специальными рисками и ограничениями по ключевым параметрам проекта;
— почти каждая практика описана в книге ее автора или манифесте последователей;
— крупные софтверные компании и институты не часто выступают с попытками их стандартизации, предпочитая сразу работать над стандартизацией и автоматизацией неких «гибридных» производственных моделей.
В реальных компаниях, использующих «гибкие» технологии, часто происходит смешение различных практик в каких-то пропорциях. Очевидно, что такие методики, как экстремальное программирование или бережливая разработка, в чистом виде применимы в весьма небольшом количестве проектов на рынке.
Большое количество исследований [7, 8], включая авторские [9, 10], показывают, что на пространстве Восточной Европы и СНГ «гибкие» и «гибридные» модели оказались доминирующими уже к 2015 году. На фоне продолжающегося стремительного роста рынка разработки ПО данная тенденция означает строгую необходимость учета их особенностей при изучении управления производственными изменениями в компаниях, разрабатывающих ПО.
Данная монография посвящена глубокому анализу управления изменениями в производственных процессах в высокотехнологичных компаниях, выпускающих программное обеспечение.
В первой главе монографии приведен тематический анализ литературы за последние 20 лет и описана эволюция производственных парадигм и процессных моделей создания ПО.
Во второй главе монографии представлены основные проблемы внедрения производственных изменений в компаниях «новой» экономики, приведены типичные причины и классификация изменений, описан объект изменений — модель производственных процессов, приведен классический процесс внедрения изменений и объяснены его специфические особенности. Также во второй главе описаны результаты авторских исследований, проведенных в 2013–2017 годах и посвященных изучению проблем внедрения изменений в IT-компаниях, организационному сопротивлению и востребованности современных технологий и подходов к разработке ПО в России. Результаты данных исследований приведены для проверки рабочих гипотез:
— о зависимостях развития производственных процессов разработки ПО от отраслевых рыночных тенденций;
— о сложности и ресурсоемкости самого процесса внедрения производственных изменений в IT-компании.
И наконец, в третьей главе монографии приведен авторский метод итерационного внедрения фундаментальных изменений в производственные процессы в компании, производящей ПО. Авторский метод построен на 5 положениях, которые позволяют учесть как типичные проблемы при внедрении изменений, так и сделать этот процесс более прозрачным, предсказуемым и успешным с экономической точки зрения.
Приведенный авторский метод позволяет заинтересованным читателям — руководителям и консультантам софтверных компаний запланировать и провести масштабные производственные изменения с минимальными ресурсными издержками, не потеряв в коллективе компании ее лучших сотрудников.