Aprender a fazê-lo bem pode melhorar a colaboração e a coordenação entre os departamentos, tornando todos mais felizes e produtivos.
Como desenvolvedor web principal no Avance Network e por muito tempo Tech Lead, aprendi que estimativas precisas eram essenciais para que uma empresa fosse saudável e produtiva. Ao longo dos anos, passei boa parte do tempo desenvolvendo minhas teorias sobre por que estimativas e colapsos são tão importantes, e elaborando minha própria metodologia para a melhor maneira de fazê-las.
Abaixo, tento destilar as lições que aprendi para que outros possam experimentar e melhorar minhas técnicas. Agora, devo ser claro, o conselho abaixo é o que funciona para mim. Tenho certeza que há diferentes abordagens que podem funcionar melhor para os outros. Sinta-se livre para compartilhar sua abordagem favorita nos comentários.
Por que devs são solicitados para estimativas?
O impulso para fornecer uma estimativa para o trabalho de desenvolvimento na maioria das vezes vem de partes interessadas não desenvolvedoras em sua organização. Uma estimativa ajuda a planejar e coordenar lançamentos de produtos, sincronizar o trabalho com outras equipes, garantir que os recursos sejam alocados adequadamente para atender às necessidades do produto e, claro, permitir o faturamento preciso dos clientes quando sua equipe foi contratada para fazer um trabalho para uma empresa externa.
Dada essa lista, é claro que há muitas razões legítimas pelas quais você será solicitado para uma estimativa. E devido a uma série de razões (culpa, boas intenções, pressão do solicitante de estimativa) você pode até dar uma estimativa de melhor palpite. No entanto, como muitos de nós aprendemos, embora seja fácil dar um número a alguém, é muito mais difícil dar um número que seja de alguma forma preciso. E devido às dependências que outros colocam no número fornecido, uma estimativa ruim às vezes pode causar mais danos do que nenhuma estimativa.
O que uma boa estimativa fornece
Por força de seus pré-requisitos (e o nível de organização e planejamento necessários), uma estimativa precisa permitirá que você entregue seu trabalho com um alto nível de qualidade no menor período de tempo. Ele vai ajudá-lo a evitar falsas partidas e a dor de ter que jogar fora o código desnecessariamente. Isso ajudará a minimizar as mudanças de escopo. Ele permitirá que você se estruture e planeje seu trabalho da maneira mais eficiente possível, e também ajudará todas as outras partes interessadas mencionadas na seção anterior imensamente.
Regras de Estimativa
Então, como você deve fazer estimativas? A técnica de estimativa é uma decisão pessoal que cada dev tem que tomar para si mesmo. Recomendações serão feitas abaixo para diferentes técnicas que trabalharam para diferentes pessoas no passado para chegar à estimativa final.
Dito isto, aqui estão algumas diretrizes que são importantes a seguir (independentemente da técnica de estimativa).
Nunca escreva código a menos que você tenha uma boa compreensão de qual funcionalidade é necessária
Embora isso não seja algo que se relacione diretamente com a realização da estimativa real, ele está no topo da lista porque é um fator tão importante na escrita de software de qualidade que realmente faz o que o cliente precisa que ele faça. Além do benefício para outros que uma estimativa precisa fornece, o principal artefato que uma estimativa precisa lhe dá é a confiança de que você sabe no que está trabalhando, que você pensou sobre as diferentes questões que podem surgir com arquitetura e implementação, e que você levou isso em conta na quebra do seu trabalho e na elaboração da estimativa.
Sempre estimar uma especificação
Uma estimativa que não se baseia em uma forte compreensão dos requisitos funcionais provavelmente resultará em uma estimativa imprecisa, pois não responderá por toda a funcionalidade necessária. Mesmo que tenha havido reuniões para falar sobre o que é necessário, a menos que seja escrito e todas as partes interessadas tenham concordado com seu conteúdo, deve-se supor que uma das partes interessadas entenda os requisitos de forma diferente das outras.
Se a especificação tiver perguntas sem resposta, ou detalhes faltantes, não se comprometa com uma estimativa ou trabalhe nessa seção
Uma parte importante do processo de escrita de especificações é revisar a especificação e fazer perguntas conforme necessário. Aproveite para cobrir casos de borda e detalhes de implementação que impactarão a funcionalidade. Chame seções que estão faltando detalhes importantes (estas são muitas vezes as seções mais complicadas na especificação).
A escrita de especificações leva tempo, e às vezes há requisitos que não são compreendidos até mais tarde em um projeto. Isso é bom e aceitável. A consequência disso é que as seções incompletas na especificação não podem ser dadas uma estimativa precisa.
Se o estimador não tiver revisado completamente a especificação, a estimativa não será precisa
Sem revisar a especificação, o estimador simplesmente não está devidamente equipado para fazer uma estimativa para completar a funcionalidade que é exigida pelo cliente. Não há uma maneira real de contornar isso — chegar a uma estimativa nessas circunstâncias tem uma chance muito pequena de realmente se relacionar com precisão com o trabalho que precisa ser feito.
O desenvolvedor que está fazendo o trabalho deve executar a estimativa
Uma estimativa que é feita por alguém que não seja a pessoa que estará fazendo o trabalho é muito mais difícil de acertar. Mesmo que a estimativa seja baseada em uma especificação completa que o estimador entende, ela ainda terá algumas grandes deficiências:
Cada desenvolvedor trabalha em um ritmo diferente, então as estimativas de um dev normalmente não serão transferíveis para um segundo desenvolvedor.
Cada desenvolvedor vai quebrar e planejar seu trabalho de forma diferente.
Diferentes devs possuem diferentes conjuntos de conhecimento de domínio, o que também torna o tempo estimado para aprender/entender as consequências muito diferentes para mudanças (e se você não tiver o conhecimento do domínio, certifique-se de explicar o tempo extra necessário em sua estimativa também).
Se o desenvolvedor não fizer a estimativa, eles perderam o pass
.png)
.png)
.png)
.png)