Skip to main content

O que é desenvolvimento de software enxuto?

O Lean Software Development é um paradigma que descreve um conjunto ideal de circunstâncias teóricas para a criação de software. É importante pensar no Lean Software Development como apenas uma das muitas teorias de desenvolvimento de software, cada uma com seus prós e contras. Ao usar o modelo de desenvolvimento de software enxuto, há sete pontos cruciais para entender: eliminar desperdício, ampliar o aprendizado, tomada de decisão tardia, entrega rápida, capacitação da equipe, construção da integridade e visualização do todo.

A eliminação de desperdícios é um objetivo de economia de tempo e dinheiro. Ao reduzir a quantidade de código excedente e os recursos supérfluos no Lean Software Development, a equipe de desenvolvimento de software economiza dinheiro e entrega um código mais rígido ao usuário final. Assim, os programas criados usando o modelo Lean Software são menos intensivos em recursos e mais focados.

Aprender amplificação no Lean Software Development refere-se ao conceito de uso de ciclos curtos entre as fases de teste. Em teoria, isso fornece feedback mais constante aos engenheiros, por sua vez, permitindo que os problemas sejam identificados mais cedo na cadeia de desenvolvimento. Os usuários finais são incluídos nessas fases, garantindo que as versões beta do programa atendam às suas necessidades.

A tomada de decisão tardia permite flexibilidade adicional no cronograma do projeto, permitindo que as decisões sejam tomadas somente após a coleta do número máximo de fatos. Por exemplo, decidir antes do início do desenvolvimento que o Programa X deve ter os Recursos A, B e C pode parecer uma boa idéia, até que testes no terreno revelem que esses recursos não podem ser concluídos no prazo. No desenvolvimento de software enxuto, a decisão de incluir A, B e C seria adiada até que se soubesse se isso era realmente possível.

Entrega rápida refere-se a uma preferência por fornecer ao usuário final um modelo beta em funcionamento o mais rápido possível - possivelmente quando o programa estiver 85 a 90% completo - e continuar a corrigir e atualizar esse modelo durante a vida útil do programa. Isso contrasta com esperar até que o programa esteja 100% completo e entregá-lo então. Em teoria, isso permite ao usuário final extrair mais vida útil do programa, além de permitir à equipe de desenvolvimento um feedback adicional dos modelos beta em funcionamento.

Capacitação da equipe significa dar à equipe mais autonomia durante o processo de programação. Como resultado, eles teoricamente se tornarão mais investidos no projeto. Além disso, significa fornecer a eles acesso aos clientes, correspondendo melhor às expectativas da entrega real.

Por fim, a construção da integridade e a visão do todo se concentram na visualização do programa como uma única unidade. Compare isso com outros sistemas, que vêem um programa como uma coleção de retalhos de diferentes sistemas. Essa maneira de pensar "em geral" fornece teoricamente um produto mais completo, pois toda a equipe está na mesma página quando se trata do produto acabado.