Saiba por que fazer estimativa de software e quais as melhores condutas para ser mais preciso
Prática comum em projetos de escopo fechado, o valor das estimativas de software já não é unanimidade no universo da agilidade. Isso porque fatores como maturidade do time, conhecimento sobre o que precisa ser feito e fatores externos influenciam no resultado da estimativa. E, não raro, ela fracassa no seu objetivo.
Mas será que isso a invalida? De forma alguma. Uma boa estimativa de software oferece uma visão nova em relação ao nível de esforço para desenvolver cada item, o que embasa uma avaliação de sua prioridade e, logo, a tomada de decisão do PO.
Mais que isso: uma boa estimativa pode até reduzir o tempo do projeto. E quem fala aos céticos são Ken Schwaber e Jeff Sutherland, fundadores do Scrum, que revelam em uma entrevista que muitos confundem estimativa com compromissos e que, de fato, as estimativas devem ser usadas ao fazer compromissos.
Para mostrar seu ponto, Sutherland menciona estudo que descobriu o que ninguém esperava: times scrum que evitavam as estimativas tiveram maiores tempos de entrega do que equipes que usavam estimativas baseadas em escopo.
Dados como esses indicam que a estimativa de software pode ser relevante, ainda que não limitante, principalmente em projetos grandes e complexos, que exigem das equipes mais cuidado para cumprir prazos e orçamento planejados.
Saiba mais: Agile: dá para manter em projetos de escopo fechado?
Então como tornar as estimativas mais efetivas, para que elas mostrem todo o seu valor? Neste artigo, vamos abordar a importância das estimativas de software, as boas práticas ao estimar e as principais técnicas usadas para essa abordagem.
Por que fazer estimativas de software?
Independente do escopo e da metodologia ágil aplicada, a estimativa de software ainda é uma prática muito valiosa e bastante útil porque fornece informações relevantes ao projeto. Entre as principais razões para adotá-la, destacamos:
- Auxilia na tomada de decisões estratégias no gerenciamento de projetos, uma vez que ajuda a mitigar os riscos;
- Oferece suporte à análise de qualidade, desempenhando um papel fundamental na antecipação de melhorias, inclusive sinalizando precocemente a necessidade de correções ou problemas técnicos;
- Promove o trabalho em equipe e o espírito colaborativo no time, ao envolver todos os profissionais nas estimativas;
- Aumenta a possibilidade de bons resultados, à medida que as estimativas são claras e buscam assertividade.
- Facilita a otimização dos recursos e esforços, economizando tempo e custos para serem empregados em outras atividades.
Erros e consequências de estimativas ruins
Quando se trata de estimativas de softwares, os gerentes tendem a ser muito otimistas ou muito pessimistas, o que pode acarretar em uma timeline totalmente desalinhada.
Praticar a estimativa de cima para baixo em nível macro e focar em algumas métricas básicas pode ajudar os líderes a obter mais controle de seus projetos e desenvolver cenários de desenvolvimento realistas.
Entre os 2 principais erros cometidos na hora de estimar e que podem trazer consequências ruins, destacam-se.
1. Não aproveitar dados históricos de projetos semelhantes
Especialmente no que diz respeito ao pessoal, o que pode ser útil para estimar com precisão, o tamanho e o cronograma de um projeto. Um bom planejamento é a chave para o desenvolvimento de software bem-sucedido - e os dados históricos desempenham um papel importante no planejamento e nas estimativas eficazes.
2. Confundir estimativas com compromissos, valores-alvo ou objetivos
Uma estimativa é baseada em uma análise quantitativa do que provavelmente acontecerá. Dessa forma, as metas e estimativas devem ser avaliadas independentemente para ver se estão alinhadas. As estimativas sempre devem ser usadas como entrada antes de fazer compromissos de custo e cronograma.
Leia também: Fábrica de software é a solução para seu projeto?
Ao invés de abandonar a estimativa de software, as organizações devem se concentrar em estimar melhor. Isso resultará em projetos que atendam às expectativas dos gerentes e sejam entregues dentro do prazo e do orçamento.
Ações pré-projeto para evitar problemas que impactem na estimativa
Estimativas partem de um cenário em que itens como visão do produto, escopo do MVP e tecnologias estão definidos. Assim, por exemplo, caso haja um problema em sua infraestrutura no meio do projeto, o tempo para ajustá-la dificilmente estará contado na estimativa, comprometendo todo o trabalho.
Por isso, antes mesmo de realizar a estimativa de software, utilizar técnicas para minimizar a volatilidade de escopo e problemas tecnológicos vai conferir mais segurança:
1. Validar ideia de produto com os potenciais usuários
Através de metodologias como o design sprint, você refina, prototipa e valida sua ideia com usuários reais antes de fazer um MVP.
2. Esclarecer a visão de produto e MVP
Através de uma lean inception que busca acelerar a criação, você define a visão do produto, a persona e funcionalidades, desenha toda a jornada do usuário e estabelece os MVPs.
3. Analisar a arquitetura
Com o auxílio de um arquiteto de soluções, a fim de se certificar de que nenhuma questão tecnológica impeça o andamento do projeto de software.
Veja: Resultados do business agility: o que as organizações estão construindo?
7 boas práticas para estimar softwares
Após adotar as melhores práticas para validação da hipótese de produto, definição do escopo e arquitetura tecnológica, o terreno para uma estimativa mais segura está preparado.
Entre as principais iniciativas que podem ajudar a estimativa de software a prosperar, destacamos 7 boas práticas devem ser consideradas durante o processo:
1. Quebre o projeto em etapas menores e menos complexas
Isso permite que o projeto seja organizado com base em um cronograma detalhado para cada uma de suas etapas e dessa forma fique mais fácil e claro atingir as metas.
2. Considere o grau de incerteza, não apenas tempo
As inconsistências e vulnerabilidades devem ser consideradas em um projeto, além de atrasos por fatores externos e internos, como falta de capacitação técnica do time.
3. Não estime sozinho, envolva a equipe
Envolver a equipe na estimativa de software fará com que todos os profissionais envolvidos no projeto estejam na mesma página e tragam perspectivas diferentes sobre o produto.
4. Documente as premissas adotadas e deixe claro as escolhas
Manter um documento norteador deixando claro como o trabalho será desenvolvido e porque será realizado daquele jeito aumenta o nível de eficiência das estimativas.
5. Refine a estimativa ao longo do tempo
Reavaliar a estimativa e reparar os erros de tempos em tempos faz parte do processo, a fim de realinhar as expectativas à realidade.
6. Seja realista, sem falsos otimismos
Gerentes costumam acreditar muito em seus projetos e fazer expectativas muito altas, por vezes inatingíveis. O segredo é conhecer bem os processos e fazer estimativas possíveis.
7. Use projetos passados como referência
Ter como base projetos anteriores para realizar estimativas de software pode auxiliar a reduzir erros e construir um gerenciamento mais efetivo.
Técnicas para estimar softwares
Com a popularização dos métodos ágeis de desenvolvimento, uma série de técnicas surgiram para auxiliar na estimativa de software de maneira eficiente. Entre as principais, podemos citar:
Planning poker
Esta ferramenta do scrum usa a colaboração para criar estimativas mais precisas. Nessa técnica, com as user stories em mãos, cada membro da equipe sinaliza, por meio da sequência Fibonacci, quanto a história representa para si. O planning poker é utilizado na priorização de tarefas e na estimativa de esforço para concluí-la.
Story points
Os pontos da história são unidades de medida para expressar uma estimativa do esforço geral necessário para implementar por inteiro um backlog do produto ou qualquer outro trabalho dentro do projeto. Enquanto equipes de software tradicionais dão estimativas em um formato de tempo - dias, semanas, meses - muitas equipes ágeis, contudo, fizeram a transição para pontos de história.
Salada de frutas
Usando frutas para fazer uma escala de estimativa do scrum, esta técnica estima a produtividade e as perdas por meio de ícones como banana, uva e maçã. À medida que aumenta a dificuldade de comer e preparar a fruta, a complexidade do esforço de trabalho também se eleva.
Wideband Delphi
Técnica de comunicação estruturada, originalmente desenvolvida como um método de previsão interativo e sistemático que conta com um painel de especialistas. Os especialistas respondem aos questionários em duas ou mais rodadas. Após cada rodada, um facilitador fornece um resumo anônimo das previsões dos especialistas da rodada anterior com os motivos de seus julgamentos. Os especialistas são então incentivados a revisar suas respostas anteriores à luz das respostas de outros membros do painel.
PERT
Técnica de avaliação e revisão do projeto usada para estimar o tempo mínimo necessário para a conclusão de um projeto, por meio da análise de todas as tarefas necessárias e do cálculo do tempo mínimo que levaria para concluir cada tarefa no projeto.
Baseada em evidência
A técnica analisa métricas e indicadores em quatro áreas de valor-chave, selecionadas caso a caso de acordo com a organização, todas contribuindo para a melhor percepção possível e potencialização dos melhores resultados de forma iterativo-incremental-articulada.
As quatro áreas de valor são:
- Valor corrente – Mede o valor entregue ao cliente ou usuário hoje;
- Valor Não Realizado – Mede o valor que poderia ser realizado atendendo a todas as necessidades potenciais do cliente ou usuário;
- Capacidade de Inovar – Mede a capacidade de fornecer um novo recurso que pode atender melhor a necessidade de um cliente ou usuário;
- Time to Market – Mede a capacidade de fornecer rapidamente novas capacidades, serviços ou produtos.
Confira: Lean thinking: um guia breve e completo
Estimar é preciso
Como vimos, realizar a estimativa de software ainda é a maneira mais eficiente de avaliar o valor do processo. Sempre haverá uma margem de erro, cuja extensão boas práticas pré-projeto e de estimativas, assim como a escolha das técnicas mais adequadas, pretendem minimizar.
Sabemos que é preciso analisar se os métodos cabem dentro da proposta daquele projeto e trazer as metodologias ágeis para a realidade de cada empresa e, se for preciso, contar com especialistas em agile para auxiliar a colocar em prática as iniciativas necessárias a fim de dar mais agilidade e eficiência aos processos.
Há 18 anos no mercado de tecnologia, a Supero é especialista em oferecer soluções de TI sob demanda para a sua organização.
Nosso time de consultores experientes em Lean Digital está preparado para auxiliar a sua equipe interna a recuperar tempo e dinheiro e investir no que realmente interessa para conquistar a satisfação do seu cliente.Entre em contato conosco e veja como agregar valor ao seu negócio.