Refatoração de arquitetura e refatoração de design Como vendê-lo Cliente - Alex e Vira

A refatoração de arquitetura e qualquer outra refatoração de design e projeto é um tópico doloroso. O lucro da refatoração é óbvio para nós - técnicos, como arquitetos e desenvolvedores, mas difíceis de vender e provar essa idéia para o cliente. O principal motivo: nós, técnicos, não sabemos como conversar com empresários.

O principal problema - comunicação entre técnicos e empresários. Eles falam idiomas diferentes, mas querem alcançar os mesmos objetivos.

Os benefícios da refatoração são óbvios para você, mas não para os empresários. Você deve dividir a refatoração da arquitetura em seis etapas obrigatórias e seguir este plano:

  • Identifique a causa raiz da arquitetura para o problema
  • Determinar quais alterações devem ser feitas
  • Justificativa de caso de negócios
  • Plano de refatoração de arquitetura de alto nível
  • Crie uma linha do tempo
  • Apresente seu caso

Identifique a causa raiz da arquitetura para refatoração

Essa etapa é mais comum para nós e para os técnicos. Vejamos alguns exemplos.

A criação do aplicativo falha sempre que alguém confirma alterações.

Existem algumas razões pelas quais isso pode ser:

  • Os componentes do aplicativo são muito acoplados e dependem um do outro
  • Os componentes do aplicativo não possuem o nível certo de granularidade e isolamento
  • Falta de teste de unidade
  • Falta de processos SDLC e pipelines de CI / CD

Mais um exemplo. As implantações de aplicativos levam muito tempo. Em tempo de execução, um aplicativo tem problemas de desempenho.

A causa raiz pode ser:

  • É uma aplicação monolítica que cresce rapidamente. Está ficando muito grande para um único aplicativo
  • Aplicativo muito grande e consumindo toda a CPU e memória
  • O aplicativo é complexo e escreve de maneira ineficiente

Determinar o que a refatoração deve ser feita

O segundo passo é um pouco mais complicado, mas não deve ser difícil para os desenvolvedores a partir do nível sênior e superior. Todos somos bons especialistas técnicos e sabemos o que deve ser feito. Neste momento, cometemos o erro comum e executamos essa proposta com o cliente e falamos com o cliente, vamos fazê-lo.

Mas somos arquitetos inteligentes e seguiremos seis etapas, uma a uma.

Com base no exemplo anterior com um aplicativo monolítico, a decisão é óbvia. Divida aplicativos grandes e complexos em módulos implementáveis ​​menores e independentes. Pode ser um movimento para a arquitetura orientada a serviços ou de microsserviço.

Justificativa de caso de negócios

Vamos dividir essas duas fases: justificativa técnica e comercial.

A justificativa técnica parece óbvia para nós. Dividindo aplicativos monolíticos em serviços menores, pode ser:

  • Os componentes estão mais dissociados
  • Problemas com a compilação não tão frequentemente
  • Cada serviço pequeno consome menos memória e tem melhor desempenho
  • Serviços separados podem ser implantados com mais rapidez e independência

Justificativa comercial - esta etapa é muito importante e geralmente é ignorada por técnicos. Você deve se lembrar do que é importante para os negócios e direcioná-los. Correto - é dinheiro!

Para encurtar a história, se a refatoração do seu design não agregar valor aos negócios, não faz sentido fazê-lo.

Com base em nosso exemplo, você pode oferecer ao seu cliente os próximos valores comerciais:

  • Novas funcionalidades podem ser entregues mais rapidamente, reduzindo o tempo de colocação no mercado
  • A qualidade do aplicativo será melhor, reduzirá o custo da correção de erros, como resultado, a satisfação do cliente será melhor
  • Redução de custos de desenvolvimento e implantação
  • Mais fácil encontrar desenvolvedores motivados e qualificados

Plano de refatoração de arquitetura de alto nível

Um plano de refatoração deve fornecer visão clara e granularidade. Cada iteração deve mostrar alterações de arquitetura e design.

Preparando o plano de refatoração, você deve responder à próxima pergunta:

  • Qual é o objetivo dessa iteração?
  • Qual é o valor técnico e comercial para esta iteração?
  • Como minimizar a duração da iteração?

Criar uma linha do tempo para refatoração de arquitetura

Etapa muito importante - invista tempo para este exercício. Todo gerente e pessoa do mundo dos negócios o que saber responde em duas perguntas:

Tente dividir a arquitetura refatorando pequenas iterações. Cada iteração deve trazer alguns valores técnicos e de negócios. É difícil vender refatoração com a duração de alguns anos e milhões de dólares sem resultados intermediários.

Cada fase deve ter uma duração ou faixa de estimativas e número de recursos. Essas informações fornecem aos seus gerentes uma visão sobre os custos de refatoração.

Você deve coletar medições e KPIs antes e depois da refatoração da iteração para mostrar melhorias e benefícios após cada estágio. Por exemplo: meça o tempo de implantação do aplicativo monolítico antes da refatoração e o tempo de implantação após acessar os serviços.

Apresente seu caso

Antes de começar o negócio, apresente e confirme a ideia com seu gerente direto primeiro. A validação de terceiros sempre é boa, principalmente se for uma pessoa de negócios. Provavelmente, seu gerente conhece algum contexto de negócios que ajuda a ajustar os planos de refatoração para os negócios.

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

Geralmente, quando você apresenta a refatoração de arquitetura para os negócios, pode ser solicitado. Por que precisamos de refatoração? Gastamos há um ano muito dinheiro em arquitetura e design e agora temos problemas.

A pergunta clássica tem uma resposta clássica. Esta solução foi boa o suficiente há 1 ano, mas sua empresa está crescendo, o número de usuários e solicitações está crescendo. A arquitetura deve ser ajustada com a mudança de negócios.

Próximo conselho. Não deixe as pessoas em pânico - apresente isso com urgência, não com pânico. Apenas forneça as informações que temos de 3 a 6 meses para refatoração, mas que devemos iniciar o mais rápido possível.

Por último mas não menos importante. Apresentar seu caso ensina as pessoas a não culpar. Nunca critique as pessoas, neste caso, você pode encontrar obstáculos do lado deles. Use esta oportunidade para educar as pessoas e mostrar benefícios e valores de negócios. Não procure os culpados, procure oportunidades.

Sumário

  • A refatoração é cara. É difícil vender negócios
  • Refatoração de arquitetura não apenas tarefa técnica, mas também vender sua ideia
  • Lembre-se do valor e justificativa do negócio
  • As fábricas vendem pequena refatoração frequentemente do que grande uma vez

Mais artigos e conselhos sobre habilidades de arquitetura simples e complexas.

Feliz refatoração!

Publicado originalmente em http://alexandvira.com em 15 de março de 2020.