Serão apresentadas a seguir os conceitos para o entendimento dos conceitos e aplicações do método lean thinking no desenvolvimento de sistemas e os métodos ágeis que são pertinentes neste método. São apresentados também os princípios do método Lean.
O Lean Thining é uma abordagem que ficou conhecida por seguir um conjunto de conceitos desenvolvida pela montadora de automóveis Toyota, para otimizar em tempo e custo o seu sistema de produção de veículos.
A abordagem do Lean Thinking considera um jeito de ser, de pensar, de fazer e de viver dos colaboradores focando naquilo que é necessário, no local e no momento certo, com resultados máximos de produtividade no ambiente profissional e pessoal.
O método Lean busca eliminar ao máximo os desperdícios, visando aumentar a eficiência, melhorando o tempo de produção, tendo como base a teoria das restrições, da demanda puxada e do just-in-time.
Com isso, os resultados da aplicação da abordagem do Lean Thinking resultam numa melhoria constante, com a máxima qualidade total e com grande flexibilidade, entregando um produto que o cliente final busca.
A abordagem Lean aplicada para a produção de software é bem semelhante. Princípios de agregar valor ao cliente com um software que resolva o problema do cliente final fazem parte do método Lean para a criação de um software.
Além disso, a abordagem busca manter um fluxo de valor que se atenta para um processo de forma completa e um fluxo contínuo de funcionalidade do software mesmo que de forma restrita, para que o cliente e o usuário final possam estar mais próximos de todo o processo do desenvolvimento do software.
No método Lean, a criação do software está muito relacionada com o cliente ditando o ritmo do desenvolvimento e evitando o máximo de desperdícios e, isso gera uma necessidade de adaptação a mudanças.
O método busca uma perfeição com a ideia da melhoria contínua do software e do sistema para que o resultado final seja a total satisfação do usuário final.
Quando você desenvolve e cria software utilizando os métodos ágeis, você pode combinar a abordagem Lean com o Scrum. Neste caso, você utiliza o Scrum como uma ferramenta que dê suporte para que a abordagem Lean seja aplicada.
O mesmo pode acontecer numa combinação da abordagem Lean com o Kanban. Neste caso, o Kanban também é utilizado como uma ferramenta que serve de suporte para que a abordagem Lean seja aplicada na fabricação do software.
A palavra Lean, significa enxuto, isso significa que quando você trabalha com a abordagem Lean, o desenvolvimento do software será enxuto, com o objetivo de eliminar os desperdícios e promover a busca constante de melhoria contínua do software.
Os métodos ágeis têm alguns princípios, mas a essência dessa abordagem é o desenvolvimento iterativo e incremental, funcional em cada fase do desenvolvimento do software e com a participação ativa do cliente em cada etapa.
A escolha de combinar, por exemplo, Lean com Scrum é uma nova forma de trabalhar no desenvolvimento de software, essa combinação é conhecida com Lean Agile. É uma abordagem híbrida de gestão para a fabricação de software de forma que ambas as abordagens se complementam.
Numa abordagem híbrida, há uma fusão das características dos dois métodos de gestão para o desenvolvimento do software, de forma a otimizar os processos de gerenciamento na construção do software. No caso do Scrum + Lean, o Scrum é utilizado para planejamento, gerenciamento e práticas de desenvolvimento, enquanto o Lean aborda os princípios, valores e ferramentas da criação de um software enxuto.
O primeiro princípio da abordagem Lean está relacionada a eliminar o desperdício, ou seja, o que não agrega valor, mapeando o fluxo de valor em cada parte do software. Entregar apenas o mínimo que o cliente busca, usando o mínimo de recursos necessários, com o menor custo.
Podemos considerar desperdícios, por exemplo, trabalho realizado parcialmente, documentação desnecessária, funcionalidades desnecessárias, falta da dedicação centrada, tempo, dificuldade na comunicação e defeitos no software.