11.0 Cachoeira vs. Gestão de Projetos Cíclicos (Parte 4) – Project Lifecycle & Outcomes

Métodos de gestão de projetos cíclicos #

Devido aos problemas acima discutidos, uma variedade de técnicas alternativas de gestão de projetos têm-se desenvolvido nos últimos anos. Estas técnicas são especialmente adequadas para iniciativas de desenvolvimento de tecnologias da informação.

A gestão cíclica do projeto é um método para alcançar o objetivo do projeto através de uma série de ciclos breves e sequenciais. Cada ciclo é breve, com uma duração ideal inferior a um mês. Cada ciclo completa uma parte do projeto. Cada ciclo inclui análise, design, implementação e testes. Isto é significativamente diferente da abordagem da cascata, na qual cada uma destas tarefas ocorre na sua própria fase distinta. Além disso, a abordagem waterfall especifica um número limitado de momentos distintos para conceito, design, implementação e testes. Isto acontece muitas vezes consecutivamente na abordagem cíclica.

Compreender o Ciclo de Software de Gestão de Projetos #

Vários componentes de software são implementados ao longo dos ciclos, que são, portanto, autossuficientes. Cada ciclo é avaliado após a conclusão. Se surgirem novas ou alternativas necessidades para o projeto como resultado de uma compreensão crescente, as atividades dos ciclos futuros são ajustadas para os incluir.

Um ciclo começa com o estabelecimento ou modificação de um horário. Depois disso, as necessidades de produção do ciclo são avaliadas. Um design é desenvolvido, codificado e validado. Na sequência disso, a avaliação acontece e, em certos casos, o novo programa é implementado. Em seguida, pode iniciar-se o ciclo seguinte para completar os componentes subsequentes do projeto. (Para uma discussão mais pormenorizada sobre as técnicas cíclicas e as suas distinções, veja-se, por exemplo, kroll, 2004; Cromático, 2003; Stapleton, 2002.)

Seguem-se os principais benefícios da utilização do método cíclico:

  • Melhoria da qualidade e implementação do produto;
  • Melhoria da qualidade e implementação do produto;
  • Estimativas de tempo e custos mais realistas;
  • Menos pressão na equipa do projeto;
  • Maior qualidade.

Os capítulos anteriores mostram como é difícil ou impossível definir adequadamente as capacidades necessárias nas fases iniciais de um projeto. As técnicas cíclicas implementam a funcionalidade necessária numa série de breves ciclos. Cada ciclo não só investiga, mas também projeta, implementa e testa uma pequena parte da funcionalidade necessária. A rápida sucessão de design, execução e testes é fundamental para a melhoria da qualidade. Como resultado, as equipas estão em posição de fazer alterações. Se um desenho não funcionar na realidade, torna-se evidente ao longo do ciclo, permitindo modificações. Além disso, este tipo de operação permite que os consumidores solicitem alterações.

Manutenção da Qualidade #

Outra razão pela qual a gestão de projetos cíclicos melhora a qualidade é que cada ciclo requer uma cooperação intensa entre o cliente, designers e programadores. Uma equipa multidisciplinar desenvolve e executa soluções em conjunto. O cliente está principalmente empenhado no início, no desenvolvimento de requisitos; Em seguida, os designers criam um design, e por último, os programadores constroem o software. O líder do projeto atua como uma ligação entre todas as partes e é responsável por garantir que as informações fornecidas sejam entregues ao destinatário apropriado. Na realidade, muitos programadores e designers nunca encontram o cliente, que só reaparece durante todo o processo de desenvolvimento de software.

As técnicas cíclicas de gestão de projetos são especialmente adequadas a projetos em que o objetivo final não possa ser claramente definido com antecedência, como iniciativas artísticas ou de investigação. Trabalhar em ciclos com uma equipa diversificada que inclua utilizadores finais permite à equipa determinar o verdadeiro propósito do projeto e a melhor forma de o concretizar. Cada ciclo oferece uma oportunidade de reflexão e correção.

Um alvo é definido antecipadamente para projetos de cascata. A reflexão sobre o objetivo inicial é menos provável. O objetivo inicialmente formado nunca é (completamente) realizado, e nem o originalmente concebido nem o objetivo realizado é provável que seja precisamente o que se pretendia.

Finalmente, os métodos cíclicos de gestão de projetos fornecem resultados superiores uma vez que o cliente realiza testes de aceitação. Além disso, a qualidade é melhorada através da inclusão de testes como critério para funcionalidades de alto desempenho desde o início. Por conseguinte, os programadores devem criar “testes falhados” (ou testes unitários) antes de escreverem o seu código. Apenas o código que passa no teste falhado é considerado aceitável.

Testes consistentes #

O trabalho orientado para o teste exige aos programadores que demonstrem que o novo código está livre de erros antes de o escreverem. Fazem-no criando um teste (teste falhado) que identificará eventuais falhas antes de começar a codificar. Considere o caso em que um software deve ser desenvolvido para determinar a quantidade adequada de trocos a receber de uma máquina de doces. Para começar, a presença de uma função capaz de provocar a mudança deve ser verificada. Esta função pode ser referida como “dar mudança”. Um teste simples pode ser executado e revelaria que a função “dar mudança” ainda não existe. O teste passará se o programador criar a função, mas ainda não lhe fornecer qualquer substância.

O próximo passo é determinar se a máquina devolve a quantidade correta de dinheiro quando um artigo é comprado. Insira 60 cêntimos na máquina e compre um artigo de 50 cêntimos. O teste falhará uma vez que a função permanece vazia. Depois disso, o programador escreve o código. Ele especifica na função “dar mudança” que a quantidade de mudança a devolver é igual à quantidade de dinheiro colocada na máquina, menos o custo dos doces selecionados. O teste deve agora passar com sucesso. Este procedimento deve ser repetido para cada componente do programa.

Não só o código deve ser testado tecnicamente; as funções também devem ser testadas (isto é, testes de aceitação). Antes de iniciar a codificação, o cliente estabelece os critérios segundo os quais as capacidades a desenvolver podem ser aprovadas (por exemplo, a rapidez com que um computador deve reagir a uma determinada ação do utilizador). Antes disso, a definição dos critérios segundo os quais a capacidade adicional pode ser aprovada revelou-se muito complexa e intensiva. No entanto, o envolvimento ativo dos consumidores nos testes é fundamental para o sucesso do projeto.

Estimativas de Tempo e Dinheiro #

A compreensão das funções a implementar não é pré-determinada no início de um projeto cíclico. O tempo disponível é dado. São alcançados acordos sobre a direção do projeto e, ao longo do processo, estabelece-se o que é realmente necessário, benéfico e viável em termos do programa a criar. Uma vez que as funções a implementar não são objetivos definidos, os projetos cíclicos minimizam o perigo de que as horas necessárias e, portanto, o dinheiro, possam descontrolar-se. Para evitar este cenário, o tempo disponível é utilizado como ponto de partida, e o que é razoável antecipar nesse período de tempo é estabelecido ao longo do processo.

Além disso, as técnicas cíclicas de gestão de projetos são consideravelmente mais agradáveis para a equipa do projeto. A equipa faz tudo o que pode dentro do prazo atribuído, mas não é pressionada para atingir prazos irrazoáveis ou operar dentro de um orçamento insuficiente.

Além disso, as técnicas cíclicas simplificam a administração de fornecedores estrangeiros. Com a abordagem cascata, um projeto pode crescer dependente de um único provedor até que o projeto esteja concluído, independentemente do desempenho do fornecedor. É teoricamente possível celebrar novos acordos para cada ciclo ou mesmo para cada componente ser fornecido ao abrigo de uma técnica de trabalho cíclica e, se necessário, para mudar de fornecedor.