Шлях архітектора: сертифікація та занурення у продукт

Практично кожен розробник задається питаннями, як йому слід розвивати свої навички і який напрямок зростання вибрати: вертикальний - тобто стати управлінцем, або горизонтальний - фулстек. Багаторічна робота над одним продуктом, попри міфи, стає не обмеженням, а корисною можливістю. У цій статті ми ділимося досвідом нашого backend розробника Олексія, котрий присвятив 6 років сертифікаціям та пройшов за цей час шлях до архітектора.

Шлях архітектора: сертифікація та занурення у продукт

Хто такий архітектор

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

Такому професіоналу необхідно не тільки розбиратися в окремих предметних галузях, а й бачити весь процес:

  • Постановка бізнес-завдання.
  • Розробка, включаючи програмування, підготовку, зберігання та обробку даних.
  • Розгортання та підтримка інфраструктури.
  • Тестування.
  • Деплой.
  • Аналітика та експлуатаційне обслуговування.

Це означає вміння поставити себе на місце будь-якого спеціаліста чи команди у життєвому циклі розробки, зсередини зрозуміти поточний стан систем, виявити допущені помилки, сформулювати цілі. Іноді власноруч провести оперативне втручання.

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

Понад 5 років на одному проекті – рутина чи можливість для зростання?

Кілька років тому ми розпочали роботу над великою медичною ІТ-системою для закордонного замовника. У цьому масштабному проекті існували певні проблеми:

  • обмежені доступи;
  • нестабільний прод;
  • неймовірно розтягнуті спринти та тривалі узгодження.

“Час підвищувати кваліфікацію”, — до такого рішення прийшов один із провідних розробників Олексій, щоб подолати перелічені складності та краще розібратися в системі.

Олексій поділився досвідом, з чого краще розпочати навчання, які сертифікати важливо отримати, як і навіщо це робити.

Крок перший: прокачайте English

Мови програмування - фундаментальна складова розробки, але мови для спілкування не менш важливі. Особливо в комунікаціях із англомовним замовником!

З практики

Одного дня Олексію зателефонувала співробітниця з боку замовника. Тоді наш розробник ще не міг похвалитися стосом сертифікатів — ні за технологіями, ні з менеджменту, ні з комунікацій. Можливо, вони й не стали б у нагоді — адже бути грамотним фахівцем можна і без додаткових регалій. Але проблема таки виникла.

Треба розуміти, що розмовна мова радикально відрізняється від писемної. Якщо ви чудово орієнтуєтесь в англомовних специфікаціях, але не практикуєте listening та speaking, то у нас для вас погані новини. У такому разі телефонні переговори з партнерами можуть завести в глухий кут.

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

Чи треба говорити, що у процесі роботи було зроблено неприємні відкриття? Наш розробник підписався на таке, від чого абсолютно свідомо відмовився б, якби пропозиція надійшла зрозумілою мовою.

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

Сертифікація з англійської мови

Для того, щоб покращити комунікації в рамках нашого медичного проекту, Олексій навчався одразу за кількома програмами. В результаті він здав сертифікацію FCE - First Certificate in English. Це допомогло почати чути замовника та доносити свої думки до нього.

Лайфхак:

Уникайте програм навчання базовій англійській. Навичка має бути цільовою. Якщо потрібна англійська для ділового спілкування — її потрібно брати. Тільки не варто йти в крайнощі і складати CAE (Certificate in Advanced English). Його особливість — sophisticated words, специфічні висловлювання, що у міжнародному спілкуванні майже використовуються.

Шлях архітектора: сертифікація та занурення у продукт

Крок другий: сертифікація по всьому технологічному стеку

Спочатку основу проекту складала технологія об'єктно-реляційного відображення ORM. Команда розробників з боку замовника пишалася своїм дітищем, адже все було зроблено із застосуванням передових концепцій, складно та круто.

Проте, проблеми на проді — зокрема SQL-сервера, що постійно зависає, були не рідкістю. Доходило до того, що типовим вирішенням проблеми був перезапуск служби. Замовник дзвонив тимлід і повідомляв, що настав час перезапускатися. Нарешті ми вирішили з цим покінчити.

Замовник побажав опрацювати перформанс системи — для цього потрібно було запровадити профільування та регулярно проводити оптимізацію. Як інструмент профілювання на той момент — приблизно 2015 року — вибрали Ants Profiler, але той виявив себе слабко. При малій деталізації складно було отримати інформацію про критичний блок коду. За максимальної деталізації Ants Profiler починав змінювати код так, що працездатність систем опинялася під загрозою — там, де було налагоджено профіль, все просто падало. Тому ми змінили підхід.

Ми розпочали з аналізу статистики

При аналізі статистики прода стало зрозуміло, що 95% робіт на сервері мають примітивну бізнес-логіку в 4 рядки. Для них достатньо було одного SQL-запиту, а не повної множини запитів, згенерованої блоком бізнес-логіки з ORM.

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

І все ж таки у нас залишалися сумніви: це вірне рішення чи питання особистих переваг? Віру у всемогутній С# та ORM похитнула випадковість, що показала всю силу простих рішень.

Кейс другий

Команда написала запит для роботи з даними в рамках парадигми ORM, складений за всіма правилами без помилок. Його обробка займала 2-3 хвилини і ці параметри здавалися прийнятними. Однак альтернативна реалізація за допомогою найпростіших селектів і view забезпечила результат швидше за 2 секунди.

Стало очевидно, що настав час обрати спеціаліста, який пройде сертифікацію по всьому стеку проекту, щоб розібратися у всіх нюансах і вибрати оптимальний метод. Це завдання взяв він Олексій.

Перші сертифікати

Для розуміння суті Олексій пройшов кілька сертифікацій Microsoft, що охопили весь технологічний стек проекту:

  • TS: Windows Applications Development with Microsoft .NET Framework 4
  • TS: Accessing Data with Microsoft .NET Framework 4 Programming in C#
  • TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
  • PRO: Designing and Developing Windows Applications using Microsoft .NET Framework 3.5
  • PRO: Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 - Windows-based Client Development

Намагаючись оптимізувати роботу над новим проектом, команда дійшла таких висновків:

  • Для працездатності систем необхідно дотримуватися правил написання коду: не відступи та коментарі, а технічні характеристики — кількість звернень до баз, навантаження на сервер та багато іншого.
  • Застосування суперечливих концепцій загрожує неприємностями. Концепція баз даних – теорія множин, тоді як ORM – концепція операцій.
  • Ідеї, які порушують звичний порядок речей, можуть зустріти опір у команді. Розробка - це також взаємини та вміння аргументувати свою точку зору.
  • Сертифікація розширює кругозір і дозволяє зрозуміти, що можна використовувати, а також, що можна не використовувати.

Шлях архітектора: сертифікація та занурення у продукт

Крок третій: вивчайте не лише код

При роботі над масштабними IT-рішеннями важливим є безліч факторів. Наприклад, не кожен розробник звертає увагу на параметри мережі, але навіть її пропускна здатність може впливати на вирішення бізнес-завдання.

Розуміння цього дають сертифікації 98 серії:

Вони дозволяють ширше поглянути на речі та вийти з обмеженої концепції “тільки код”. Це Fundamentals, основи, але вони важливі, щоб зрозуміти все на більш глибокому рівні.

Сертифікації 98 серії є невеликими тестами — 30 питань на 45 хвилин.

Крок четвертий: управління процесами

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

Типовий Agile не давав бажаних результатів на цьому проекті, і кожний спринт тривав досить довго. Між деплоями проходило від 6 місяців до року.

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

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

Коли фахівець занурений у процес, він чітко бачить результати, причини та наслідки, цілісну картину. Це є одночасно фактором додаткової мотивації та обізнаності, покращення здатності вирішувати завдання та проблеми.

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

У команді кожен розробник розуміє, що колеги залежить від його дій. Економія в 5 хвилин на етапі розробки - це, можливо, 5 додаткових годин тестування. Для цього важливо налагодити комунікації.

У нашому проекті підмогою в освоєнні процесів Олексію послужили сертифікати від EXIN:

  • M_o_R Foundation Certificate in Risk Management
  • Agile Scrum Foundation
  • IT Service Management Foundation
  • EXIN Business Information Management Foundation
  • PRINCE2 Foundation Certificate in Project Management
  • Test Engineer Certificate
  • Microsoft Operations Framework Foundation
  • Agile Service Projects

На edX були пройдені курси, які допомогли подивитися на систему з погляду статистики та бережливого програмування та пізніше підштовхнули до отримання сертифіката архітектора:

  • бережливе виробництво
  • Six Sigma: Analyze, Improve, Control
  • Six Sigma: Define and Measure

Відповідно до принципу “Шість сигм” (Six Sigma), статистичний контроль забезпечує якісний результат із надзвичайно високою ймовірністю.

Підвищуючи свій рівень, розробник, як правило, дійшов таких висновків:

  • Працюйте небагато, а ефективно.
  • Не ускладнюйте життя в гонитві за зовнішньою стороною: наворочені технології не обов'язково вирішують проблеми краще.
  • Дружте зі спеціалістами всіх стадій циклу та з'ясовуйте їх біль. Архітектор повинен володіти процесами: виявлення проблеми, постановка завдання, проектування топології мережі, технологія, тестування, сапорт, експлуатація.
  • Перевіряйте кожну фічу від і до.
  • Буває, що IT-процеси не відповідають бізнес-процесам і з цим потрібно боротися.

Шлях архітектора: сертифікація та занурення у продукт

Крок п'ятий: зрозуміти архітектуру через призму Big Data

На проекті ми мали справу з чималими базами даних. Принаймні так здавалося до певного моменту. Коли Олексій почав вивчення великих даних на edX, з'ясувалося, що 1,5 Tb на проекті — це мала база даних. Серйозні масштаби - від 10 Tb, і там потрібні інші методи.

Наступним кроком на шляху до сертифікації став курс за великими даними. Він допоміг зрозуміти організацію потоку даних та прискорити операції на продажі. А також звернути увагу на малі інструменти, наприклад почати використовувати Excel для вирішення окремих мікрозавдань.

Сертифікат:
Microsoft Professional Program: Big Data Certificate

Шлях архітектора: сертифікація та занурення у продукт

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

Після отримання всіх перелічених сертифікатів, будучи розробником, Олексій почав розуміти, що отримана інформація має високий рівень абстракції, причому це далеко не погано.

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

У пошуках сертифікації архітектора Олексій вийшов на Certified Software Architect - Microsoft Platform від Sundblad & Sundblad. Це програма, визнана Microsoft, її розробка почалася ще 14 років тому за співпраці головного та шведського офісів компанії. Вона охоплює .NET Framework, збирання вимог, управління потоком інформації та багато інших питань на високому рівні та вважається вагомим підтвердженням навичок архітектора.

У рамках програми були курси вивчення. Сертифікація систематизувала знання та дозволила вийти на новий виток розвитку – від розробника до архітектора.

Шлях архітектора: сертифікація та занурення у продукт

Підбиваючи підсумки

Як зазначає Олексій, у процесі роботи з масштабною IT-системою важливо пам'ятати, що програмування — не дорога розвага, а інструмент для вирішення бізнес-завдань. Стикаючись з тим чи іншим викликом, неодмінно потрібно прописувати business value, щоб проект не зайшов у глухий кут.

Архітектор має особливий погляд на програмування та його елементарні складові:

  • Створення та/або підтримка потоку даних
  • Вилучення потоку інформації на основі потоку даних
  • Вилучення потоку цінності виходячи з потоку інформації
  • Монетизація потоку цінності

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

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

На сьогоднішній день ми працюємо з вищеописаною медичною системою понад п'ять років і досягли значних покращень. За цей час Олексій склав понад 20 сертифікаційних іспитів:

  1. TS: Windows Applications Development with Microsoft .NET Framework 4
  2. TS: Accessing Data with Microsoft .NET Framework 4 Programming in C#
  3. TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
  4. PRO: Designing and Developing Windows Applications using Microsoft .NET Framework 3.5
  5. PRO: Designing and Developing Windows-based Applications by Using the Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 - Windows-based Client Development
  7. 98-361: Software Development Fundamentals
  8. 98-364: Database Fundamentals
  9. M_o_R Foundation Certificate in Risk Management
  10. Agile Scrum Foundation
  11. IT Service Management Foundation
  12. EXIN Business Information Management Foundation
  13. PRINCE2 Foundation Certificate in Project Management
  14. Test Engineer Certificate
  15. Microsoft Operations Framework Foundation
  16. Agile Service Projects
  17. бережливе виробництво
  18. Six Sigma: Analyze, Improve, Control
  19. Six Sigma: Define and Measure
  20. Microsoft Professional Program: Big Data Certificate
  21. Certified Software Architect - Microsoft Platform

Шлях архітектора: сертифікація та занурення у продукт

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

“Сертифікаційний таран” допоміг отримати доступ до окремих критичних процесів, які потребували контролю та опрацювання. Європейські замовники IT-рішень зазвичай високо цінують сертифікованих фахівців і готові надати їм більше свободи дій.

Дякую за увагу! Сподіваємося, що стаття була для вас корисною.

Джерело: habr.com

Додати коментар або відгук