Produtividade na Gestão de Projetos de Software

Para melhorar a produtividade na gestão de desenvolvimento de software deve-se usar uma metodologia que garanta a repetitividade de tarefas, medição e definição de processos e que incentive a melhoria contínua.

A metodologia deve prever que a fase de definição de requisitos de um novo software é um processo criativo, diferente da implantação de um software de mercado. Para novos softwares é necessário adotar um modelo interativo com protótipos para aperfeiçoar a ideia inicial. O número de interações depende do tempo estipulado para essa atividade ou do consenso dos patrocinadores que as especificações atendem as expectativas.

Para softwares de mercado é possível adotar um modelo de gestão linear e sequencial uma vez que já existe um processo definido e testado de implantação. Não existe criatividade e inovação na implementação de um software de mercado. Ele implementa as melhores práticas do mercado e garante que a empresa chegue mais rápido a processos com excelência operacional. Neste caso, é possível ter previsibilidade de prazo e custo. Entretanto, se a empresa decidir propor muitas alterações do software original, com certeza, nem prazos nem orçamento serão cumpridos.

Temos aqui que diferenciar a simples automatização de um processo existente para melhorar a produtividade e controle, de softwares que implementam novos modelos de negócios. Automatizar processos existentes é melhoria contínua. Softwares para novos modelos de negócios é inovação. No primeiro caso temos previsibilidade e conseguimos estimar os benefícios. No segundo, trabalhamos com um grau de incerteza, porém se obtivermos sucesso os resultados serão significativos.

Desenvolver cronogramas de novos softwares é um desafio. A começar pela evolução das expectativas dos patrocinadores ao longo do desenvolvimento do projeto. Notem que mudar de ideia durante o desenvolvimento de um software não é um pecado. Pode custar caro se utilizar um modelo linear e sequencial de desenvolvimento. Para atender a fase de levantamento de requisitos e o amadurecimento das ideias, o melhor modelo de desenvolvimento é o espiral. Esse modelo permite várias interações com os patrocinadores através de protótipos para convergir para a especificação do projeto final.

O passo seguinte no desenvolvimento de software é estabelecer o cronograma do projeto. Aqui outros desafios. Os desenvolvedores, analistas e consultores costumam subestimar em média 20-30% a duração das tarefas. Pior, chegam a omitir entre 30-50% das tarefas. Isso torna inevitável atrasos e estouros de orçamentos. Quando isso acontece a perda de produtividade é acentuada, pois perde-se muito tempo em explicações e replanejamento. Isso acaba afetando a moral da equipe, a qualidade do projeto e a confiança dos patrocinadores na equipe.

Aqui fica um alerta para quem contrata serviços de desenvolvimento de software. Estudos mostram que 75% dos desenvolvedores de software são introvertidos e apenas 33% tem habilidades de negociação. Se houver pressão sobre eles para aceitar prazos não realistas para um projeto, provavelmente, eles concordarão. Mesmo com o conhecido heroísmo dos desenvolvedores em trabalhar por longas horas para atender prazos, existe um grande risco dos projetos não atingirem as expectativas de qualidade, prazo e orçamento.

Na prática, quem contrata o desenvolvimento de novos softwares pode fixar duas entre as três opções: produto, prazo e orçamento. Por exemplo, se você quiser um produto de qualidade em um prazo determinado, você terá que ter um orçamento flexível. Se escolher ter prazo e orçamento determinados, você terá uma incerteza sobre a qualidade do produto.

Mas afinal como melhorar a produtividade? Repetindo tarefas que deram certo, medindo o desempenho de cada tarefa, definindo processo e adotando um programa de melhoria contínua. Para isso você precisa ter uma equipe experiente e que trabalhe juntos há pelo menos três anos dentro da filosofia de buscar, continuamente, a melhoria da produtividade.

Uma equipe de alta performance no desenvolvimento de sistemas tem que ter histórico e evidencias documentadas, como: medição, processo definidos, métricas e objetivos de aumento de produtividade. Um bom roteiro a seguir é modelo CMMI – Capability Mature Model Integration – que define um método para avaliação e melhoria de processos.

Para processos já consolidados a melhor alternativa é adotar pacotes de software de fornecedores especializados. Esses softwares já implementam as melhores práticas de mercado e podem ser implantados fixando prazo e custo, pois a qualidade do produto já foi consolidada.

Para novos softwares que embutem um certo grau de incerteza e, obviamente, um maior risco deve-se entregar o desenvolvimento para equipes internas ou externas que tenham experiência e metodologia para ter previsibilidade, eficácia e controle.