Predictive Software Engineering как шанс для аутсорса повысить качество услуг
[Сергей Кизян — СТО Intetics. 15 лет опыта в разработке ПО, магистр компьютерных наук в Винницком национальном техническом университете. Прошел путь от младшего инженера-программиста до СТО]
Многие компании отдают разработку программного обеспечения на аутсорс. От своих партнеров они ожидают высоких результатов и надежной работы, но в то же время постоянно находятся в неуверенности относительно сроков, качества и стоимости разработки софта. Чтобы снять это напряжение, аутсорсинговые компании должны предложить новый подход к оказанию услуг. В компании Intetics мы создали и используем фреймворк под названием Predictive Software Engineering (PSE), который устраняет «узкие места» в работе аутсорсеров.
Идея PSE
У нас были десятки проектов, которыми управляли разные люди, в разных странах и при разных условиях. Некоторые проекты были весьма успешны, некоторые имели много проблем. Каждый раз, когда мы включались в решение тех или иных проблем с проектами, мы видели определенные тренды. В основном, проблемы были в следующих направлениях:
- коммуникация с заказчиком на уровне компании. Весьма часто заказчик оставался один на один с командой и не чувствовал, что он работает с большой компанией, которой мы являемся. Пример: у нас были заказчики, которые приходили и прямым текстом говорили: «Мы не чувствуем, что вы заботитесь о нас как компания. Мы стакиваемся с проблемами и остаемся с ними один на один». Это приводило к весьма неприятным последствиям, которые было сложно устранить и вернуть доверие заказчика.
- правильный репортинг от команды. У нас было много случаев, когда заказчик не совсем понимал или вообще не понимал, чем занимается команда. Он только надеялся, что все будет хорошо. Хороший результат в таких случаях тоже был не всегда. Обычно команда, которая плохо репортит, плохо и работает. Пример: у нас были менеджеры, которые оказались некомпетентны в своих проектах, и они сами были уверены, что дела на проекте идут отлично, даже в тех случаях, когда проект был на грани провала или был уже провален. Они на словах убеждали наш менеджмент и заказчика, что все отлично. Если бы они вели правильный репортинг с метриками, мы бы поймали проблему еще в самом начале, когда она только возникла.
- отсутствие стандартных подходов. Мы увидели, что, невзирая на то что мы задекларировали определенные правила разработки и управления проектами в компании, не все менеджеры следовали им и не все понимали их правильно. Пример: знаком всем без исключения людям в нашей индустрии — внедрение Agile-процессов. Добиться, чтобы каждый человек понимал и делал так, как все сотрудники компании — очень сложно. Так и с другими процессами: их внедрение и стандартизация очень сложны, но результат того стоит, как и в случае с Agile-подходами.
На самом деле, однотипных проблем было намного больше, но даже три направления, описанные выше, объединяли десятки типичных случаев, которые мы решали, переходя от проекта к проекту. В такой работе над проблемами и типичными ошибками мы и пришли к выводу — либо мы сделаем процессы и правила, которые решают проблемы, либо будем пожизненными кризис-менеджерами.
Начав оформлять эти процессы и правила, мы дали им название Predictive Software Engineering. Также мы поняли, что это все можно оформить в виде фреймворка, который ляжет в основу управления нашей компанией. Наша идея заключается в том, что фреймворк Predictive Software Engineering помогает компании сформировать и дать старт команде разработчиков, наиболее подходящей для их проекта, то есть оснащенной необходимым набором навыков, опыта и знаний, а также достичь общей эффективности, как финансовой, так и производительной. Кроме того, это позволяет получить соответствующий бизнес-целям продукт с наименьшим техническим долгом.
Как работает PSE
Каким образом мы достигаем подобного? Путем внедрения процессов, которые учат и направляют наших сотрудников, и путем измерения метрик, которые показывают, насколько эффективно эти процессы выполняют. Давайте рассмотрим конкретный пример.
Это пример формирования новой команды. До внедрения PSE у нас не было никаких метрик по найму для инжиниринг-департамента. Мы измеряли, как работает рекрутинг, но никогда не ставили никаких условий для инжиниринга. Что у нас получалось? Наши менеджеры старались выбирать лучших из лучших, и таким образом мы перебирали
Мы начали проводить беседы, делать тренинги, чтобы улучшить ситуацию, но это все не имело видимого эффекта. Единственное, что помогло — это введение процесса по найму и строгих метрик. На данный момент у нас есть процесс, который четко расписывает роли и ответственность в процессе найма. Вся его суть сводится к следующему правилу: на каждые десять подходящих резюме должен быть найм и/или каждые пять собеседований должны заканчиваться наймом. Мы строго измеряем каждый найм и следим за выполнением этой метрики. Те менеджеры, которые не следуют этим правилам, должны быть отстранены от найма на проект и заменены более эффективными людьми.
Это один из небольших аспектов, которые мы решали в рамках PSE, но его влияние на бизнес компании трудно переоценить. Таких процессов мы создали десятки, и они сформировали фреймворк под названием Predictive Software Engineering.
Еще один короткий пример. У нас есть отдел продаж, который приносит потенциальные проекты в компанию. Для работы над такими проектами они привлекают инжиниринг-департаменты. Проекты, которые приходят от отдела продаж, имеют разнообразные требования, технологии, варианты сотрудничества, размер и бюджет. До стандартных процессов сотрудники из отдела продаж приходили к инженерам неформально или формально, но каждый раз по-разному, и никто не контролировал этот процесс. Представьте себе хаос, который был у нас во взаимодействии департаментов.
Решали мы это путем внедрения стандартных запросов на вовлечение инжиниринга, также стандартных процессов на поиск людей на потенциальные проекты, на внедрение технических экспертов и т.д. Также у нас появился дашборд, в котором начали вести все новые проекты. Создав такие процессы, мы убрали вышеописанный хаос, начали видеть реальные результаты по работе продаж и инжиниринга. Ситуация прояснилась, и мы увидели, что многие люди не работали как надо, и наша продуктивность была не на высоте. После этого мы внедряли еще процессы по улучшению производительности, но это уже другой пример :)
PSE не стал первой и единственной методологией для нашей компании — наоборот, это, можно сказать, дополнение к существующим мировым практикам. Для проектов мы используем методологии Agile. Это Scrum, Kanban, Lean SD — смотря что лучше подходит для конкретного проекта. Для управления компанией мы выбрали методику Disciplined Agile. Она дает рекомендации, что делать на высоких уровнях, чтобы быть Agile Enterprise. Ее мы приняли за основу, но потом поняли, что этого недостаточно. Недостаточно именно в условиях аутсорсинга, когда мы постоянно собираем команды, нанимаем новых людей, когда у нас меняются проекты, меняются заказчики, когда нам приходится каждый раз убеждать заказчика в том, что мы способны это сделать, что мы лучше конкурентов и т. д. Тогда мы поняли, что нам надо создать дополнительный фреймворк (надстройку над disciplined agile), который будет сфокусирован на проблемах и боли аутсорсинга. Мы начали работать над ним. И в результате сформировали свод правил о том, как руководить и как правильно создать порядок в аутсорсинге.
Это и есть PSE: мы показываем и себе, и заказчику, что благодаря этому своду правил мы с большей вероятностью закончим проект вовремя, в рамках бюджета, с тем же количеством людей, и проект будет качественным. PSE — это попытка не пускать все на самотек, ожидая, что хорошие и талантливые менеджеры сами придумают, как все делать. Мы создали работающий фреймворк, как когда-то создали Scrum, который сейчас по всему миру позволяет миллионам команд качественно делать продукт, причем вообще без менеджеров.
В чем ценность PSE для клиентов, компании, команды
PSE обеспечивает прозрачность, а также делает процесс разработки софта на аутсорсе управляемым и предсказуемым по своей сути. Первое, что необходимо понять клиенту, это то, как он работает. Поэтому мы проводим тренинг для всех клиентов о наших процессах. Раньше этого не было, и мы имели несколько случаев, когда на определенных проектах появлялись проблемы, которые должны были решиться с помощью PSE. Мы начали разбирать эти ситуации, и увидели две проблемы. Первая: наш менеджер не совсем понял наши процессы и выполнял их по-своему. Вторая: клиент был не в курсе изменений на нашей стороне и не понимал значение определенных процессов. Таким образом, не было правильного взаимодействия между компанией и заказчиком. После этих случаев мы решили проводить тренинги для всех наших клиентов о том, как мы собираемся управлять их проектом. Теперь клиент понимает, что такое PSE. Понимает, что методика создана именно для того, чтобы наша работа для него была более предсказуемой. С такой позиции недооценить PSE сложно.
С точки зрения компании, PSE привнес стандарты, лучшие практики, измерения и порядок. Конечно, мы не считаем, что PSE — это панацея. Есть много моментов, которые фреймворк не описывает или не затрагивает. Также, я думаю, многие наши процессы не идеальны. Поэтому мы всегда говорим, что PSE — не статичный фреймворк, мы его все время дополняем и адаптируем. Другим компаниям, которые начинают использовать PSE или думают об этом, мы рекомендуем адаптировать процессы PSE под себя. Наш личный результат таков: у нас уже не бывает, что работа на проекте зависит от одного человека или группы людей. Второй плюс от внедрения PSE — это разгрузка топ-менеджмента компании и возможность обратить взор вне компании, вместо того чтобы постоянно смотреть внутрь и «тушить пожары». Сейчас, если у нас возникает какая-то трудность, и ее можно решить правильным выполнением процессов PSE, мы просто направляем людей по процессам и учим их делать работу правильно. Мы учим людей решать проблемы системно и стараемся не внедрять частных решений.
Вот пример подобного решения: у нас был проект, где у клиента возникали постоянные жалобы на качество работы команды. Каждый раз, когда клиент жаловался, мы общались с ним по частному случаю и пытались понять, кто прав, а кто виноват. Параллельно у клиента была вторая команда, которую он считал сильнее нашей. В PSE есть целое направление, посвященное качеству и продуктивности. Мы пришли на проект, внедрили всевозможные метрики качества и продуктивности и начали измерять работу команды. На подобные измерения понадобились определенные ресурсы, но оно того стоило. После того как мы получили системные результаты, мы увидели, что наша команда работает весьма качественно и быстро, и что проблемы возникают, в основном, когда идет интеграция. Дальше заказчик попросил нас измерить его вторую команду. И мы увидели, что люди из нашей компании почти в полтора раза продуктивнее. Как результат, мы выделили ресурс в команде на постоянное измерение и поддержание метрик, и проблема была улажена раз и навсегда. Теперь заказчик видит все показатели работы и делает выводы из метрик, а не субъективных суждений.
Что дает PSE для сотрудников? Ответ очевиден. Давайте представим, что вы работаете в коллективе, где каждый за себя и нет четкой организации. Кто-то делает что-то правильно, кто-то — не очень. Через некоторое время вы понимаете, что такой коллектив не прогрессирует, и вы не развиваетесь в нем как профессионал. В целом, ситуация выглядит бесперспективно. Другое дело, когда вы приходите в команду профессионалов с четкими процессами. Каждый день вы учитесь у них и видите, что они тоже не стоят на месте и постоянно развиваются. PSE — это процессы, процессы — это порядок и законы нашей фирмы. Так же, как законы в государстве, мы меняем наши процессы и адаптируем их под реалии конкретного времени. Но основа остается той же. Все же хотят жить в государстве, где верховенствует право и граждане законопослушны. Это применимо и к компании. Первое применение PSE — фреймворк устанавливает правила и заставляет их выполнять.
Второе применение фреймворка — взаимодействие с людьми. Процессы, описанные в нем, помогают сотрудничать эффективнее. Это повышает качество работы и увеличивает удовлетворенность сотрудников.
Мы имеем примеры, где команда, состоящая из очень опытных и сильных людей, показывала результаты хуже, чем команда, почти полностью состоящая из начинающих программистов. При этом первая команда часто игнорировала процессы компании, а вторая все тщательно выполняла. Говоря спортивными терминами, «порядок бьет класс».
Как вывод: PSE для людей — это упрощение их жизни в компании и порядок в деятельности. Поверьте мне, это те два момента, которых нам очень не хватает в современном мире.
Как происходит внедрение PSE в компании
Это достаточно сложный и трудоемкий процесс. Думаю, многие сталкивались с переходом компании на Agile-методологии. Те, кому пришлось пережить это, помнят, как было тяжело. Самое главное в таком переходе — заставить людей мыслить по-новому и отойти от устоявшихся стереотипов. Это очень сложная задача, требующая усилий на всех уровнях управления компанией включая топ-менеджмент и СЕО. Если у менеджмента нет такого желания, процесс будет провальным с самого начала. PSE — это, можно сказать, надстройка над Agile-процессами, и его внедрение не так уж сильно отличается. В первую очередь, нужно иметь решение руководства компании о внедрении новых процессов. Дальше необходимо адаптировать PSE-процессы для нужд конкретной компании. Мы стараемся писать обобщенные процессы, которые могут быть адаптированы для конкретной компании с большей эффективностью.
Хороший пример — наш процесс и метрики по рекрутингу. Нам подошли цифры 10 резюме и один найм, а у кого-то будут другие цифры. В нашем случае мы описываем, что ответственность за найм несет деливери-менеджер, у другой компании это может быть специальный отдел или рекрутинг компании. Специфика разная, но найм есть в любой компании. И этот процесс необходимо стандартизировать. Иначе результата не будет. Вот об этом PSE. Мы выделяем стандартные моменты в деятельности аутсорсинговой компании и создаем процессы, которые их стандартизируют и делают эффективными.
В нашей компании все началось с импульса от руководства. Основатель и глава Intetics является идеологом PSE, так что он в первую очередь был заинтересован в его практической имплементации. Я продолжил начатое президентом, и вместе с командой коллег мы дописали и довели до конца идеологию PSE вместе со всей библиотекой процессов. Следующим шагом был тренинг для всех сотрудников компании о том, что же такое PSE. Я несколько месяцев объезжал все наши офисы и собирал сотрудников на тренинги по PSE. Мы должны были убедиться, что все в компании понимают, какие наши процессы и как им следовать. Это очень нелегкая задача, но совместными усилиями мы справились. У нас было много сессий и итераций, как и в любом другом Agile-процессе. В принципе, работа над PSE не останавливается никогда. Мы постоянно доделываем процессы, дополняем библиотеку процессов новыми и т.д.
Решает ли PSE все проблемы аутсорсинга
Ответ — однозначно нет. Все проблемы решить невозможно, и сколько ни строй теорий и фреймворков, будут новые вызовы и новые проблемы. Созданием PSE мы старались решить типичные и стандартные проблемы, которые возникают у многих компаний и повторяются на многих проектах. Также нашей целью было создать процессы, которые можно взять за основу для компании, которая до них доросла и у которой они отсутствуют. Мы хотим делиться нашим опытом с другими опытными и начинающими компаниями, чтобы они могли использовать PSE и дополнять его своими достижениями.
Мы создали веб-сайт, где будут опубликованы все статьи и процессы по PSE. Их можно будет прочесть в публичном доступе и начинать внедрять описанное в них в своих компаниях. Также мы сделали открытое комьюнити, куда приглашаем всех желающих. Наша коллега Сандра Шнейдер — лидер этого комьюнити. Все желающие специалисты и компании могут добровольно присоединиться к созданию и развитию PSE. Этому фреймворку нужна реклама и поддержка не только одной компании для того, чтобы он стал стандартом индустрии. Это наша цель, мы хотим, чтобы все больше и больше компаний начинали использовать принципы и процессы PSE.
Что дальше
Дальше — комьюнити с его правилами и работой. Все только начинается. Мы хотим на конкретных примерах показать то, как фреймворк помогает строить бизнес и работать с клиентами более эффективно. Мы выступаем на разных площадках с докладами о PSE, рассказываем о нем другим компаниям. Если будет активное сообщество, то вместе мы сможем решить многие проблемы аутсорса.