Predictive Software Engineering як шанс для аутсорса підвищити якість послуг
[Сергій Кизян — СТО Intetics. 15 років досвіду в розробці, магістр комп'ютерних наук у Вінницькому національному технічному університеті. Пройшов шлях від молодшого інженера-програміста до СТО. Автор книги «Управління, орієнтоване на людей», що стала основою для нової дисципліни у ВНТУ. Співавтор книги про Predictive Software Engineering]
Багато компаній віддають розробку програмного забезпечення на аутсорс. Від своїх партнерів вони чекають високих результатів і надійної роботи, але в той же час постійно знаходяться в непевності щодо термінів, якості і вартості розробки софту. Щоб зняти цю напругу, аутсорсингові компанії повинні запропонувати новий підхід до надання послуг. У компанії Intetics ми створили і використовуємо фреймворк під назвою Predictive Software Engineering (PSE), який усуває «вузькі місця» в роботі аутсорсерів.
Ідея PSE
У нас були десятки проектів, якими керували різні люди, в різних країнах та при різних умовах. Деякі проекти були дуже успішні, деякі мали багато проблем. Кожен раз, коли ми включалися до рішення тих або інших проблем з проектами, ми бачили певні тренди. В основному, проблеми були у наступних напрямках:
- комунікація з замовником на рівні компанії. Дуже часто замовник залишався один на один з командою і не відчував, що він працює з великою компанією, якої ми є. Приклад: у нас були замовники, які приходили і прямим текстом говорили: «Ми не відчуваємо, що ви дбаєте про нас як компанія. Ми стакиваемся з проблемами і залишаємося з ними один на один». Це призводило до досить неприємних наслідків, які було складно усунути і повернути довіру замовника.
- правильний репортинг від команди. У нас було багато випадків, коли замовник не зовсім розумів або взагалі не розумів, чим займається команда. Він лише сподівався, що все буде добре. Хороший результат в таких випадках теж був не завжди. Зазвичай команда, яка погано репортит, погано працює. Приклад: у нас були менеджери, які виявилися некомпетентними у своїх проектах, і вони самі були впевнені, що справи на проекті йдуть відмінно, навіть у тих випадках, коли проект був на грані провалу або вже був провалений. Вони на словах переконували наш менеджмент і замовника, все відмінно. Якби вони вели правильний репортинг з метриками, ми б зловили проблему ще на самому початку, коли вона виникла.
- відсутність стандартних підходів. Ми побачили, що, незважаючи на те, що ми задекларували певні правила розробки та управління проектами в компанії, не всі менеджери слідували їм і не всі розуміли їх правильно. Приклад: знайомий всім без винятку людям в нашій індустрії — впровадження Agile-процесів. Домогтися, щоб кожен чоловік розумів і робив так, як всі співробітники компанії — дуже складно. Так і з іншими процесами: їх впровадження і стандартизація дуже складні, але результат того коштує, як і у випадку з Agile-підходами.
Насправді, однотипних проблем було набагато більше, але навіть три напрямки, описані вище, об'єднували десятки типових випадків, які ми вирішували, переходячи від проекту до проекту. В такій роботі над проблемами та типовими помилками ми і прийшли до висновку — або ми зробимо процеси і правила, які вирішують проблеми, або довічними криза-менеджерами.
Почавши оформляти ці процеси і правила, ми дали їм назву Predictive Software Engineering. Також ми зрозуміли, що це все можна оформити у вигляді фреймворку, який ляже в основу управління нашою компанією. Наша ідея полягає в тому, що фреймворк Predictive Software Engineering допомагає компанії сформувати і дати старт команди розробників, найбільш придатною для їх проекту, тобто оснащену необхідним набором навичок, досвіду і знань, а також досягти загальної ефективності, як фінансової, так і продуктивною. Крім того, це дозволяє отримати відповідний бізнес-цілям продукт з найменшим технічним боргом.
Як працює PSE
Яким чином ми досягаємо такого? Шляхом впровадження процесів, які навчають і направляють наших співробітників, і шляхом вимірювання метрик, які показують, наскільки ефективно ці процеси виконують. Давайте розглянемо конкретний приклад.
Це приклад формування нової команди. До впровадження PSE у нас не було ніяких метрик по найму для інжиніринг-департаменту. Ми вимірювали, як працює рекрутинг, але ніколи не ставили ніяких умов для інжинірингу. Що у нас виходило? Наші менеджери намагалися вибирати кращих з кращих, і таким чином ми перебирали 40-50 кандидатів на одну позицію! У нас виникла культура ретельного підбору, яка спочатку була досить непоганою. Але в міру росту компанії та посилення конкуренції на ринку праці і в роботі з замовником (замовники стали працювати з декількома компаніями одночасно) ми почали програвати нашим конкурентам. Конкуренти були більш гнучкі, наймали швидше, працювали ефективніше, а наші менеджери продовжували шукати ідеальних кандидатів. Проблему треба було вирішувати швидко і кардинально.
Ми почали проводити бесіди, робити тренінги, щоб поліпшити ситуацію, але це все не мало видимого ефекту. Єдине, що допомогло — це запровадження процесу за наймом і строгих метрик. На даний момент у нас є процес, який чітко розписує ролі та відповідальність в процесі найму. Вся його суть зводиться до такого правила: на кожні десять підходящих резюме повинен бути оренду та/або кожні п'ять співбесід повинні закінчуватися наймом. Ми суворо вимірюємо кожен найм і стежимо за виконанням цієї метрики. Ті менеджери, які не дотримуються цих правил, повинні бути відсторонені від найму на проект і замінені більш ефективними людьми.
Це один з невеликих аспектів, які ми вирішували в рамках 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, розповідаємо про нього іншим компаніям. Якщо буде активна спільнота, то разом ми зможемо вирішити багато проблем аутсорса.
Опубліковано: 26/12/19 @ 11:00
Розділ Різне
Рекомендуємо:
Переїзд до Великобританії. Від студента-футболіста в Києві до Software Developer в Лондоні за 5 років
Здоров'я ІТ-спеціаліста: мігрень, невропатії, тунельний синдром
DevOps дайджест #28: Kubernetes 1.17, Kubernetes Admission Controllers, CoreOS Clair і Flan Scan
BA дайджест #6: тренди 2020, взаємодія з топ-менеджментом
36+ робочих місць фахівців з SEO світу