Planejamento de projetos de software para projetos não triviais

Todos desejamos que nossos projetos de software sejam entregues dentro do prazo e do orçamento*. O software é complexo e, a menos que planejemos o sucesso, é improvável que “simplesmente aconteça”. Ao planejar projetos de software, felizmente temos a experiência de falhas passadas com as quais podemos aprender. Deveríamos aproveitar o que aprendemos com esses erros para que nossos projetos possam evitar o caminho “patológico”.

O que queremos dizer com um projeto atrasado?  Atraso é realmente sobre um projeto sendo entregue atrasado em relação às expectativas, ou em outras palavras, atrasado em relação à estimativa. Para evitar decepções, precisamos criar expectativas (estimativas) realistas E precisamos realizar as atividades para evitar problemas que possam levar ao não cumprimento das estimativas.

Em um estudo com 84 projetos da IBM e da AT&T, Capers Jones observou que os projetos que atrasaram 6 meses ou mais mostraram pouca evidência de problemas nos estágios iniciais. Os últimos projectos tinham poupado muitas actividades cruciais, nomeadamente: revisões de requisitos, inspecções, controlo de qualidade. Tudo isso envolve atenção precoce à qualidade.

Por que eles foram estimados incorretamente? A estimativa foi inadequada ou as atividades que poderiam mantê-la dentro do prazo não foram bem executadas.

Capers cita 10 fatores que levam à incompatibilidade estimada/real:

*Algumas partes se beneficiam dos custos extras gerados quando um projeto é estendido.

Como a IA pode ajudar

O planejamento começa cedo, conforme você conhece ou descobre os requisitos. O ScopeMaster usa IA para ajudá-lo a entender os requisitos muito rapidamente. O que leva a planos melhores.

Este artigo é baseado no trabalho de Capers Jones. Estamos muito gratos por sua permissão para republicar algumas de suas descobertas aqui. Se você estiver interessado em aprender mais, pode encontrar a fonte aqui. Estimando custos de software por Capers Jones

Fatores que afetam a programação do software e estimar a confiabilidade

Fator Descrição Impacto no cronograma Mitigação EscopoMaster

Erros de métricas

O uso de métricas inadequadas, como Story Points ou similares, levará a estimativas ruins Até 100% Use dimensionamento funcional, pontos de função COSMIC O ScopeMaster automatiza o dimensionamento funcional e elimina a maioria desses erros.

Ajuste tecnológico

Incerteza/atraso causado na introdução de novas ferramentas/tecnologias/técnicas Impacto observado pode causar erros de estimativa de até 150% Aguarde pelo menos um mês para que a nova tecnologia seja incorporada ao uso, planeje isso

Erros de caminho crítico

A ilusão de que o progresso está no caminho certo até que o projeto seja interrompido por um evento de bloqueio Erro em horários de até 25% Um melhor monitoramento do caminho crítico e a mitigação proativa de riscos técnicos podem minimizá-los. O ScopeMaster estimula a reflexão antecipada sobre complexidades e integrações, que são causas comuns de problemas de CP

Problemas de dimensionamento/escopo

Subestimar mal a verdadeira magnitude de um projeto levará ao aumento do trabalho e do cronograma. A qualidade e a integridade dos requisitos também afetam a capacidade de dimensionar corretamente Erro 15-100% O dimensionamento funcional e a verificação automatizada de integridade ajudarão a mitigar isso. Resolvido pelo ScopeMaster (mesmo para gerentes de projeto inexperientes).

Requisitos crescentes do usuário

A alteração dos requisitos (distinto dos requisitos ausentes) levará ao aumento do trabalho e do cronograma. As taxas de erro são maiores em projetos mais longos 2-10% por mês Isso deve ser planejado e adotado (Ágil). O ScopeMaster ajuda de diversas maneiras: melhorando a qualidade dos requisitos iniciais, melhor elicitação e rastreamento de volatilidade

Erros de atribuição

Deixar de alocar pessoal adequado para uma atividade dentro de um projeto. Cada pessoa que desempenha uma determinada função tem uma capacidade finita para realizar o trabalho e precisa ser designada no momento apropriado do projeto. Erro até 100% Gerentes competentes que entendem as capacidades de atribuição (veja abaixo). O ScopeMaster ajuda fornecendo um tamanho funcional a partir do qual os escopos de atribuição podem ser determinados.

Erros de taxa de produção

A diferença entre a taxa de produção esperada e real. 20-100% Medidas realistas e apropriadas da taxa de produção ajudarão, por exemplo. CFP/mês para uma determinada equipe. O ScopeMaster ajuda fornecendo um tamanho funcional a partir do qual as taxas de produção podem ser medidas, avaliadas e monitoradas.

Aumento de pessoal

Não mobilizar o número certo de pessoal com as competências certas no momento certo causará atrasos. Provavelmente terá impacto por semanas ou até meses. Gerentes competentes devem planejar adequadamente. O ScopeMaster ajuda fornecendo um tamanho funcional a partir do qual a atribuição e os escopos podem ser determinados.

Seleção de Tarefas

Deixar de considerar todas as atividades do projeto – e não apenas a codificação – levará a erros de agendamento. Observado até 1000% Os gestores competentes devem planear todas as atividades de forma adequada.

Interferência Executiva ou Política

Os executivos decretam prazos ou outras restrições inadequadas que levam à má qualidade. Erro até 50% para agendamento, 100% para custos Os gestores competentes devem reagir duramente a tal interferência. O ScopeMaster cria estimativas de tamanho funcional a partir das quais cronogramas realistas podem ser determinados e usados como defesa.

Planejamento Baseado em Atividades com base no tamanho funcional

Planejando projetos de software

O fator mais crítico na determinação da duração de um projeto é o seu tamanho. Por tamanho estamos nos referindo ao tamanho funcional. O tamanho funcional é o meio mais confiável de dimensionar um projeto de software. Ao contrário dos pontos da história (que são uma estimativa de esforço de engenharia não linear e subjetiva), o tamanho funcional é geralmente consistente, dentro de alguns %, independentemente de quem o dimensiona.

Para determinar o quanto de cada atividade é apropriado em nosso projeto, precisamos entender tanto o escopo da atribuição (quanta capacidade um indivíduo pode suportar) e sua taxa de produção (quanta capacidade eles podem atender em um determinado período). Eles são mostrados na tabela abaixo com base no tamanho funcional do software que está sendo trabalhado nos Pontos de Função.

Existem dois padrões principais para tamanho funcional: pontos de função tradicionais (IFPUG) e pontos de função COSMIC. Recomendamos este último principalmente porque lida muito bem com requisitos incompletos, você não precisa conhecer todos os requisitos para dimensionar um software (o que geralmente é feito com o IFPUG).

Atribuições de atividades e produtividade média

Para planejamento baseado em atividades

Nem todas essas atividades são necessárias em todos os projetos. Como diretriz, quanto maior o projeto, mais projetos você precisará executar.

Atividade Escopo de alocação de pessoal, FP Produção mensal, FP

Requisitos

333 175

Prototipagem

500 150

Arquitetura

1000 300

Planos de Projeto

1000 500

Design inicial

250 175

Projeto detalhado

250 150

Revisões de design

200 225

Codificação

175 50

Aquisição de reutilização

500 600

Compra de Pacote

2000 400

Inspeções de código

150 150

Verificação e validação independentes

500 125

Gerenciamento de configuração

1000 175

Integração

1000 250

Documentação do usuário

1000 70

Teste de unidade

200 150

Teste funcional

200 150

Teste de integração

250 175

Teste de sistema

250 200

Teste de campo (beta)

1000 250

Teste de aceitação

1000 350

Teste Independente

750 200

Garantia da Qualidade

1000 150

Instalação e treinamento

2000 350

Gerenciamento de projetos

1000 100

Não está disponível uma tabela equivalente, baseada no CFP, mas é razoável considerar que o FP e o CFP são aproximadamente equivalentes quando se utilizam estes dados para o planeamento baseado em actividades.

Uma abordagem baseada em atividades é particularmente útil porque nos ajuda a identificar o pessoal e as competências necessárias durante o projeto. Ferramentas como SRM® da análise Namcook  SEER para software da GalorathSLIM do QSM ou Verdadeiro planejamento do Unison (anteriormente Sistemas de Preços) pode ajudar ainda mais, fornecendo um perfil de pessoal adequado para um determinado projeto ao longo do tempo.

Esta é uma versão condensada da tabela 11.4 publicada em “Estimating Software Costs, second edition” por Capers Jones. Disponível para compra na Amazon. Nota: isto é apenas uma ilustração das atividades e dos seus níveis de pessoal, taxas de produtividade (custos implícitos). Você descobrirá que manter seus próprios padrões de referência para essas atividades é uma atividade que vale a pena.

Estimativa antecipada

Se você está procurando ajuda para estimar o tamanho, a duração e a equipe de um projeto antes de conhecer os requisitos, uma ferramenta adequada é o Software Risk Manager (SRM) da Namcook Analytics. Ele usa dados históricos do projeto e vários algoritmos para fornecer estimativas de tamanho, duração, pessoal e muito mais. SRM pode ser encontrado no Namcook local na rede Internet.

Conclusão

As principais conclusões deste artigo são:

  • É possível criar estimativas realistas para projetos de software que são razoavelmente consistentes com o que eventualmente acontece.
  • Tamanho (tamanho funcional) é o fator mais significativo afetando o esforço e a duração. A confiabilidade da estimativa do tamanho depende de vários fatores.
  • Uma abordagem baseada em atividades com base no tamanho funcional pode produzir uma estimativa razoável do esforço (e, portanto, do custo).
  • Conhecer o esforço e as taxas típicas de produtividade nos dá uma estimativa razoável de duração.
  • Projetos muito grandes também se beneficiarão de uma ferramenta de planejamento paramétrico que pode prever o tamanho da equipe e os conjuntos de habilidades ao longo do projeto.