“Simplicidade – a arte de maximizar a quantidade de trabalho não feito – é essencial.” (Simplicity—the art of maximizing the amount of work not done—is essential.)
Palavras-chaves: Simplicidade, valor agregado, Manifesto Ágil, processos ágeis.
Numa rápida busca na Web encontramos boas definições para o termo simplicidade. Peguei algumas delas para abrir este post, por considerá-las bastante apropriadas. Senão vejamos, simplicidade é: a qualidade daquilo que é simples; a ausência de complicação; a naturalidade; a ausência de artifícios, de extravagâncias e de excessos.
Há, portanto, um forte apelo minimalista em todos os métodos ágeis. Tais métodos buscam incluir apenas “o que todo mundo precisa” e não “o que alguém precisa”, para tornar mais fácil às equipes acrescentarem algo para atender as suas necessidades mais específicas. “Nenhuma metodologia poderá jamais endereçar toda a complexidade de um projeto de software moderno”.
Sob a ótica de processo, “Maximizar a quantidade de trabalho não feito” não significa que o método ágil vá simplesmente ignorar etapas essenciais ou tradicionais de desenvolvimento de software. Voltando às definições do início do post, o que se pretende aqui é concentrar-se na redução ou na ausência de complicação; na ausência de artifícios, extravagâncias e excessos, em benefício da criação de um processo enxuto com foco na naturalidade e naquilo que é simples. O Manifesto Ágil fala da existência dos inúmeros métodos, metodologias e processos que podem apoiar as tarefas de desenvolvimento de software. Porém, num Projeto Ágil é particularmente importante o uso de abordagens simples por serem mais facilmente mudadas e/ou adaptadas. É mais fácil incluir alguma coisa em um processo mais simples do que tirar algo de um processo muito complicado.
Dee Hock, ex-CEO da Visa International, sustenta no Manifesto Ágil que: “Propósitos e princípios simples e claros dão origem a um comportamento complexo e inteligente” e que “Regras e regulamentos complexos dão origem a um comportamento elementar e estúpido“. Em resumo, “Software em funcionamento mais que documentação abrangente”, um valor básico do Manifesto Ágil.
Já pensando em produto, o interesse é manter essa visão minimalista de forma que estejamos sempre desenvolvendo o mínimo possível, configurado como o essencial para a existência do produto. Dessa forma, reduzimos as chances de insucesso, atendendo ao nosso cliente através da implementação do que ele realmente precisa e não recusará, ao mesmo tempo que minimizamos a necessidade de retrabalho. Essa filosofia nos permite manter o foco em criar real valor para o cliente, controlando o custo, visto que não tratamos de nada que não seja realmente essencial, “maximizando o que falta ser feito”.
A aplicação desse princípio ao processo e ao produto irá reduzir o trabalho ao mínimo e irá permitir o foco da equipe na solução mais simples possível para criar valor ao negócio.
Mas, vejam que implementar a agilidade nas organizações, via de regra, causa muita discussão. Nesse sentido, temos trabalhado bastante com o objetivo de ajudar aos nossos clientes na definição de seus processos ágeis. O que procuramos enfatizar é se o trabalho realizado agrega ou irá agregar valor ao negócio, em comparação às outras tarefas. Quando o valor agregado não existe ou não está suficientemente claro, esses são fortes sintomas de complexidades e/ou excessos.
“Dando às pessoas um simples conjunto de regras e encorajando a sua criatividade elas irão produzir resultados muito melhores do que aqueles impostos por regulamentos complexo e rígidos”. (Dee Hock)
E você? Tem ou já teve dificuldades com a arte da simplicidade em seus projetos? Conte-nos as suas experiências.
Nunca vi sentido algum em colocar "Nome_da_classe.class.php" – esse .class é sem sentido. Todo arquivo php é uma classe então o rótulo deveria vir no arquivo que NÃO é uma classe não é mesmo???
Outra coisa simplesmente nosence é a velha coluna da tabela escrita com "prefix_nome_do_campo"… Pra quê diabos esse bicho antes do campo. Podia ser apenas nome_do_campo…. Mas os devs tradicionais adoram enfeitar com ver_nome, cli_nome, fdp_nome, pqp_nome….
Agora vai falar pra tirar essas firulas que a galera pira…