O trabalho de desenvolvimento de software envolve diferentes etapas. Entre elas, vou citar algumas, bem como os respectivos pontos de contato (principais):

  • Definição de requisitos – Arquitetura (development)
  • Formação de time(s) – Gestão
  • Detalhamento de escopo de desenvolvimento – Arquitetura (development) /Time
  • Escopo dos testes/validação – Time/Arquitetura (test)
  • Estimativas de esforço – Time
  • Execução – Time
  • Testes / Validação – Time/Arquitetura (Test)

Durante essas diferentes fases é preciso garantir que o fluxo de informação (conhecimento) não seja quebrado de modo a proporcionar o devido entendimento do que se espera ao final de todo esse processo.

Normalmente os times de desenvolvimento são a linha de frente para a entrega das funcionalidades para o cliente solicitante. E acabam por ser o foco das atenções para garantir que não hajam problemas durante a execução do projeto.

Ainda que esta expectativa não esteja equivocada; isto é, sobre se esperar que o time de desenvolvimento se empenhe para entregar o projeto com qualidade (requisitos devidamente implementados, dentro do prazo e dos custos esperados), é preciso entender (e promover) uma interação constante entre o time e a área de arquitetura (requisitos e escopo de teste).

team

Esta interação entre os diferentes times (desenvolvimento x arquitetura) promove:

  • A garantia do entendimento dos requisitos (não somente durante as cerimônias de kick-off, mas também durante todo o andamento/execução do projeto)
  • O aumento da qualidade/detalhamento do escopo do projeto (por exemplo, documento de User Stories, ou outro documento utilizado pela organização)
  • A garantia do alinhamento entre desenvolvimento e arquitetura (por meio de contato constante)
  • O esclarecimento das eventuais dúvidas para a implementação (interpretação dos requisitos, detalhes sobre a lógica de negócios, etc.)
  • A garantia da devida cobertura dos testes e validação dos requisitos
  • O incremento da capacitação e maturidade do time por meio da troca constante de informações e experiências
  • Condições adequadas para Feedback (online/real time) do time de desenvolvimento para arquitetura sobre as dificuldades encontradas
  • Um melhor tratamento (avaliação e planejamento de ações) dos riscos e issues encontrados no decurso da implementação

Com o estabelecimento dessa cultura interativa e iterativa é possível evitar potenciais surpresas quanto às expectativas para a funcionalidade em desenvolvimento e evitar situações de ‘blame game‘ que, além de não agregar, acabam por ‘quebrar’ o relacionamento entre equipes que precisam se completar.

rca

Então, em resumo

A promoção de uma forte interação entre pessoas (e times) responsáveis por diferentes partes do processo de desenvolvimento acaba por fortalecer a organização e criar um ambiente mais construtivo e produtivo.

Giovani De Faria

 

Anúncios