Именно программное обеспечение заставляет сегодня мир вращаться все быстрее — ПО применяется повсюду, от автомобилей, самолетов и промышленных систем автоматизации до смартфонов и любой другой потребительской техники. Современное общество непосредственно зависит от надежности программных систем, развитие которых, в свою очередь, зависит от компаний-разработчиков. Какие прогнозы сегодня можно сделать по поводу будущего программного обеспечения и какое влияние тенденции в развитии ПО оказывают на компании из различных отраслей? Ответы на эти вопросы были получены в результате исследования, в котором участвовали сотрудники таких компаний, как ABB, Bosch, GE, Google, Lufthansa, Philips и Siemens [1].
Индустрия ПО
У программного бизнеса есть две грани, которые выделяют его на фоне других отраслей экономики [2]: новация и высокий уровень сложности. Данная индустрия привлекает больше инвестиций, поэтому объем ее рынка растет быстрее, непрерывно стимулируя инновации. Для отрасли ПО важен творческий подход, тогда как производство и логистика имеют второстепенное значение и требуют ограниченных затрат, это упрощает выход новых производителей на рынок и организацию глобальных продаж. ПО отличается гибкостью и простотой модификации, этим обусловливается высокая частота выпуска новых продуктов, которые не всегда имеют реальную ценность. Однако в связи со сложностью технологий качество продуктов, полагающихся на ПО, резко падает при недостатке соответствующих компетенций.
В наши дни ПО меняет практически все отрасли, становясь для них мощным двигателем развития. Например, если раньше проводилось различие между компонентами, системами и сервисами, то сегодня эти границы размываются и определяются экономической моделью, которая диктует компоновку и распределение элементов, а также выбор между программной и аппаратной реализациями функций. В 1970-х телевизор не имел ПО, а сегодня конкурентные преимущества телевизора обусловлены именно его программными особенностями. Если говорить об аэрокосмической отрасли, то в 1960-х только 8% функций истребителей F-4 контролировались программно, а к 2000-му ПО обеспечивало уже 80% возможностей F-22. Все больше военных летательных аппаратов — беспилотные, а значит, ПО играет здесь первостепенную роль. Той же закономерности следует и автомобильная индустрия — современные машины имеют свыше 100 встроенных компьютеров, а программного обеспечения на них больше, чем на самолетах. Новые автомобили продаются в основном благодаря программно реализованным усовершенствованиям, и неудивительно, что Североамериканский международный автосалон недавно проходил под девизом «Автомобиль — это микропроцессор с колесами и двигателем» (рис. 1).
Рис. 1. Инновации в мире ПО способствуют прогрессу в автомобильной отрасли, обеспечивая развитие различных сегментов, от оптимизации энергозатрат до систем автопилота |
Опросы показывают, что ближайшее будущее программного обеспечения определяется развитием по пяти главным направлениям:
- взаимодействие — основа потребительских интернет-сервисов, социальных сетей, конфигураторов продуктов и услуг, цифровых денег, систем автоматизации сотрудничества и краудсорсинга;
- понимание — механизмы понимания важны для семантического поиска, обработки Больших Данных, систем «умных» данных, аналитики и экономики данных, средств оперативной проверки корректности информации и систем контроля качества данных;
- связь — важна для повсеместных мобильных вычислений, мобильных сервисов, киберфизических систем, Индустрии 4.0, межмашинных коммуникаций, сенсорных сетей и высокоинтегрированных сенсорных блоков;
- облака — это основа облачных приложений и сервисов, база для новых моделей лицензирования ПО и т. п.;
- конвергенция — слияние дисциплин, определяющих характеристики мобильных предприятий, биоинформатики, Интернета вещей, повсеместных сенсорных и автономных систем.
Перечисленные направления требуют новых программных решений на основе новых вычислительных парадигм и инфраструктур, позволяющих осуществлять бизнес-процессы в условиях все возрастающей сложности и увеличения масштабов систем. Понадобятся ИТ-архитектуры, обеспечивающие постоянство связи, надежные инфраструктуры для критичных к безопасности киберфизических систем, а также механизмы анализа предпочтений и поведения, позволяющие улучшать обслуживание заказчиков. Подобные основанные на ПО решения могут создавать нетрадиционные точки выхода на рынок и порождать новые механизмы, позволяющие предоставлять заказчикам сервисы, зависящие от времени и местонахождения.
Каковы основные прогнозы для программного бизнеса на ближайшее время? В компаниях продолжат инвестировать в рост за счет создания новых продуктов и решений, так как именно этим определяются рыночные позиции разработчиков. В то же время, осознавая неустойчивость рынка, в компаниях по всему миру урезают команды разработки, переходя на бережливые (lean, экономичные) методы с целью повышения КПД. На рис. 2 отражены актуальные отраслевые тенденции. С учетом высокого уровня сложности, обусловленного непрерывным совершенствованием, необходимы более развитые инструменты, обеспечивающие экономичность процессов и надежность продуктов. Еще совсем недавно программные компании ориентировались на снижение затрат и повышение результативности, а теперь, не испытывая недостатка в заказах и с оптимизмом глядя в будущее, они пытаются бороться со сложностью, порожденной ими самими.
Успех в программном бизнесе — не данность. Продукты и решения должны отвечать все более высоким требованиям к качеству, оставаясь при этом недорогими и легко адаптируемыми к возможностям современных платформ. На рынки выходят все новые игроки с новыми решениями, не отягощенные наследием устаревших продуктов и традиционных бизнес-моделей. Технологический ландшафт становится все более сложным, и можно назвать четыре основных препятствия, мешающих успеху: разобщенная организация с нечетким разделением ответственности и разрозненностью работы, страдающая от постоянных изменений ориентиров и графика; отсутствие или нечеткость стратегии с неопределенными взаимозависимостями и путаными требованиями; отсутствие стандартных для всей организации бизнес-процессов, медлительные, громоздкие процессы принятия решений, основанные на множестве индивидуальных соглашений; недостаточно проработанные требования, которые могут строиться лишь на услышанном от заказчиков и не иметь четкого финансово-экономического обоснования.
Инновации, глобализация и сложность — двигатели программного бизнеса во всем мире, но они же создают и немало рисков. Различным рискам подвержены все процессы, от разработки до выпуска на рынок. ПО становится более сложным, все шире полагается на сетевые соединения, что подразумевает организацию взаимодействия многих компонентов от различных поставщиков и оборудования от разных производителей. К тому же команды разработчиков обычно многофункциональны, нередко участники, не прошедшие необходимого обучения, отвечают сразу за многие операции, включая не только разработку, но и стратегическое планирование. В этом отличие от других отраслей, в которых, например, производство и логистика четко отделены от разработки. Даже внутри команд разработки люди, проектирующие продукты или компоненты, нередко занимаются и тестированием, поэтому неудивительно, что качество часто оказывается ниже ожидаемого, а спецификации реализуются с недоработками.
Какие методы управления сложностью применяют компании-разработчики? Как они ускоряют вывод новых продуктов на рынок и улучшают функции связи? Какие подходы хорошо зарекомендовали себя на практике?
Сосредоточьтесь на реальных источниках дохода. Работая над повышением КПД и снижением стоимости продуктов, компании иногда доходят до крайностей, однако это не всегда приносит ожидаемый доход. Если заказчики требуют множества изменений, прибыли могут оказаться гораздо ниже планируемых. Многие руководители стремятся концентрироваться на том, что знают лучше всего, а в программной индустрии это обычно техническая компетенция, а не основы бизнеса. На каждом этапе необходимо устанавливать цели и контролировать продвижение к ним, сверяясь с реальными показателями. За изменениями экономических условий нужно тщательно следить, иначе они станут управлять вами. Для топ-менеджеров можно рекомендовать подход, основанный на сбалансированных показателях (balanced scorecard), тогда как на операционном уровне можно ориентироваться на выгоду — например, придерживаться метода освоенного объема (earned-value management).
Продавайте ценность, а не функции. Работая с клиентами над продуктовой стратегией и техническими требованиями, консультанты прежде всего задают вопросы о целевом рынке, пользовательской аудитории и сценариях применения. При этом ответы в большинстве случаев сводятся к тому, что указано в спецификациях. Формально это, может быть, и верно, но приводит к неконтролируемому росту уровня сложности и затрат. Сложность хорошо продается, но создает большой объем дополнительных расходов на обслуживание, развитие, управление изменениями и исправление непредвиденных программных ошибок. Консультанты нередко сталкиваются с заказчиками, попросту не знающими, как эффективно управлять сложностью — они мирятся с чрезмерными затратами, вместо того чтобы искать рычаги, которыми можно было бы напрямую пользоваться. Примерно половина всех требований не приносит прибыли, а лишь увеличивает затраты [2]. Индивидуальные варианты и специальные функции для конкретных заказчиков еще больше увеличивают сложность. Эффективно контролировать сложность можно с помощью метода RACE (Reduce Accidents, Control Essence, «снижение числа инцидентов, контроль над основами»). Снижение количества инцидентов означает сокращение накладных расходов, например, на «позолоту» и переработку, которые обусловлены запоздалым устранением дефектов или слишком большим количеством изменений в требованиях. Контроль над основами означает фокусировку на том, за что заказчик действительно платит. Каждое требование нуждается в финансово-экономическом обосновании с сохранением возможности управления изменениями и приоритетами. Перед выполнением очередного требования попросите тестировщика подготовить тестовое задание, а маркетолога — оценить, сможет ли он продать указанную функцию. Определитесь с «достаточно хорошими» реализациями и позаботьтесь о том, чтобы любые последующие идеи получали достойное рассмотрение. Ориентируясь на ценность, заботьтесь о том, чтобы скорые и экономичные методы не становились самоцелью.
Определите круг ключевых участников. Сформируйте костяк команды из лиц, причастных к проекту (менеджеров по продукту, его маркетингу, проектированию и эксплуатации), сделав их полностью ответственными за успех проекта. Будучи ключевыми участниками разработки продукта или решения, они также смогут передавать и точки зрения внешних заинтересованных лиц. Фактор успеха — предоставить этому костяку полный мандат на владение проектом. Применяйте адекватные методы управления рисками, чтобы выполнять обещания и чтобы на ваши наработки можно было положиться. Проекту могут понадобиться дополнительные ресурсы, поставщики могут задерживать поставки, технологии могут не оправдывать ожиданий. Не принимайте решение о выборе места разработки исходя только из стоимости труда, отдайте предпочтение систематическому совершенствованию бизнес-процессов, распределенных между различными отделениями. Преимущества будут ощутимыми при оптимизации взаимодействия между офисами, беспроблемном управлении вариантами и прозрачности потока операций. Откажитесь от подхода, основанного только на подсчете трудозатрат, в пользу комплексной стратегии, учитывающей время работы сотрудников в офисе, состояние экосистемы заказчика и потери при взаимодействии.
Станьте хозяином жизненного цикла продукта. Для программных продуктов характерен такой же круг обязательств, как и для любых других, но поставщики ПО нередко упускают из виду необходимость поддержки процессов их жизненного цикла. Между тем все проекты и продуктовые релизы должны следовать стандартизованному жизненному циклу. В большинстве компаний такой цикл формализован, но практически не используется как базовый инструмент принятия и реализации решений. Изменения в требованиях нередко согласуются на собраниях по продажам, но никто не проверяет их реализуемость, в результате технические решения принимаются без экономического обоснования и не учитывают влияния на дочерние процессы. Автоматизированное управление жизненным циклом продуктов (PLM) и приложений (ALM) — ключевые механизмы эффективной интеграции инженерных процессов, инструментов и людей. Но «процесс» не должен быть обузой и выражаться только в документировании — его назначение состоит в обеспечении эффективности повторяющихся операций.
Непрерывное совершенствование. Во многих компаниях стремятся улучшать результативность, но удовлетворены результатами не более трети из них. Распространенная причина неудач состоит в несовершенстве управления изменениями. Затраты и сроки выполнения работ можно уменьшить, если прибегнуть к непрерывной оптимизации процессов разработки. Бережливая разработка и скорые методы полезны для оптимизации взаимодействия и сокращения объема переработки и накладных расходов. Метод освоенного объема, систематизация потока ценности (value stream mapping) и Scrum — проверенные подходы, которые легко адаптировать для конкретной организации. Оптимизируйте потоки операций и соответствующие инструменты шаг за шагом в рамках комплексной стратегии, руководствуясь инкрементальными и долгосрочными целями. Постоянно ставьте конкретные новые цели усовершенствований. Обучайте сотрудников бережливой (lean) разработке. Пусть каждая команда подготовит план действий по избавлению от лишних затрат, переработок и конфликтов взаимодействия — все это с опорой на общекорпоративные ориентиры рентабельности. Приучайте подчиненных расширять технические и, что даже важнее, личностные навыки. Оценивайте производительность, например, по продажам в расчете на разработчика, по срокам поставки, эффективности распознавания дефектов, затратообразующим факторам, компетенциям и новациям. Пользуйтесь профессиональными средствами управления изменениями.
***
Ситуация в программном бизнесе и впредь будет изменчивой, уровень сложности продолжит расти, а технологии будут стремительно развиваться. Неизбежная нехватка компетенции приведет к дальнейшему усилению борьбы за квалифицированных специалистов. Компании продолжат инвестировать в рост через инновации и будут переводить команды разработки на экономичные и инновационные методы. В следующие 30 лет развитие виртуальных сред и дополненной реальности приведет к тому, что ПО будет непосредственно формировать окружающую действительность. Многие люди уже считают игры и социальные сети с множеством так называемых друзей более реальными и привлекательными, чем классическую действительность. Если можно будет без поездок встречаться с людьми, находящимися где угодно, загрязнения и количество ДТП значительно уменьшатся, а если устройства размером с клетки крови, находящиеся в организме, будут бороться с заболеваниями и улучшать интеллектуальные способности, жизнь полностью изменится. Программное обеспечение расширит возможности мозга так же, как сегодня оно расширяет возможности небиологических систем. Стержнем этих изменений будет программное обеспечение, поэтому уже сегодня стоит расширять компетенцию, которая понадобится, чтобы провести эти изменения верным образом — то есть с опорой на ценности и личностные навыки, а не только на технологии. Фактически происходит трансформация человечества, и хочется надеяться, что к лучшему. Но один вопрос остается без ответа: надо ли ПО встраивать в людей или же люди будут внедряться в программную среду?
Литература
- Industry Trends 2015. Vector Consulting Services, 2015. URL: https://www.vector.com/trends (дата обращения: 18.12.2015).
- C. Ebert, S. Brinkkemper. Software Product Management — an Industry Evaluation // J. Systems and Software. — 2014. — Vol. 95. — P. 10–18.
Кристофер Эберт (christof.ebert@vector.com) — управляющий директор Vector Consulting Services.