Vendemos Refatoração de Arquitetura a um cliente ou qual é o problema dos desenvolvedores

A refatoração de arquitetura ou design é sempre um problema doloroso em um projeto. Os benefícios da refatoração são óbvios para nós especialistas técnicos, mas geralmente é difícil para o cliente vender e fundamentar essa ideia. O principal motivo é que nós, especialistas técnicos, não sabemos conversar com os negócios.

imagem

O principal problema é a comunicação entre técnicos e pessoas que ganham dinheiro. Eles falam idiomas diferentes, embora estejam tentando resolver os mesmos problemas.

Este artigo é uma tradução do original do inglês: Refatoração de arquitetura e refatoração de design Como vendê-lo cliente . Se você tem colegas que não falam russo, eles podem ler o original na minha bulg.

Os benefícios da refatoração são óbvios para todos os profissionais técnicos, mas geralmente não podemos transmitir essa ideia aos negócios. Por que isso acontece? Ignoramos algumas etapas menores, mas muito importantes para os negócios.

Dividimos todo o processo em 6 etapas simples, mas necessárias:

  1. Determine a causa do problema.
  2. Decida quais alterações precisam ser feitas.
  3. Justificação da decisão
  4. Faça um plano de refatoração
  5. Criar roteiro
  6. Apresente sua decisão

Encontre a causa do problema


Esta etapa é bastante familiar para nós, como especialistas técnicos. Considere isso com exemplos reais.

A construção falha após quase todas as confirmações.

Existem várias razões pelas quais isso pode acontecer:

  • Os componentes do aplicativo estão intimamente relacionados e dependem um do outro
  • Os componentes do aplicativo não possuem isolamento adequado
  • Falta de testes de unidade
  • Falta de processos SDLC e CI / CD

Mais um exemplo. A implantação do aplicativo leva muito tempo e também são observados problemas de desempenho.

Os principais motivos podem ser:

  • Um aplicativo monolítico cresce rápido e se torna muito grande para um aplicativo
  • O aplicativo é grande e consome muita RAM e energia do processador.
  • O aplicativo é complexo e não está bem escrito

Decida quais alterações precisam ser feitas.


O próximo passo é um pouco mais complicado, mas ainda familiar e descomplicado para desenvolvedores seniores. Somos todos bons especialistas técnicos e sempre sabemos o que precisa ser aprimorado. E, neste momento , cometemos um erro e corremos para o cliente com as palavras, vamos fazê-lo .

Mas somos arquitetos inteligentes e seguiremos nosso plano de 6 etapas passo a passo.

Com base no exemplo anterior com um aplicativo monolítico, as soluções são óbvias. Divida um aplicativo grande e complexo em módulos menores e independentes. Essas são as primeiras etapas para uma arquitetura orientada a serviços ou microsserviço.

imagem

Justificação da decisão


Dividiremos esta etapa em duas fases: justificativa técnica e comercial .

A lógica técnica parece lógica para nós. Divida o monólito em serviços menores, como resultado:

  • Componentes mais díspares
  • Problemas de compilação não serão tão frequentes
  • Como resultado, pequenos serviços consomem menos RAM e energia do processador - melhor desempenho
  • Serviços separados podem ser implantados mais rapidamente e independentemente um do outro

A justificação do ponto de vista comercial é uma etapa muito importante que os especialistas técnicos costumam esquecer. Você deve se lembrar do que é importante para os negócios. Isso mesmo - é dinheiro .

Em resumo: se a refatoração não beneficiar os negócios - não faz sentido fazê-lo.

Com base em nosso exemplo, você pode oferecer ao cliente os seguintes benefícios:

  • Novos recursos serão desenvolvidos mais rapidamente
  • A qualidade do aplicativo será melhor, como resultado, custos mais baixos para correção de bugs e um usuário satisfeito do aplicativo, o que também afeta positivamente os negócios
  • Custos reduzidos de desenvolvimento e implantação
  • É mais fácil encontrar profissionais motivados e experientes, prontos para trabalhar com o projeto.

Plano de refatoração


O plano deve ser claro e detalhado. Cada iteração deve ser claramente descrita e todas as alterações de arquitetura e design devem ser documentadas.

imagem

Crie seu plano, você deve responder às seguintes perguntas:

  • Qual é o objetivo dessa iteração?
  • Qual é o valor técnico e comercial dessa iteração?
  • Como diminuir o tempo de iteração?

Roteiro


Um passo muito importante . Aproveite o tempo para fazer isso se você realmente deseja vender refatoração para uma empresa.

Todo gerente e empresário quer saber as respostas para duas perguntas:

  • Quanto isso custa?
  • Quanto tempo vai demorar?

Tente dividir a refatoração em pequenas iterações. Cada iteração deve trazer valor técnico e comercial. É muito difícil vender refatoração por anos e custar milhões de dólares sem resultados intermediários.

Cada iteração deve conter informações sobre a duração e o número de especialistas necessários para isso. Essas informações ajudarão o gerente a responder a duas perguntas básicas um pouco mais altas.

Colete métricas do projeto antes e depois da refatoração a cada iteração. Isso ajudará você a mostrar o valor técnico e comercial que essa iteração trouxe.

Eu apresento minha decisão


Antes de decidir sua empresa, verifique com seu gerente imediato. Uma vista lateral é sempre boa, principalmente se for do lado comercial. Talvez o seu gerente tenha mais contexto e o ajude a mudar o plano de acordo com as expectativas dos negócios.

Você precisa saber como responder à pergunta clássica.

Geralmente, quando você apresenta refatoração arquitetônica, uma empresa pode perguntar. Por que precisamos de refatoração? No ano passado, gastamos dinheiro suficiente em arquitetura e agora temos problemas novamente.

Há uma resposta clássica para a pergunta clássica. Essa solução arquitetônica era boa há um ano, mas os negócios estão crescendo e mudando, e a arquitetura deve mudar com ela.

Dica número 2. Não deixe seu cliente em pânico. Forneça informações como urgentes, mas não como desastres. Diga que você tem seis meses para refatorar, mas precisa iniciá-lo hoje.

Finalmente . Ao apresentar sua decisão, tente educar as pessoas, sem culpar. Lembre-se de que, ao culpar as pessoas, você encontrará resistência delas. Você deve procurar maneiras de resolver problemas, não os culpados.

Finalmente


  • A refatoração é cara e difícil de vender para as empresas
  • A refatoração arquitetônica não é apenas um problema técnico, ainda precisa ser vendida para uma empresa
  • Lembre-se dos benefícios da refatoração para o seu negócio.
  • É sempre mais fácil vender pequenas refatorações, mas geralmente grandes, mas uma vez

Você pode encontrar mais artigos sobre arquitetura e soft skills de arquitetura no recurso original.

Boa refatoração para todos!

All Articles