Conceito: Evoluir para continuamente obter feedback e promover melhorias
Promover práticas que permitam à equipe obter feedback dos Analistas de Negócios, o mais cedo possível e de forma contínua, e demonstrar valor incremental para eles.
Descrição Principal

Introdução

Em geral não é possível conhecer todas as necessidades dos Analistas de Negócios. Esteja atento a todos os riscos do projeto, compreenda todas as tecnologias envolvidas no projeto ou saiba como trabalhar com seus colegas. Mesmo sendo possível conhecer todas essas coisas, elas estão suscetíveis a mudanças durante o ciclo de vida do projeto. Promova práticas que permitam à equipe demonstrar valor incremental e conseguir feedback rápido e contínuo dos Analistas de Negócios.

A intenção por trás deste princípio é obter feedback contínuo e melhorar o produto e o processo da equipe de projeto. Quando você fornece uma estrutura e cria uma mentalidade para melhoria e feedback contínuos, as mudanças são acomodadas mais facilmente. Adicionalmente, o feedback é captado antecipadamente e constantemente e os riscos de alta prioridade são confrontados mais cedo no projeto. Ao identificar e atacar constantemente os riscos passará a existir mais confiança no progresso e na qualidade do projeto.

Não somente o produto evolui, mas a equipe também encontra melhores formas de trabalhar em conjunto e se envolver com os Analistas de Negócios. O processo seguido pela equipe pode ser ajustado apropriadamente para alavancar as lições aprendidas e ajustar o andamento e as necessidades do projeto.

Práticas

Desenvolva seu projeto em iterações

Desenvolver um sistema com um único passo linear é difícil porque isto torna muito custosa a incorporação de mudanças e novos conhecimentos. Pior, isto pode atrasar a descoberta e a atenuação de riscos por que os esforços de desenvolvimento são agendados tardiamente no ciclo de vida do sistema.

Divida o projeto em séries de iterações e planeje seu projeto iterativamente. Esta estratégia de iteratividade permite entregar capacidades incrementalmente (tal como um executável ou um conjunto usável de requisitos implementados e testados) que podem ser avaliadas pelos Analistas de Negócios ao final de cada iteração. Isto provê ciclos de feedback rápidos e temporizados de forma que os problemas possam ser tratados e as melhorias serem feitas a um custo mais baixo. Isto também é realizado enquanto você ainda tem recurso e tempo disponíveis e você não tenha ido tão longe de forma que um retrabalho maior seja necessário.

O desenvolvimento iterativo habilita a equipe a melhorar o software constantemente durante seu ciclo de vida de desenvolvimento.

Focalize as iterações no atendimento do próximo marco de gerenciamento

Um projeto pode parecer que está progredindo enquanto os riscos e os problemas não resolvidos estão crescendo. Divida o projeto em fases (tais como Fase de Concepção, Fase de Elaboração, Fase de Construção e Fase de Transição), com cada fase tendo um marco de gerenciamento claramente visível. O foco de cada iteração em uma fase é alcançar o marco.

Gerenciar Riscos

Protelar as questões sobre dificuldades e riscos para o final do projeto, aumenta o risco de cancelamento do projeto. Esta procrastinação pode direcionar o investimento em tecnologias erradas, em um design ruim ou em um conjunto de requisitos que não atendem as necessidades dos Analistas de Negócios.

Ataque os riscos cedo, ou eles lhe atacarão. Identifique e priorize continuamente os riscos, e elabore estratégias para atenuá-los. Determine o foco das iterações baseado nos riscos. Por exemplo, os riscos arquiteturalmente significantes devem ser tratados cedo no projeto, no máximo até o final da fase de Elaboração, quando a arquitetura estiver aprovada e com linha de base.

Aceite e gerencie as mudanças

As mudanças são inevitáveis, e embora as mudanças apresentem oportunidades para elevar o valor para o Analista de Negócios, mudanças irrestritas resultarão num sistema inchado, deficiente e que não atende às necessidades destes. Além disso, quão mais tarde uma mudança for feita no ciclo de desenvolvimento, mais custosa ela será.

Aceite e gerencie as mudanças. Aceitar as mudanças lhe ajuda a construir um sistema que atende as necessidades dos Analistas de Negócios, e gerenciar as mudanças lhe permite reduzir o custo e melhorar a previsibilidade destas mudanças. Mudanças que são executadas cedo no projeto podem normalmente ser feitas com custo limitado. À medida que o projeto progride, as mudanças podem se tornar altamente custosas.

Para satisfazer as necessidades dos clientes, você normalmente precisa fazer mudanças no projeto, porém o cliente deve ser avisado do impacto que estas mudanças causam no custo e no cronograma do projeto. Entenda o impacto de uma mudança na fase corrente, e isole os membros da equipe das mudanças repentinas durante a iteração corrente. As solicitações de mudança são revistas e priorizadas durante a iteração corrente, mas não são ativadas até serem atribuídas a uma iteração futura. Documente as mudanças sempre que necessário.

Meça o progresso objetivamente

Se você não sabe objetivamente como o projeto está progredindo, você realmente não sabe se ele está caminhando para o sucesso ou fracasso. A incerteza e a mudança tornam o progresso de um projeto de software difícil de ser medido objetivamente, e as pessoas são levadas a fazer avaliações objetivas com informações subjetivas.

Tenha uma imagem clara do status do projeto medindo o progresso objetivamente. A melhor medida de progresso é a entrega de software funcional, que é algo que você faz tendo uma abordagem evolucionária. Você pode também definir um conjunto de métricas objetivas a coletar durante uma iteração (por exemplo, requisitos que foram implementados e validados, quantidade de defeitos relatados comparada com a quantidade corrigida) e revisá-lo.

Reavalie continuamente o que você faz.

Faça perguntas e verifique as suposições sobre o projeto, frequentemente. Encontre-se com a equipe regularmente para acompanhar o status do projeto e identificar os riscos e questões. Isto pode ser feito diariamente quando a equipe se reúne para compartilhar o status das responsabilidades individuais e identificar e tratar os problemas. Ao final das iterações, avalie o status do que foi feito e busque por áreas de melhoria que podem ser tratadas na próxima iteração. Faça uma revisão retrospectiva ao final do projeto e capture as lições aprendidas para executar projetos futuros de forma mais eficiente.