segunda-feira, 3 de maio de 2010

Estimativa de tamanho de software

Por Karina Hartmann*

O que é estimativa?

A estimativa é avaliação ou cálculo aproximado de algo. Ela se difere de uma mensuração porque esta última obtém uma medida exata, enquanto a estimativa obtém uma aproximação. Estimativas são realizadas quando não possuímos os dados necessários para mensurar.

No caso de software, só é possível mensurar o software já construído. Durante a análise dos requisitos ainda não possuímos todos os dados necessários para obter uma medida, então podemos apenas estimar.


Porque estimar tamanho de software?

Digamos que você vai iniciar um projeto de desenvolvimento de software hoje. Como você define quanto tempo vai precisar trabalhar para que o software esteja pronto? Como você estima quando vai poder entregar o software para o cliente? Como você define quanto deveria custar esse software?

Estimamos o tamanho do software para responder essas e outras perguntas. Todo projeto de desenvolvimento de software demanda um investimento, iniciar um projeto sem ter idéia do investimento necessário é certeza de insucesso.

Para iniciarmos um projeto e poder planejá-lo e monitorá-lo precisaremos de informações que são derivadas do tamanho do software:
  • Custo (para defini-lo é preciso saber qual o esforço).

  • Tempo (é a duração do trabalho em dias).

  • Esforço (é quantidade de trabalho em horas, só poderá ser estimado sabendo-se qual o tamanho do software a ser construído. Tamanho do software * produtividade = esforço).

E quanto ao erro?

No início deste post lembramos que a diferença entre estimativa e mensuração é que a primeira é apenas uma aproximação, com base em dados incompletos ou ainda não confiáveis.

A figura abaixo, conhecida como ‘funil de incerteza’ demonstra a aproximação da estimativa conforme avançamos no ciclo de desenvolvimento do software. O que esse gráfico nos mostra é a variação da estimativa em função do tempo no projeto: Durante a especificação dos requisitos, quando ainda não temos requisitos estáveis ou não conhecemos todos os requisitos, nossas estimativas vão estar até quatro vezes maiores ou menores que o correto. Ao passo que aumentamos a certeza sobre requisitos, arquitetura, etc, mais e mais a estimativa se aproxima do tamanho real.



O aumento da certeza durante o projeto pode fazer necessário o re-planejamento (modificar o que foi planejado a partir das novas informações, modificando as variáveis: custo, escopo/qualidade ou prazo) ou a gerência de mudança (resposta controlada a uma mudança necessária, como a inclusão de uma funcionalidade). A gerência de mudança normalmente inicia um novo ciclo de planejamento e faz uma nova estimativa do tamanho do software.

Melhorar as nossas estimativas também depende da qualidade do levantamento de requisitos e da apuração do método. O processo de desenvolvimento de software precisa ser capaz de retroalimentar o método de estimativa.

Voltando para aquele projeto que você está hipoteticamente iniciando hoje: quando você finalizar o desenvolvimento, deve obter métricas atualizadas da execução do projeto e utilizá-las para saber o quanto sua estimativa foi precisa, melhorar seu método e atualizar dados como a taxa de produtividade.

Concluindo, é importante entender que a estimativa de tamanho de software, apesar de não ser exata, nos fornece dados imprescindíveis para decidir pela execução de um projeto e também é a base para planejar e monitorar projetos de desenvolvimento de software.

No próximo post vou introduzir algumas técnicas de medição de software. Aguardem!

*Gerente de projetos da Fábrica de Software da SoftDesign, participante do grupo de melhoria de processos, é responsável pelas medições de novos projetos. Cursando Matemática Aplicada à Informática na ULBRA Canoas, é também Técnica em Informática pela ULBRA.

0 comentários:

Postar um comentário