Как построить качественный процесс

Аусторсинг разработки ПО — это производство продукта, придуманного клиентом. Производство должно фокусироваться на качестве и предсказуемости результата. Единственное, что позволяет это обеспечить в масштабах крупнее гаража — процессы.

Что хотят заказчики?

Бывает, что заказчик не доволен качеством продукта или каких-то его частей. Раньше, работая по контракту Staff Augmentation или Time and Materials, мы могли объяснить заказчику, что так получилось из-за того, что он сам так «наменеджил», или что «какие требования — такой и результат». Но в последние годы ситуация меняется — всё больше и больше заказчиков, независимо от договоренного типа сотрудничества, имеют ожидания, свойственные модели Fixed Price/Fixed Bid.

Говоря простым языком: заказчик хочет, чтобы сотрудничество напоминало покупку хлеба в магазине. Он пришел, спросил, какой вкуснее, заплатил его стоимость, получил товар отменного качества и довольный пошел дальше. Он не хочет, чтобы ему продали часть буханки, отрезанной непонятным образом, а на вопрос «Почему так?» рассказали примерно такую историю:
«Видите ли, сработал риск возможного наезда на камень на дороге, и машина, которая везла эту буханку, качнулась. Далее сработал другой риск — человеческий фактор: дверь в машине была закрыта не совсем плотно, и поэтому буханка выпала на землю, где крыса случайно съела кусочек. Но вы не волнуйтесь, мы ее аккуратно вытерли и обрезали то, что надкусила крыса. Поэтому ваш кусок выглядит так странно».

Заказчики не хотят особо вникать в то, как получается результат. Их больше интересует сам результат, а не способ его получения. Бизнес заказчика — не разработка ПО. ПО для него либо продукт, либо часть продукта. Компонент, помогающий получать прибыль.

Помимо других компаний, я работал в Luxoft и EPAM. У обеих компаний есть заветная мечта. В Luxoft это Managed Delivery, а в EPAM — Product Development Services. Они обе стремятся предсказуемо получать результат определенного качества.

Обеспечиваем результат

Способность получать предсказуемый результат — цель стратегическая. Давайте разобьем ее на некоторые тактические действия, требуемые для ее достижения.

1) Описание процесса

Гиганты отрасли имеют красивый бейджик CMMI 4. Компании чуть поменьше стремятся получить ISO 9001 и другие уровни сертификации. Зачем? Потому что такой статус означает, что процессы компании:
— описаны;
— измерены;
— поддаются контролю.

Три перечисленных фактора — это минимум, необходимый для прогнозируемого результата.

В наших реалиях описание процессов часто делают «для галочки». Сотрудники могут не знать, что такое описание в компании вообще существует. А если и знают, то не особо хотят по нему работать, потому что непонятно/я умнее/я лучше знаю/это не Agile и т.д.

Поэтому первое, что необходимо сделать — детально определить, как именно компания будет обеспечивать качественный и предсказуемый результат. Это описание процесса можно сделать только на определенном уровне абстракции, так как детали более низкого уровня слишком разнятся в зависимости от контекста, и их невозможно учесть в рамках одного описания. Зачем тогда нам нужно высокоуровневое описание? Затем же, зачем мореплавателям в средние века нужны были звезды — для ориентирования. Этот высокоуровневый процесс должен стать для компании фундаментом и путеводной звездой, на которую будут равняться сотрудники. Иначе каждый будет делать «по-своему», и предсказуемость просто исчезнет.

После создания высокоуровневого процесса нужно провести инвентаризацию того, чем вы занимаетесь в текущий момент (какие именно проекты делаете) и чем планируете заниматься в будущем (какого типа проекты, из какой индустрии и т.д.). Цель — сформировать некие архетипы (категории) проектов и создать процесс-наследник от верхнеуровневого. Он будет обеспечивать предсказуемый результат определенного качества именно для такого типа проекта и именно в этой индустрии.

Как пример: в финансовом секторе при работе с UBS или Deutsche Bank вам бессмысленно внедрять «скрам в чистом виде», потому что вместо пользы он принесет проблемы. Коммуникации при работе с таким клиентом будут отличаться от коммуникаций со стартапом, у которого получилось выйти на рынок, и теперь он хотел бы переделать свой продукт с «на коленках» на «по-нормальному».

Все эти нюансы вполне поддаются категоризации с последующим созданием чек-листов для контроля «а не пропустили ли мы что-то важное», детальных инструкций для ролей в проекте, способов оценки сроков и стоимости работ, планов коммуникаций, шаблонов и методов отчетности. Именно эти нюансы и обеспечивают качество и предсказуемость. Удобнее всего их описывать как наследованные от высокоуровневого процессы, работающие в определенном конкретном контексте.

2) Компетенции

Имея производственный процесс, описанный от начала и до конца, мы уже можем прописать компетенции, требуемые для его успешного выполнения. В результате вы наконец-то сможете объяснить, зачем в вашей скил матрице у девелопера требуется навык владения циркулем. Или если этому нет объяснения — перестать проверять этот навык на собеседованиях.

Имея возможность доступно объяснить, зачем нужны определенные компетенции, вы можете проверить состав ваших ролей, поставив наконец-то перед HR задачу по-приятнее, чем «снизить аттришн».

Для иллюстрации приведу пример из тренинга про компетеции. Если вы не учитываете доступность ресурсов, в вашей скил матрице вполне может появиться «повар-сварщик». Потребность в компетенции повара и сварщика одновременно вполне может быть объяснима вашим производственным процессом (например, в пищевой промышленности). Попытка объединить эти компетенции в одной роли может быть объяснима либо недальновидностью, либо слепой уверенностью, что на рынке можно относительно легко найти поваров с прошлым сварщика (либо наоборот). Но процесс — явление более менее долговечное, а значит вам придется искать учебное заведение, выпускающее таких поваров-сварщиков. Иначе после того, как все существующие уйдут на пенсию либо уволятся, ваш процесс станет просто невыполнимым.

Итак, после того как вы поймете, какие именно человеческие ресурсы вам требуются, пора перейти к действию номер 3.

3) Образование

Зная конечную точку, куда вы хотите прийти (то есть зная конкретные требования к конкретной роли для конкретной категории проекта), вы можете заниматься развитием сотрудников.

Я не верю, что хотя бы в одной компании все роли в процессе заполнены людьми, хотя бы на 90% отвечающими требованиям. Поэтому первое, что нужно будет сделать — «доразвить» качество этих людей до заветных 99-100%, без которых ваш процесс дает не совсем предсказуемый результат. Тогда вы сможете получить опыт создания действительно работающих планов развития (то, что в народе называют CDP/PDP и т.д.)

Следующие действия касаются планирования загрузки «рабочей силы» (Workforce Planning) и внедрения программных продуктов, автоматизирующих управление людскими ресурсами (Human Resources Management), что выходят за рамки данной статьи.

Итоги

Таким образом, недопонимания, разночтения, разногласия и трактования разных ролей/вакансий/позиций исходят из того, что «формальная составляющая» бизнеса плохо проработана. Ни одна компания не может расти и быть успешной в средне- и долгосрочной перспективе, если сотрудники в ней работают по принципу «Сам додумай как — мы ж тебе за это деньги платим». Еще раз повторюсь — такой подход работает только в начале и должен быть заменен на более зрелый, описанный выше.

Предложенные действия проверенно и гарантировано работают как в масштабе компании целиком, так и в масштабе отдельных проектов (при условии, что вы сможете адаприровать изложенные концепции к конкретной ситуации).

Желаю удачи любому, кто захочет их выполнить.

Похожие статьи:
В сети уже появлялась неофициальная информация о смартфоне Xiaomi Mi 5, а теперь стала известна вероятная дата анонса нового устройства....
Первая встреча Smart Club будет посвящена сфере Java-разработки. Мы послушаем 2 доклада от ведущих Java-специалистов, обсудим...
Олександр Мельник — тестувальник і ветеран російсько-української війни. В ІТ-індустрії працював сім років, коли ж...
.NET C# Design Notes: object initializers, with-expressions, positional deconstruction. Портирование MSBuild на .NET Core ASP.NET Построение multi-tenant приложения (кто...
В мая текущего года в сети впервые промелькнула фотография устройства с экраном без полей, известного как...
Яндекс.Метрика