Путь архитектора: сертификация и погружение в продукт

Практически каждый разработчик задается вопросами, как ему следует развивать свои навыки и какое направление роста выбрать: вертикальное — то есть, стать управленцем, либо горизонтальное — фулстек. Многолетняя работа над одним продуктом, вопреки мифам, становится не ограничением, а полезной возможностью. В этой статье мы делимся опытом нашего backend разработчика Алексея, который посвятил 6 лет сертификациям и прошел за это время путь до архитектора.

vv4a7r-hjpeckwacuspzmhqf2mk.jpeg

Кто такой архитектор


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

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

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

Это означает умение поставить себя на место любого специалиста или команды в жизненном цикле разработки, изнутри понять текущее состояние систем, выявить допущенные ошибки, сформулировать цели. Иногда — собственноручно провести оперативное вмешательство.

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

Более 5 лет на одном проекте — рутина или возможность для роста?


Несколько лет назад мы начали работу над крупной медицинской ИТ-системой для зарубежного заказчика. В этом масштабном проекте существовали определенные проблемы:

— ограниченные доступы;
— нестабильный прод;
— невероятно растянутые спринты и длительные согласования.

«Пора повышать квалификацию», — к такому решению пришел один из ведущих разработчиков Алексей, чтобы преодолеть перечисленные сложности и лучше разобраться в системе.

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

Шаг первый: прокачайте English


Языки программирования — фундаментальная составляющая разработки, но языки для общения не менее важны. Особенно в коммуникациях с англоязычным заказчиком!

Из практики

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

Надо понимать, что разговорный язык радикально отличается от письменного. Если вы прекрасно ориентируетесь в англоязычных спецификациях, но не практикуете listening и speaking, то у нас для вас плохие новости. В таком случае телефонные переговоры с партнёрами могут завести в тупик.

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

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

В тот момент стало понятно, что прокачивать навыки слушания и говорения просто необходимо. Лучшим способом для этого были сертификации.


Сертификация по английскому языку


Для того, чтобы улучшить коммуникации в рамках нашего медицинского проекта, Алексей учился сразу по нескольким программам. В результате он сдал сертификацию FCE — First Certificate in English. Это помогло начать слышать заказчика и доносить свои мысли до него.

Лайфхак:
Избегайте программ обучения базовому английскому. Навык должен быть целевым. Если требуется английский для делового общения — его и нужно брать. Только не стоит уходить в крайности и сдавать CAE (Certificate in Advanced English). Его особенность — sophisticated words, специфические выражения, которые в международном общении почти не используются.


nxzcf4nyqaiey4fztmomyb4lfcs.jpeg

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


Изначально основу проекта составляла технология объектно-реляционного отображения 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 — концепция операций.
— Идеи, которые нарушают привычный порядок вещей, могут встретить сопротивление в команде. Разработка — это также взаимоотношения и умение аргументировать свою точку зрения.
— Сертификация расширяет кругозор и позволяет понять, что можно использовать, а также что можно не использовать.

rsqh3no2hngrbaip7funfexmjv0.jpeg

Шаг третий: изучайте не только код


При работе над масштабными IT-решениями важно множество факторов. Например, не каждый разработчик обращает внимание на параметры сети —, но даже ее пропускная способность может влиять на решение бизнес-задачи.

Понимание этого дают сертификации 98 серии:

— 98–361: Software Development Fundamentals
— 98–364: Database Fundamentals

Они позволяют шире взглянуть на вещи и выйти из ограниченной концепции «только код». Это 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 были пройдены курсы, которые помогли посмотреть на систему с точки зрения статистики и бережливого программирования и позже подтолкнули к получению сертификата архитектора:

— Lean Production
— Six Sigma: Analyze, Improve, Control
— Six Sigma: Define and Measure

Согласно принципу «Шесть сигм» (Six Sigma), статистический контроль обеспечивает качественный результат с чрезвычайно высокой вероятностью.

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

— Работайте не много, а эффективно.
— Не усложняйте жизнь в погоне за внешней стороной: навороченные технологии не обязательно решают проблемы лучше.
— Дружите со специалистами всех стадий цикла и выясняйте их боли. Архитектор обязан владеть процессами: выявление проблемы, постановка задачи, проектирование топологии сети, разработка, тестирование, саппорт, эксплуатация.
— Проверяйте каждую фичу от и до.
— Бывает, что IT-процессы не соответствуют бизнес-процессам, и с этим нужно бороться.

noyxufrsw9cvdqfevh8jmcxt5ay.jpeg

Шаг пятый: понять архитектуру через призму Big Data


На проекте мы имели дело с довольно большими базами данных. По крайней мере, так казалось до определённого момента. Когда Алексей приступил к изучению больших данных на edX, выяснилось, что 1,5 Tb на проекте — это малая база данных. Серьёзные масштабы — от 10 Tb, и там требуются другие методы.

Следующим шагом на пути сертификации стал курс по большим данным. Он помог понять организацию потока данных и ускорить операции на проде. А также обратить внимание на малые инструменты, например, начать использовать Excel для решения отдельных микрозадач.

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

awd6o8hzardenf-0qovuuyacvja.jpeg

Шаг шестой: от разработчика — до архитектора


После получения всех перечисленных сертификатов, ещё будучи разработчиком, Алексей начал понимать, что полученная информация имеет высокий уровень абстракции, причём это далеко не плохо.

Масштабное видение процессов подводит к уровню архитектора, одной из высших ступеней сертификации.

В поисках сертификации архитектора Алексей вышел на Certified Software Architect — Microsoft Platform от Sundblad & Sundblad. Это программа, признанная Microsoft, ее разработка началась ещё 14 лет назад при сотрудничестве головного и шведского офисов компании. Она охватывает .NET Framework, сбор требований, управление потоком информации и многие другие вопросы на высоком уровне и считается веским подтверждением навыков архитектора.

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

y_ha8iyej4giioznkmntwmkwsgq.jpeg

Подводя итоги


Как отмечает Алексей, в процессе работы с масштабной 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. Lean Production
  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

fnfldn_9q6pgyvfuevp6ipjl9s8.jpeg

Сдав все экзамены, Алексей вырос от ведущего разработчика до архитектора проекта. При этом сертификация стала мощным средством как профессионального развития, так и наработки репутации в глазах заказчика.

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

Спасибо за внимание! Надеемся, что статья была для вас полезна.

© Habrahabr.ru