Times técnicos responsáveis por sistemas grandes geralmente implementam alguma rotina de “testes de regressão amplos”, geralmente a partir da interface, como forma de mitigar riscos de problemas em produção. Esses testes, algumas vezes automatizados, outras vezes manuais, costumam ter dois tipos de efeitos sobre os times de desenvolvimento. Alguns times contam com os testes de […]
Primeiros testes para códigos complexos
Escrever testes de unidade durante o desenvolvimento de código novo nem sempre é tarefa fácil. Muitas vezes, dependendo da complexidade, é difícil antecipar, de maneira eficiente, a estrutura final do software. Diversas decisões de design precisam ser feitas enquanto o código é escrito e, com frequência, elas são revistas, mais de uma vez, antes que […]
O efeito Kanban
Já fui cético quanto a Kanban, confesso. Para mim era apenas um quadro na parede, mais uma tendência cool de agilidade usando post-its. Acabava confundindo o método com o quadro e não era claro para mim como isso poderia melhorar a entrega do meu time e gerar resultado efetivo. Minha percepção começou a mudar(e rápido) […]
O dilema dos “testes em códigos legados”
Antes de fazer qualquer modificação em um código, deveríamos ter testes. Entretanto, para ter testes, precisamos, antes, fazer modificações no código. (Michael Feathers)
O que temos a aprender com a FEMA, Federal Emergency Management Agency
Em tempos onde mais aplicações estão sendo entregues com baixa confiança o que podemos aprender com a FEMA? Resumidamente falaremos do papel do FEMA. Os Estados Unidos possui uma agência cujo objetivo é coordenar as respostas a desastres naquele país. Quando um estado declara estado de emergência ele pode solicitar diretamente ao presidente da república […]
Algoritmo para modificação de código legado
Identificar os pontos de mudança Identificar primeiros pontos para teste Romper dependências Escrever testes Fazer mudanças e refatorações
Pare de se enganar com estimativas e aprenda a gerenciar incertezas
O desafio da previsibilidade Estimativas representam o esforço legítimo de tentar prever o prazo de entrega e o custo de desenvolvimento de um software. Estas previsões acabam sendo pré-requisitos devido ao modo como planejamos nossa estratégia, que geralmente exige um orçamento prévio e um plano de negócio com um cronograma definido. Para projetos aos quais […]
Diferenças entre modificar um sistema legado e um sistema bem desenvolvido e mantido.
Em bases de código grandes, toda modificação exige do desenvolver algum tempo “aprendendo” sobre o trecho de código que irá ser alterado. Em sistemas bem desenvolvidos e mantidos, depois do “esforço inicial” para entender o código, fazer a modificação é tarefa fácil e consome pouco tempo. Além disso, o desenvolvedor fica mais confiante. Em sistemas […]