Desenvolvimento Enxuto: sete princípios

Tempo de leitura: 9 minutos

Se buscarmos pela definição da palavra ‘enxuto’ no dicionário, encontraremos aquilo de que foi retirado tudo que era supérfluo ou excedente. Não é a toa que o Lean Software Development foi traduzido para português como Desenvolvimento Enxuto de Software, afinal, o método propõe remover desperdícios para reduzir riscos e promover uma entrega mais ágil.

Mas o que é desperdício? No desenvolvimento de software, é tudo aquilo que não agrega valor ao produto final. Entende-se por valor, nesse caso, a soma das demandas do cliente com as necessidades do produto – todas ligadas a funcionalidade e usabilidade. Criar então fluxos de valor significa encadear processos de trabalho, somente os essenciais, para atingir os resultados desejados.

Marcos importantes do Desenvolvimento Enxuto

A abordagem Lean tem uma longa história, intrincada a da própria teoria da administração e com importantes ligações aos traços culturais de sua origem. Ela surgiu na Toyota, na década de 1950, onde Taiichi Ohno – então chefe de produção – trabalhou na criação de um método alternativo de organização.

Ao invés de copiar o modelo norte-americano, que se adaptava muito bem à produção em escala, Ohno estava preocupado em criar um método que lidasse bem com a complexidade do Japão no pós-guerra: escassez de recursos, inconstância de pedidos e variedade de itens produzidos.

Por ter sido desenvolvido dentro da Toyota, o sistema ficou conhecido como Toyota Production System (TPS). Quarenta anos depois, com a publicação do livro The Machine That Changed The World (1990) pelo Massachusetts Institute of Technology (MIT), o modelo ganhou a atenção do mercado. Por meio de pesquisas, comprovou-se que ele era muito mais eficiente do que o modelo tradicional de produção e foi cunhado então como Lean, para representar um novo paradigma.

 

toyota_desenvolvimento_enxuto

Fonte: http://www.lean.org/.

 

É interessante observar, no entanto, que os métodos Lean desenvolvidos dentro da Toyota não incluíam apenas uma abordagem para produção fabril (o TPS), mas também métodos para a gestão da cadeia de suprimentos (Keiretsu) e para o desenvolvimento de produtos. Esse último foi adaptado para o universo de desenvolvimento de software quando, em 2003, Mary e Tom Poppendieck lançaram a obra Lean Software Development: an Agile Toolkit.

De lá para cá, o método se popularizou na área de TI. Hoje ele é indispensável na criação de produtos digitais inovadores.

Princípios do Desenvolvimento Enxuto

O livro de Mary e Tom estabeleceu princípios específicos ao Desenvolvimento Enxuto de Software. Isso porque, apesar de compartilhar dos valores do Lean aplicados na manufatura, na criação de soluções digitais o objetivo não é a larga escala de um mesmo produto (alcançado por meio da repetição), mas sim o desenvolvimento de softwares únicos, adequados aos seus contextos a às necessidades dos usuários.

Nesse sentido, na área da TI o Lean está muito mais ligado à melhoria contínua e ao aumento de eficiência – se aproximando, inclusive, dos Métodos Ágeis de Desenvolvimento. Vamos conhecer os princípios?

     

    • Eliminar o desperdício: parece muito mais fácil pensar no desperdício em produtos materiais do que em software, certo? Mas a verdade é que a ideia é a mesma: é preciso olhar para todo o processo de criação, do momento em que o trabalho começou com o pedido do cliente até a entrega do produto digital, e retirar todas as atividades desnecessárias que não agregam valor ao projeto. Um exemplo são funcionalidades que não serão efetivamente usadas, mas que são desenvolvidas a pedido do cliente ou em uma tentativa de agradar os usuários. Aqui, vale lembrar da importância de uma boa Concepção para guiar o Desenvolvimento Enxuto. Também é importante citar que esse método enxerga estoques intermediários como desperdício, porque todo estoque gera um trabalho adicional para sua gestão. Mary e Tom explicam que, no nosso universo, estoque é todo trabalho ‘incompleto’. Por exemplo: especificações prontas, mas que ainda não estão sendo usadas, são um tipo de estoque; assim como um software pronto, mas que não está em produção.

 

    • Criar com qualidade: sabemos que os Analistas de Testes têm papel fundamental em qualquer projeto, certo? No Lean, mais do que encontrar erros posteriormente, esses profissionais devem atuar junto aos desenvolvedores para garantir a construção com qualidade a priori. Uma forma de efetivar esse princípio é testar cada pequena implementação, e não somente toda a funcionalidade quando pronta. É a famosa prevenção, que tem como base o controle do processo para evitar possíveis erros. Um conceito muito forte do Lean é o stop the line, a ideia de que se alguém encontra qualquer problema ao longo do processo, deve parar o fluxo de trabalho para resolvê-lo, antes que ele se prolongue. Além de uma mudança na forma de tratar a qualidade, isso também implica em uma transformação cultural: todos passam a ser responsáveis pela qualidade.

 

    • Criar conhecimento: já se foi o tempo em que se desenvolvia somente o que foi planejado no início do projeto. Criar conhecimento tem a ver com aprender durante o trabalho, observar o mercado, colher feedbacks dos usuários e repriorizar. É importante criar uma cultura de aceitação de mudanças, desde que essas sejam devidamente gerenciadas e compartilhadas entre todos os integrantes do time.

 

    • Adiar Comprometimentos: antes de decidir, reduza as incertezas. Isso significa ter fatos concretos como guias, não se basear em especulações. Comprometimentos são decisões permanentes. Esse princípio está fortemente conectado ao anterior, de Criar conhecimento, ou seja: aprender, enxergar e ouvir para determinar.

 

    • Entregar rápido: de nada adianta lançar um produto que é necessário hoje, no ano que vem, certo? No Desenvolvimento Enxuto de Software a rapidez tem a ver com a volatilidade do mercado, mas também com a correção rápida de erros e a colheita de feedbacks. Agora, ser rápido não pode significar perda de qualidade. Por isso, planos, processos, organização, padronização e time coeso são indispensáveis para trabalhar nesse princípio.

 

    • Respeitar as pessoas: aqui, devemos olhar para o respeito de forma ampla. É claro que educação é essencial, mas nesse caso a confiança está inclusa. Isso significa compreender as expertises de cada membro da equipe e acreditar no seu potencial; significa dar ouvidos a todos e avaliar suas ideias igualmente, independente do papel que ocupam. Um time que se respeita trabalha melhor e em harmonia.

 

    • Otimizar o todo: Aqui entra um aspecto muito tratado na Teoria de Sistemas, o importante é otimizar o todo, e não as partes. Já dizia Aristóteles: o todo é maior do que a soma de suas partes. O produto final não é resultado somente de códigos, testes e desenhos de interface. Ele envolve desde o atendimento inicial do cliente, todas as reuniões, todos os processos, todo o aprendizado. Otimizar o todo tem a ver com melhorias constantes, do início ao fim da jornada de um projeto. Esse item é bastante difícil de seguir, já que geralmente somos ensinados a otimizar as partes: somos cobrados pela produtividade individual de cada etapa ou de cada pessoa. Seguir esse princípio passa por aprender a enxergar a floresta, e não apenas as árvores.

Uma mudança cultural

O pensamento Enxuto é revolucionário para o Desenvolvimento de Software, mas ele não é simples. Exige mudança cultural, absorção dos princípios e transformação de atitudes arraigadas em nossas empresas.

Muitas vezes, enxergamos times capazes de implementar Scrum, mas que ficam com o sentimento de que falta algo: a tal cultura ágil. O estudo do Lean e dos seus princípios é um dos caminhos mais valiosos para absorver essa cultura, porque nele não ficamos apenas na definição de um método de trabalho, mas olhamos para os princípios com profundidade. É como se ele nos possibilitasse verdadeiramente entender os porquês do ágil.

Sugestões ou críticas para nosso blog? Entre em contato pelo endereço mkt@auxysoft.com.