Архитектурно реконструиране и дизайн рефакторинг Как да го продавам клиент - Алекс и Вира

Архитектурният рефакторинг и всеки друг дизайн и рефакторинг на проекти е болезнена тема. Печалбата от рефакторинг е очевидна за нас - технически момчета като архитекти и разработчици, но трудно се продават и доказват тази идея на клиента. Основната причина: ние техническите момчета не знаем как да разговаряме с бизнесмени.

Основният проблем - комуникацията между технически и бизнесмени. Те говорят различни езици, но искат да постигнат едни и същи цели.

Ползите от рефакторинга са очевидни за вас, но не и за бизнесмените. Трябва да разделите архитектурно рефакторинг на 6 задължителни стъпки и да следвате този план:

  • Идентифицирайте основната причина за възникване на архитектурата
  • Определете какви промени трябва да се направят
  • Обосновка на бизнес казуса
  • План за рефакторинг на архитектура на високо ниво
  • Създайте времева линия
  • Представете своя случай

Определете основната причина за архитектурата за рефакторинг

Тази стъпка е най-често срещана за нас, както и за технологичните момчета. Нека разгледаме няколко примера.

Създаването на приложение се проваля всеки път, когато някой извърши промени.

Има няколко причини, поради които това може да бъде:

  • Компонентите на приложението са твърде плътно свързани и зависят един от друг
  • Компонентите на приложението нямат правилното ниво на гранулиране и изолация
  • Липса на единичен тест
  • Липса на SDLC процеси и CI / CD тръбопроводи

Още един пример. Разгръщането на приложения отнема много време. По време на изпълнение приложението има проблеми с производителността.

Основната причина може да бъде:

  • Това е монолитно приложение и расте бързо. Става твърде голям за едно приложение
  • Приложението е твърде голямо и консумира цял процесор и памет
  • Приложението е сложно и пише неефективен начин

Определете какво трябва да се направи рефакторинг

Втората стъпка е малко по-сложна, но не трябва да е трудна за разработчиците, като се започне от по-високо и по-високо ниво. Всички ние сме добри технически специалисти и знаем какво трябва да се направи. В този момент ние правим често срещаната грешка и бягаме с това предложение към клиента и говорим с клиента нека го направим.

Но ние сме интелигентни архитекти и ще следваме 6 стъпки една по една.

Въз основа на предишния пример с монолитно приложение, решението е очевидно. Разделяйте големи и сложни приложения на по-малки, независими разгъваеми модули. Това може да бъде движение към архитектура, ориентирана към услугите или микросервиз.

Обосновка на бизнес казуса

Нека разделим тези две фази: техническа и бизнес обосновка.

Техническата обосновка изглежда очевидна за нас. Разделяне на монолитно приложение на по-малки услуги, може да бъде:

  • Компонентите са по-отделени
  • Проблеми със сглобяването не толкова често
  • Всяка малка услуга консумира по-малко памет и има по-добра производителност
  • Отделни услуги могат да бъдат внедрени по-бързо и независимо

Обосновка на бизнеса - тази стъпка е много важна и често се прескача от технически момчета. Трябва да помните какво е важно за бизнеса и за управление на бизнеса. Правилно - това са пари!

Накратко, ако дизайнерският рефакторинг не дава никаква стойност за бизнеса, няма смисъл да го правите.

Въз основа на нашия пример можете да предложите на клиента си следните бизнес стойности:

  • Новата функционалност може да бъде доставена по-бързо, да се намали времето за пускане на пазара
  • Качеството на приложението ще бъде по-добро, ще намали разходите за поправяне на грешки, в резултат удовлетвореността на клиентите е по-добра
  • Намаляване на разходите за разработка и внедряване
  • По-лесно да намерите мотивирани и квалифицирани разработчици

План за рефакторинг на архитектура на високо ниво

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

Изготвяйки плана за рефакторинг, трябва да отговорите на следващия въпрос:

  • Каква е целта на тази итерация?
  • Каква е техническата и бизнес стойност за тази итерация?
  • Как да намалите продължителността на итерацията?

Създайте времева линия за рефакторинг на архитектура

Много важна стъпка - инвестирайте време за това упражнение. Всеки мениджър и човек от света на бизнеса какво да знаем отговаря на два въпроса:

Опитайте се да разделите архитектурата, рефакторинг на малки итерации. Всяка итерация трябва да носи някои технически и бизнес стойности. Трудно е да се продаде рефакторинг с продължителност от няколко години и милиони долари без междинни резултати.

Всяка фаза трябва да има продължителност или диапазон от приблизителни оценки и брой ресурси. Тази информация дава на вашите мениджъри визия за разходите за рефакторинг.

Трябва да събирате измервания и KPI преди и след повторната итерация, за да покажете подобрения и ползи след всеки етап. Например: измервайте времето за внедряване на монолитно приложение преди рефакторинг и време за внедряване след разрязване към услуги.

Представете своя случай

Преди да започнете работа, представете и утвърдете идеята първо с директния си мениджър. Удостоверяването на трети страни винаги е добро, особено ако е бизнес човек. Вероятно вашият мениджър знае някакъв бизнес контекст, който ви помага да коригирате плановете за рефакторинг за бизнеса.

Трябва да знаете как да отговорите на класическия въпрос.

Обикновено, когато представяте архитектурно рефакторинг към бизнеса, може да бъдете помолени. Защо се нуждаем от рефакторинг? Преди година похарчихме много пари за архитектура и дизайн и сега имаме проблеми.

Класическият въпрос има класически отговор. Това решение беше достатъчно добро преди 1 година, но бизнесът ви расте, броят на потребителите и заявките растат. Архитектурата трябва да се коригира с променящия се бизнес.

Следващ съвет. Не карайте хората да се паникьосват - представяйте това спешно, а не с паника. Просто доставете информация, че имаме 3–6 месеца за рефакторинг, но трябва да започнете възможно най-скоро.

Не на последно място. Представянето на вашия случай обучава хората да не са виновни. Никога не критикувайте хората, в този случай можете да срещнете препятствия от тяхна страна. Използвайте тази възможност, за да образовате хората и да покажете ползи и бизнес ценности. Не търсете виновните, търсете възможности.

резюме

  • Рефакторингът е скъп. Трудно е да го продадеш бизнес
  • Архитектурното рефакторинг е не само техническа задача, но и продажбата на вашата идея
  • Помнете за стойността и обосновката на бизнеса
  • Лесно продават малки рефакторинг често, отколкото големи веднъж

Още статии и съвети за меки и твърди архитектурни умения.

Честит рефакторинг!

Първоначално публикувано на http://alexandvira.com на 15 март 2020 г.