O que é o Modelo de Maturidade de Excelência em Engenharia?
Os engenheiros normalmente sabem onde estão os pontos fracos do código. O mais difícil é chegar a acordo, enquanto equipa, sobre quais os problemas mais importantes e em que ponto está a sua resolução. Com o Modelo de Maturidade de Excelência em Engenharia, a sua equipa avalia 12 práticas distribuídas por quatro grupos (Qualidade e Normas de Código, Arquitetura e Escalabilidade, Gestão da Dívida Técnica, e Colaboração e Capacitação em Engenharia) numa escala de cinco níveis, de Ad Hoc a Otimizado. Como cada nível está descrito, as avaliações transformam impressões vagas sobre a qualidade em algo concreto: revisões de código que apanham bugs mas não difundem conhecimento, ou dívida técnica que toda a gente conhece mas ninguém acompanha. Esta linguagem comum ajuda engenheiros e líderes a chegar a acordo sobre o que melhorar primeiro. Se o aplicar regularmente, verá se as mudanças que fez levaram as práticas a subir de nível.
Dimensões
Qualidade e Normas de Código
Com que consistência a equipa escreve código limpo, fácil de manter e bem revisto, orientado por normas partilhadas.
Consistência das Normas de Código
Com que consistência a equipa aplica as diretrizes de código partilhadas.
- Ad HocAs práticas de código variam muito; não se seguem normas partilhadas.
- EmergenteExistem algumas normas, mas são aplicadas de forma inconsistente.
- DefinidoAs normas estão documentadas e são geralmente seguidas.
- GeridoAs normas são aplicadas de forma consistente e revistas com regularidade.
- OtimizadoA cultura de qualidade de código é forte; as normas evoluem através da colaboração e das boas práticas.
Manutenibilidade do Código
A facilidade com que o código pode ser lido, compreendido, modificado e expandido.
- Ad HocO código é difícil de ler, navegar ou reutilizar.
- EmergenteForam feitas algumas melhorias, mas persistem problemas de manutenibilidade.
- DefinidoO código é, na sua maioria, compreensível e fácil de manter.
- GeridoO código é limpo, modular e previsível, com boas práticas de manutenibilidade.
- OtimizadoA manutenibilidade faz parte da cultura; as equipas melhoram e fazem evoluir proativamente a estrutura do código.
Qualidade das Revisões de Código
Até que ponto as revisões de código melhoram a qualidade e a aprendizagem da equipa.
- Ad HocAs revisões são raras, apressadas ou superficiais.
- EmergenteFazem-se revisões, mas variam muito em profundidade e utilidade.
- DefinidoAs revisões detetam problemas e melhoram a qualidade de forma fiável.
- GeridoAs revisões são construtivas, consistentes e melhoram tanto a qualidade como as competências da equipa.
- OtimizadoAs revisões são colaborativas, ricas em conhecimento e essenciais para a excelência em engenharia.
Arquitetura e Escalabilidade
Até que ponto a arquitetura do sistema é clara e quão bem este escala, funciona e gere o risco técnico.
Clareza da Arquitetura
Até que ponto a arquitetura do sistema está definida, documentada e é compreendida.
- Ad HocA arquitetura é pouco clara ou não está documentada.
- EmergenteExiste alguma documentação, mas é incompleta ou pouco clara.
- DefinidoA arquitetura está documentada e é compreendida pela maioria dos membros da equipa.
- GeridoA arquitetura orienta as decisões e evolui através de uma colaboração estruturada.
- OtimizadoA arquitetura é escalável, intencional e continuamente refinada com base em conclusões e aprendizagens.
Escalabilidade e Robustez
Capacidade do sistema para responder ao crescimento, às exigências de desempenho e às necessidades de fiabilidade.
- Ad HocO sistema tem dificuldades sob carga; o escalonamento não é planeado.
- EmergenteAlguns componentes escalam, mas persistem limitações.
- DefinidoO sistema suporta a carga habitual com um desempenho aceitável.
- GeridoO sistema escala de forma fiável e o desempenho é monitorizado e otimizado ativamente.
- OtimizadoA escalabilidade é um ponto forte; o sistema absorve o crescimento de forma tranquila e previsível.
Gestão do Risco Técnico
Até que ponto os riscos de engenharia são identificados, avaliados e mitigados.
- Ad HocOs riscos surgem tarde e causam perturbações significativas.
- EmergenteOs riscos são discutidos ocasionalmente, mas não são geridos de forma sistemática.
- DefinidoOs riscos são identificados no planeamento e tratados quando necessário.
- GeridoUma avaliação de riscos estruturada permite uma mitigação proativa.
- OtimizadoA gestão do risco está integrada em todos os processos de engenharia e evita problemas graves.
Gestão da Dívida Técnica
Com que visibilidade a dívida técnica é acompanhada, reduzida e relacionada com o seu impacto na entrega.
Visibilidade da Dívida
Como a dívida técnica é identificada, acompanhada e comunicada.
- Ad HocA dívida técnica está escondida e não é gerida.
- EmergenteHá alguma consciência da dívida, mas raramente é documentada.
- DefinidoA dívida é acompanhada e revista periodicamente.
- GeridoO backlog de dívida é priorizado e incluído no planeamento.
- OtimizadoA visibilidade e a prevenção da dívida são práticas centrais de engenharia.
Práticas de Redução da Dívida
Até que ponto a equipa trata e reduz a dívida técnica.
- Ad HocA dívida acumula-se sem qualquer intervenção.
- EmergenteA dívida é discutida, mas raramente resolvida.
- DefinidoA dívida é tratada quando é viável.
- GeridoA redução da dívida é proativa e faz parte do trabalho regular.
- OtimizadoA equipa mantém a dívida no mínimo graças a uma engenharia disciplinada e à melhoria contínua.
Consciência do Impacto
Compreensão de como a dívida técnica afeta a velocidade, a qualidade e o risco.
- Ad HocA equipa não relaciona a dívida técnica com os problemas de entrega.
- EmergenteHá alguma consciência, mas pouca ação.
- DefinidoO impacto da dívida é compreendido e influencia algumas decisões.
- GeridoO impacto da dívida orienta de forma consistente o planeamento e a priorização.
- OtimizadoUma cultura forte de consciência da dívida evita a sua acumulação e sustenta uma velocidade sustentável.
Colaboração e Capacitação em Engenharia
Até que ponto a equipa partilha conhecimento, alarga competências e dá aos programadores as ferramentas para fazerem um excelente trabalho.
Partilha de Conhecimento
Até que ponto o conhecimento e a experiência em engenharia são partilhados na equipa.
- Ad HocO conhecimento está isolado em silos; a dependência de poucas pessoas é elevada.
- EmergenteHá alguma partilha, mas de forma inconsistente.
- DefinidoO conhecimento é partilhado através de canais informais ou estruturados.
- GeridoO conhecimento circula com facilidade; a integração de novos membros é eficiente.
- OtimizadoCultura altamente colaborativa, com aprendizagem contínua e responsabilidade partilhada.
Amplitude e Flexibilidade de Competências
A capacidade da equipa para trabalhar em várias áreas do sistema.
- Ad HocSilos fortes criam estrangulamentos por dependência.
- EmergenteHá ocasionalmente desenvolvimento de competências cruzadas.
- DefinidoOs membros da equipa conseguem cobrir a maioria das áreas principais.
- GeridoGrande flexibilidade; a equipa adapta-se rapidamente às exigências do volume de trabalho.
- OtimizadoUma experiência profunda e abrangente em toda a equipa permite entregas rápidas e resilientes.
Capacitação dos Programadores
Qualidade das ferramentas, processos e ambiente que apoiam a produtividade dos programadores.
- Ad HocAs ferramentas estão desatualizadas ou são inconsistentes; o atrito é elevado.
- EmergenteHá melhorias em curso, mas persistem lacunas.
- DefinidoOs programadores têm ferramentas fiáveis que respondem às necessidades básicas.
- GeridoAs ferramentas são simples, eficientes e melhoradas de forma consistente.
- OtimizadoUma experiência de desenvolvimento de excelência permite um trabalho de engenharia rápido e de alta qualidade.
Quando utilizar essa avaliação de saúde
- Para definir um ponto de partida da maturidade técnica da sua equipa de engenharia em código, arquitetura e colaboração.
- Em retrospetivas trimestrais ou de lançamento, para acompanhar a evolução das práticas de engenharia.
- Quando chega um novo líder de engenharia que precisa de uma visão franca dos pontos fortes e das lacunas atuais.
- Antes de investir em ferramentas, refatorização ou mudanças de processo, para decidir onde o esforço terá mais impacto.
- Quando a equipa está a crescer e quer que as normas, a partilha de conhecimento e a arquitetura acompanhem esse crescimento.
Dicas e truques
- Peça a cada pessoa que avalie individualmente antes da discussão, para que as opiniões sinceras surjam antes de o pensamento de grupo se instalar.
- Dedique a maior parte do tempo às dimensões com maior dispersão de pontuações. A discordância mostra muitas vezes onde as pessoas veem o sistema de forma diferente.
- Encare os níveis como etapas e não como notas. Passar de Emergente a Definido é um progresso real, por isso reconheça-o.
- Escolha uma ou duas dimensões para melhorar até à próxima avaliação, em vez de tentar mudar tudo de uma vez.
- Repita a avaliação com uma cadência regular para que o progresso nas práticas de engenharia continue visível.