Пожежна команда і біг на випередження: як ми будуємо Java Competence Center в EPAM

Вже кілька років я займаюся розвитком Центру компетенцій Java в EPAM. За цей час він встиг поміняти head-базу, став частиною внутрішнього навчання, сформував Java-експертизу для роботи над складними проектами.

Процес організації Центру захоплюючий, але зовсім не гладкий. Ми перепробували різні способи і досі не зупиняємо пошук оптимальної структури. У статті я розповім, що ми робимо і навіщо компаніям і IT-фахівцям потрібні центри компетенцій. Сподіваюся, що наш досвід буде корисний іншим.

Як все починалося, або Пошук ідеальної формули

Ідея внутрішнього Центру компетенцій проста. Якщо раптом на якомусь проекті не вистачає компетенції, якщо хтось з команди вирішив прокачати свій рівень в певних технологіях або належить хитромудрий пресейл з замовником, Центр компетенцій підставляє плече. В ідеалі це ядро максимальної галузевої експертизи — щоб плече було міцним і надійним.

Коли 8 років тому я прийшов у компанію, подібних структур тут ще не було. Java Competence Centre (Java CC) розпочав свою роботу у 2012 році і спочатку базувався в Мінську. Основна група експертів перебувала там же. У якийсь момент Head Центру компетенцій вирішив зайнятися іншими активностями, а я запропонував свою кандидатуру на цю позицію. До того моменту я накопичив чимало інженерного та організаційного досвіду на проектах, тому давно хотів зробити подібну структуру, де можна було б застосувати знання і поділитися ними. Пройшов інтерв'ю з CTO компанії, який затвердив мене на цю позицію. Так Head Java CC перемістився в Харків.

Звичайно ж, ще на старті в 2014 році ми аналізували досвід подібних структур в інших компаніях. Я вивчав приклади великих компаній, наприклад, Oracle і IBM, де центри компетенцій за деякими темами працюють як виділені структури. Вони накопичують досвід у своїх напрямках і консультують з них клієнтів.

На різних конференціях спілкувався з хлопцями з українських компаній, запитуючи, як у них влаштовані центри компетенцій. Максимум, про що мені розповідали: певний фокус на розвиток education, внутрішні університети та тренінги, побудова скілл-матриць.

Все це було добре, але нам потрібно було щось більше. Зокрема, формувати пул експертів, які могли б виїжджати до замовника і грамотно обговорювати технічні рішення, а не тільки ресурсні плани. Тим більше, що очікування клієнтів ростуть.

У пошуках своєї ідеальної формули в побудові Центру використовуємо два моменту.

По-перше, всередині компанії є інші центри компетенцій. Всі вони досить різні, так як мають різні ступені розвитку і закривають різні потреби у своєму напрямку. Але тим не менш для всіх нас це обмін корисною інформацією та організаційними ідеями.

По-друге, ми постійно тримаємо у фокусі проблематику. Наприклад, в минулому році робили стратегічну сесію Java—менеджерів і архітекторів, де обговорювали виклики в Java є на поточний момент. Усередині компанії теж обговорюємо проблемні місця в технологіях і думаємо, як їх вирішити нашими силами.

Інформації про центри компетенції і про те, як вони повинні працювати, вкрай мало. Немає жодного готового прикладу, який би лягав в реалії компанії на 100%. Як правило, це дуже спеціалізовані структури, які займаються абсолютно конкретним фокусом. За нього вони роблять вузькі тренінги, консалтинг, впровадження і тому подібні речі.

У нас Java охоплює широкий пласт. У сферу входить (і потенційно може входити) багато технологій, тому побудувати Центр компетенції, який закриває всі питання лише тренінгами або іншими варіантами навчання, практично неможливо. Що-то з результатів своїх пошуків я брав за основу — це моделі професійних сервісів Lightbend, Red Hat і Apache Ignite, які фокусуються на накопиченні практичного досвіду і надання конкретних платних сервісів. У підсумку багато чого доводиться будувати конкретно під нас.

Структура та організація

В Java CC кілька досить великих напрямків діяльності.

Першеорганізація ком'юніті , якою займається ціла структура. Це ком'юніті-менеджери від HR бізнес-партнерів і ком'юніті-драйвери від Java.

Другеархітектурна команда , яка займається пресейлом, customer engagement та SWOT-кейсами, в яких необхідна серйозна інженерна підтримка. Стабільного складу у цієї команди немає, але є якийсь core. Це 5-6 архітекторів, з якими ми постійно працюємо і знаємо, що їхній рівень досить високий для вирішення складних кейсів.

Далі ми залучаємо до активностей розробників чи архітекторів з продакшну. З їх допомогою команда досить легко розширюється, коли приходить RFP, RFI або трапляється якийсь SWOT-кейс. Тоді архітектор з core-групи очолює активність технічно, підбирає розробників і архітекторів під конкретний кейс і виступає супервізором. Як керівник центру компетенції, я очолюю архітектурну групу. Так що більшість «червоних», складних і важливих кейсів у підсумку проходять через мене і цю групу. У деяких з таких кейсів я теж беру участь як провідний архітектор.

Третій напрямок — освіта . Ця група займається створенням тренінгових та менторинг-програм. В ній є люди, які відповідають за певні тренінгові напрямки по Java. А сама група найбільш розподілена і найменш керований з боку Java CC. Пояснюється це просто: всі education-програми розробляються індивідуально під конкретну локацію і її потреби. І найчастіше — ресурсами цієї локації. Ми ж допомагаємо з формуванням програм тренінгів, але не керуємо ними і не нав'язуємо їх локаціях. Тут вони орієнтуються на свої потреби.

Всього в Центрі компетенції приблизно 30 осіб, які щільно залучені в роботу, більш 1500 інженерів, активно беруть участь у технічних ком'юніті, і більше 5000 чоловік у самій компетенції.

Пожежна команда

Java CC працює на всю компанію. Фактично зараз у нас є група експертів, яка глобально закриває питання в різних локаціях. В майбутньому ми плануємо будувати групи компетенцій по локаціях. А поки не прив'язані до якої-небудь країні або бізнес-юніту конкретної країни.

У фокусі нашої уваги найбільш пріоритетні проекти, які стартують в EPAM Global. Наприклад, ті, які «на олівці» у нашого Head of Global Delivery і Country Head-a. Експерти Центру компетенцій залучаються і в SWOT-кейси — проекти, які потрапляють в червону зону, тобто в них присутній ризик втрати грошей або клієнта. Тому часто Центр компетенцій нагадує пожежну команду.

Щоб «спалах» навіть не виникало, ми шукаємо різні практики, тому намагаємося зібрати навколо Java CC людей з нестандартним мисленням. Готової схеми немає, дуже часто Центр експериментує. Щось приживається, щось-ні.

Реальність і продакшн

Як на мене, найскладніше — правильно поєднати роботу в Центрі компетенцій і на реальних проектах. Я насилу уявляю, що в якій-небудь компанії раптом візьмуть і знімуть всю робочу навантаження з інженерів, віддавши їм тільки «червоні» кейси. Як мінімум складно сформувати і контролювати навантаження. Особливо, якщо в компанії безліч локацій.

Наприклад, наша група експертів дуже розподілена. Для кожного з них є індивідуальне вимогу: приблизно 80% часу він повинен займатися реальними проектами. В цьому плюс — ми не відриваємося від живих кейсів і не вязнем в теорії. Однак тут же і мінус: коли людина 80% часу проводить на продакшн-проекті, зробити якусь ефективну структуру Центру компетенції стає дуже складно.

Тому на поточний момент ми намагаємося вибудувати Java CC як якусь віртуальну групу. Людей, що працюють на продакшені і володіють певною експертизою, знаннями, best practices, ми залучаємо для вирішення проблем у схожих ситуаціях на інших проектах.

Є можливості і для консалтингу. Ми залучаємо експертів до роботи з нашими клієнтами і вибудовуємо з цього індивідуальну billable утилізацію консультанта.

Для того, щоб досягти необхідного балансу між billable утилізацією і доцільністю залучення експерта в проект, можна практикувати кілька підходів:

Для хлопців, які контрибьютят в Центрі компетенцій, важливий правильний баланс, який ми намагаємося дотримуватися. З одного боку, додаткові складні завдання — це професійний ріст і нові сходинки. З іншого — матеріальна складова.

У нас є спільний з компанії Portal Contribute. Всі, хто контрибьютит в Центрі компетенцій, отримують певний грошовий бонус. Далі є програма для кращих контриб'юторів Центру від самого Центру. Ми мотивуємо якимись унікальними подарунками, які можна отримати тільки від нас. Якщо людина з нами співпрацює на регулярних засадах, бере участь у консультуванні, SWOT-кейсах і серйозних engagement, пресейлах, крім контрибьюта отримує проектний бонус і потенційний річний бонус від Центру компетенції.

Результати роботи Java CC

Java CC береться за найскладніші завдання, і йому довіряють все більше. Що вже саме по собі велике досягнення.

З'являються проактивні речі по навчанню співробітників і вивчення трендів — приміром, наші внутрішні і зовнішні освітні ініціативи. З'явилися розсилки новин про технології, групи з обговорення оновлень. Сформувався потік технічної інформації, який тримає інженерів в курсі.

Компанія велика, і не завжди легко виявити, хто конкретно готовий бути експертом. З розвитком Java CC утворився певний нетворк експертів, яким дійсно цікаво займатися Java-компетенцією.

До Центру результатами я відношу і акселератори. Вони в компанії були і раніше, але яскраво не вистрілювали. За 2 роки ми зробили 2 досить успішних акселератора в рамках Java CC: EPAM Delivery Platform і EPAM Microservices Accelerator. Кожен з них допомагає залучити клієнтів нашими розробками, швидше стартувати проекту, спростити розробку або вирішити інші конкретні завдання.

Озираючись в минуле

Усіх цих результатів не було б без помилок. У роботі Центру компетенцій їх було не так багато, але по закінченні часу легше помітити «точки зростання».

Як я вже говорив вище, драма Центру компетенцій в тому, що доводиться займатися ним між іншими робочими завданнями. Перший же «червоний» кейс, який потрапив в Java CC, — проект для великої логістичної компанії. На піку в ньому перебувало більше 120 осіб. Одночасно робити архітектуру на таку команду й ефективно працювати в Центрі компетенцій — практично нереально.

Якщо відмотати час на кілька років назад, я б більш грамотно розподілив час в плані поєднання продакшн-проектів і Java CC — більше б віддавав останнім. І більш активно залучав би до Центру талановитих фахівців компанії.

Заглядаючи в майбутнє

Серед іншого наша команда розробляє continuous learning. Тут нам доведеться відповідати на безліч запитань. Як визначити, чому потрібно навчати фахівців? Що буде затребуване з точки зору скілів розробників у замовника? Як заздалегідь підготувати тренінгові програми? Як це поєднати з реальним бізнесом на стороні клієнта?

Для цього у Центру компетенцій є такий інструмент як скілл-матриця. Туди ми прописуємо навички, якими, на нашу думку, повинен володіти розробник відповідно до свого рівня. Вона обов'язкова і не є мірилом професіоналізму розробника — носить скоріше рекомендаційний характер. Але людина, розвиваючись від Junior до Chief, може орієнтуватися, що йому в конкретний момент коректніше і ефективніше прокачувати.

Під цю скілл-матрицю ми і хочемо організувати процес continuous learning. Дослідження нових технологій —> потрапляння їх в матрицю —> по матриці будується освітня програма —> за освітньою програмою навчаються співробітники —> співробітники потрапляють на проект з новими технологіями.

Кожна з ініціатив Java CC — досить велика. За кожну з них відповідає конкретний чоловік. Моє завдання — підготувати список таких ініціатив.

Тут може виникнути питання — а звідки я беру цей список? Часто — складаю виходячи зі свого розуміння. Готових рішень та алгоритмів немає, окрім як стежити за трендами і покладатися на інтуїцію і досвід.

Плани та рекомендації

Крім нинішніх проектів ми хотіли б зайнятися двома основними векторами:

  1. Розробка рекомендацій і методологій. Хороший приклад — микросервисный акселератор. Він з'явився так. В якийсь момент ми зрозуміли, що в найближчі 3-5 років тема микросервисов буде дуже затребувана. Розробили референсну архітектуру для великих клієнтів, вивчили кілька різних фреймворків в цій області, прикинули, які з них будуть найбільш затребувані у великих підприємствах, з якими ми працюємо. Через півроку-рік після цього попит на микросервисные проекти виріс до такого ступеня, що ми не встигали відповісти безлічі дрібних проектів. Зате в деяких ситуаціях могли залучати дуже великі. Крім презентацій ми приносили на переговори демопроекты і показували, як це насправді працює. Це був наш джокер.
  2. Проактивне навчання технологіям, які будуть затребувані в осяжному майбутньому. У нас був цікавий кейс, коли на базі R&D-лабораторії ми спеціально навчили групу студентів микросервисному стеку. Потім ця група студентів потрапила на один із реальних проектів. І вийшло так, що вони спочатку були підготовлені краще і працювали продуктивніше, ніж зрілі фахівці, які прийшли непідготовленими з цього конкретного стеку.

В цьому році ми робимо фокус на PaaS-рішення — припускаємо, що рано чи пізно вони будуть затребувані замовниками. Зокрема, рішення на Docker, Kubernetes, Open Shift та інших подібних технологіях. Після вивчення намагаємося цю експертизу поступово впроваджувати в реальних локаціях. Хто знає, можливо, в наступному «червоному» проекті в Java CC потрібні саме ці скіли. І ми будемо готові.

При опрацюванні ідеї створення центру компетенцій в першу чергу важливо визначитися, які саме проблеми буде вирішувати центр у вашій компанії. Уявіть, що у вас є активне співтовариство експертів у певній галузі, як вони можуть зробити бізнес краще? Яке конкурентну перевагу ви отримаєте, маючи цей ресурс? Якщо ви розібралися з відповідями на ці питання, то подумайте скільки грошей ви готові інвестувати в подібну структуру, так як будь-яка додаткова робота повинна оплачуватися, хоча б на перших порах.

Коли зрозумієте, яку цінність принесе центр компетенцій і у скільки обійдеться, ви зможете побудувати центр, який підсилить ваш бізнес.

Опубліковано: 12/09/18 @ 07:00
Розділ Різне

Рекомендуємо:

Український математик Богдан Рубльов – про олімпіади, перемоги школярів на міжнародних конкурсах та майбутнє математиків
Go дайджест #5: Go 1.11 c підтримкою модулів і WebAssembly, відмовостійкість в архітектурі микросервисной
PHP дайжест #16: новинки в РНР 7.3, Laravel 5.7, головні події цього місяця
Centers of Excellence. Особливості впровадження
DOU Ревізор у Хмельницькому: «Компактний офіс Stfalcon.com»