Lean Software Development: 7 Key Principles (em palavras simples)

Otimização da eficiência e minimização de custos são dois componentes importantes da abordagem lean para o desenvolvimento de software, que já foi testada por muitas empresas de TI na prática.

As raízes desta abordagem remontam à história da conhecida fabricante de automóveis Toyota, e são baseadas em suas abordagens de resolução de problemas. O resultado final é fazer apenas aquelas mudanças que são benéficas e, ao mesmo tempo, que requerem custos mínimos e não demoram muito tempo para serem implementadas.

Em relação ao desenvolvimento de software, a metodologia Lean foi primeiramente coberta por Mary Poppendieck e Tom Poppendieck, que publicaram o livro “Lean Software Development” em 2003. Ele descreve os princípios tradicionais da produção lean em relação ao desenvolvimento de software, assim como um conjunto de 22 ferramentas (práticas) e sua comparação com a metodologia de desenvolvimento ágil.

Lean Software Development – não é uma metodologia para o gerenciamento do desenvolvimento de projetos, como pode parecer à primeira vista. Este é um conjunto de princípios utilizados em vários projetos para melhorar o processo de desenvolvimento e aumentar sua eficácia.

Os 7 Princípios do Desenvolvimento Lean de Software

No cerne do desenvolvimento lean encontra-se uma série de princípios importantes que permanecem praticamente inalterados ao longo dos últimos anos. Vamos tentar explicá-los em palavras breves e simples.

1. Eliminar o desperdício. No desenvolvimento de aplicativos, desperdício é qualquer coisa que não traz nenhum valor de negócio para o cliente, e não melhora a qualidade do produto sendo desenvolvido ou acelera o tempo de lançamento do projeto.

Em outras palavras, é nisto que gastamos dinheiro e não obtemos nenhum lucro. Por exemplo, código não utilizado e funções desnecessárias que não trazem valor adicional tanto para o usuário quanto para o negócio, mas requerem tempo para discussão, desenvolvimento, testes e documentação.

2. Amplify Learning. Para que a equipe possa desenvolver um sistema que traga valor de negócio para o cliente, eles devem ter uma ampla gama de habilidades. A equipe tem que acumular conhecimento e compartilhá-lo, por exemplo, na forma de uma revisão ao final da iteração.

Alguns dos novos aprendizados serão técnicos, e outros, pelo contrário, são classificados como requisitos não funcionais. Por exemplo, ter um entendimento do que um usuário de negócios realmente quer, e não do que os desenvolvedores imaginam. Portanto, a equipe deve constantemente se desenvolver, aprender e acumular conhecimento. Isto permite à equipe evitar problemas no futuro.

3. Decidir como Possível. A idéia principal aqui é esperar até o último momento antes de tomar qualquer decisão, especialmente as irreversíveis. Isto é especialmente verdade quando estamos falando das decisões que podem ter um impacto significativo no sucesso do desenvolvimento.

Todas as decisões devem ser apoiadas por dados analíticos e resultados de monitoramento de processos, caso contrário a equipe corre o risco de ser absorvida em muitas mudanças e pode esquecer o objetivo principal do projeto.

Quanto mais tarde você tomar uma decisão, mais habilidades e compreensão você tem, e menos você terá que refazer mais tarde.

4. Entregue o mais rápido possível. Esta é a base do desenvolvimento iterativo. Quanto mais rápido você mostrar seu trabalho de base para o cliente, mais rápido você receberá seu feedback, assim, ele receberá o produto com as melhorias necessárias muito mais cedo.

Uma função comercial interessante que entrou em produção em poucos meses pode acabar se revelando completamente inútil. Mas se fosse lançada em duas semanas, poderia ser benéfica para o cliente.

5. Dê poder à equipe. O desenvolvimento de software é um processo de trabalho mental, portanto trate as pessoas como profissionais competentes e motivados, ao invés de profissionais com habilidades estreitas na escrita de código ou diagramas de desenho.

Para que as pessoas assumam responsabilidade, sejam motivadas e trabalhem como uma equipe sólida, elas devem estar cientes de sua contribuição para o produto que está sendo desenvolvido. É necessário criar condições nas quais cada pessoa possa estar focada trabalhando na tarefa empresarial atual.

Confie na sua equipe e respeite-a. O fator humano é um dos elementos mais importantes no desenvolvimento de software de sucesso.

6. Build Integrity In. De acordo com os princípios do desenvolvimento enxuto, um problema pode ser encontrado após seu aparecimento, ou você pode eliminar as causas que levam a um problema antecipadamente.

Os autores do Desenvolvimento Lean de Software sugerem que você resolva o problema de qualidade diretamente quando ele começar a aparecer – inicialmente colocando a qualidade no produto, e não deixando a identificação e correção de bugs para testes ou produção. Para isso, vale a pena se mover em pequenos passos e verificar a qualidade após cada passo.

7. Veja o Whole.

A principal maneira de resolver problemas é dividi-los em problemas menores e eliminar consistentemente as causas de sua ocorrência. Mas para ver a raiz do problema, a equipe deve ter um bom entendimento geral do processo de desenvolvimento atual, do conceito e da estratégia do produto sendo desenvolvido.

Sumário

Neste artigo você encontrará os princípios do Desenvolvimento Lean de Software, que você pode aplicar ao trabalhar em projetos em sua equipe. É bem possível que isso lhe permita melhorar a eficiência e otimizar processos.

É necessário entender o fato de que estamos falando de princípios, e não de regras rígidas. Portanto, é preciso fazer algum esforço para adaptá-los efetivamente às especificidades de seu projeto.

Quer iniciar um projeto?

Nossa equipe está pronta para implementar suas idéias. Contacte-nos agora para discutir o seu roteiro!

Deixe uma resposta

O seu endereço de email não será publicado.