Um dos desafios pelo qual toda equipe de desenvolvimento passa (e acredito que sempre passará) é a cobrança por uma produtividade alta. Mais entregas, mais velocidade, menos problemas, menos retrabalho, maior retorno de investimento. Putz, não tá fácil pra ninguém mesmo…
A experiência deste mero mortal mostra que, independentemente da metodologia de desenvolvimento que você aplique, sempre buscamos deixar nossos clientes satisfeitos. E neste mundo cada vez mais competitivo e feroz, o cliente quer ver e sentir a produtividade do serviço prestado pelo profissional e/ou pela empresa contratada.
Se você der uma pausa de alguns minutos no seu trabalho e der uma lida no manifesto ágil e seus princípios, perceberá a importância que é dada à entrega constante de software (produto) de valor ao cliente.
- Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
- Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
- Entregar software funcionando com frequência, na escala de semanas até meses, com preferência pelos períodos mais curtos.
- Pessoas relacionadas a negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.
- Construir projetos ao redor de indivíduos motivados, dando a eles o ambiente e o suporte necessário, e confiar que farão seu trabalho.
- O método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara.
- Software funcional é a medida primária de progresso.
- Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter, indefinidamente, passos constantes.
- Contínua atenção à excelência técnica e bom design aumentam a agilidade.
- Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
- As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.
- Em intervalos regulares, o time reflete sobre como ficar mais efetivo, então, se ajusta e otimiza seu comportamento de acordo.
Eu, particularmente, entendo como produtividade a relação entre tempo de desenvolvimento e valor do produto entregue para o cliente. Uma dica para ser bem-sucedido nessa questão é: faça a análise da demanda completa, faça a divisão em subdemandas e repita isso até encontrar o ponto certo de desenvolvimento de um pedaço de produto (software) que possa agregar um maior valor ao cliente em um menor espaço de tempo.
Ninguém está aqui reinventando a roda, pois a técnica de divisão e conquista é bem antiga e consiste em dividir um problema maior em problemas menores, até que o problema maior possa ser resolvido. Cada subdemanda que é entregue é um pedaço a menos da demanda principal. Nada de novo, mas que dá resultado, isso dá.
Desde que começamos a estudar nossos primeiros algoritmos, aplicamos essa técnica para alcançarmos os nossos melhores resultados. Mas aí vai passando o tempo, as contas vão chegando e acabamos deixando as melhores técnicas de lado em detrimento da cobrança excessiva de entrega, prazos mal negociados com os clientes e da aplicação de metodologias não muito inteligentes como o Vamosimbora Process e o Chicote Process.
Cada equipe de desenvolvimento deve saber a melhor forma de aplicar essa técnica, obedecendo a sua realidade. Cumprindo seus prazos, entregando produtos de valor aos seus clientes, dividindo e conquistando. Sempre.
Boas festas. Até a próxima.