К основному содержимому
#Processes

Architecture Modernization: Aligning Software, Strategy, and Structure - Nick Tune

#Processes #Management #Performance #Engineering #Software #SoftwareDevelopment

Интересное выступление про модернизацию софта в крупных компаниях, которые сталкиваются со сложностями в legacy системах:) У таких компаний зачастую есть крутые преимущества: доля рынка, репутация бренда и лояльность клиентов. Поэтому есть смысл модернизировать системы и автор говорит с определения

Architecture Modernization is about converting architecture from a competitive disadvantage to a competitive advantage. И дальше его подход содержит три пункта

  1. Architecting for flow - проектирование для улучшения потока создания ценности и взаимосвязи изменений
  2. 5 Essential tools for architecture modernization - инструменты для модернизации архитектуры
  3. Kickstarting and enabling architecture modernization - как начать модернизацию

В первой части автор говорит про stream-aligned команды из team topologies, которые формируют вокруг value-stream. Отдельно надо отметить, что иногда между системами команд бывают зависимости, которые влияют на flow. Поэтому все и мечтают создавать автономные команды (про это было много в докладе, о котором я рассказывал вчера):)

Дальше спикер говорит про fullstack модернизацию по всем уровням

  • User interface - modernize the UI to enable a better UX improving user happiness and productivity
  • Software - modernize tech and alignment to domain model for code that is easier to understand and evolve.
  • Domain model (conceptual) - modernize the conceptual domain model, creating a better shared understanding and language improving collaboration & innovation
  • Domain - modernize the domain by adding new and better capabilities which create new business and customer value.

Дальше речь идет про инструменты:

  1. Активное слушание - оно помогает понять бизнес-цели и проблемы заинтересованных сторон
  2. Impact mapping - в этом подходе создается связка: strategic business objectives - actor - impact - deliverables. Подробнее можно почитать в книге "Impact mapping", про которую я писал раньше
  3. Wardley mapping - здесь компоненты архитектуры связаны с цепочкой создания ценности, а также стадиями жизненного цикла продукта. Интересная концепция, про которую я узнал впервые и которую можно использовать для определения текущего состояния и эволюции компонентов архитектуры.
  4. Event storming - это интересный подход lkz проведения воркшопов для коллаборативного изучения сложного бизнес домена ... Подробнее можно прочитать в моем посте
  5. Modernization strategy selector - график для обсуждения вариантов модернизации через раскладывание по осям platform modernization и product, domain, software modernization В конце перечисления автор еще вспоминает CodeScene - инструмент для поведенческого анализа кода.

Дальше автор рассказывает, а с чего стоит начать модернизацию и показывает матрицу 2x2 (риски - эффект). В итоге, у нас есть

  1. "низковисящие фрукты" (риск небольшой, а эффект значительный)
  2. проекты, для тех, кто уклоняется от риска (риск и эффекты незначительные)
  3. проекты, для тех, кто готов к большим ставкам (риски и эффекты большие)
  4. "последняя паста в тюбике" (рисковые проекты с низким эффектом) - такими часто вообще не занимаются никогда:)

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

#Processes #Management #Performance #Engineering #Software #SoftwareDevelopment