A entrega de produtos digitais está evoluindo, graças à velocidade da mudança na tecnologia. As equipes digitais percebem que manter uma vantagem competitiva hoje significa adaptar seus processos e métodos para efetuar mudanças mais rapidamente.
Falando em desenvolvimento de softwares em empresas de tecnologia, a metodologia Lean passa a ser cada vez mais popular, sendo que no setor temos o chamado Desenvolvimento Enxuto de Software.
Para começar: o que é a metodologia Lean?
Em português, “lean” significa “enxuto”. Quando falamos em “metodologia Lean” nos referimos a um conjunto de princípios elementares para reduzir os riscos de um projeto e entregar rapidamente um produto de alta qualidade ao cliente.
A metodologia Lean tem suas origens na indústria de manufatura. O conceito de pensamento enxuto (Lean thinking) foi proposto nos anos 90 como uma maneira de reduzir riscos de projeto. Isto é realizado através da redução de desperdício, iniciando um novo serviço somente quando necessário, reduzindo gargalos de processo e trabalhando apenas em tarefas que agregarão valor ao projeto.
Esta abordagem foi proposta pela Toyota e o termo manufatura enxuta (Lean Manufacturing) tem sido sinônimo do seu processo de manufatura desde então, sendo que a empresa utiliza a metodologia Lean para reduzir o desperdício e aumentar a qualidade de seus veículos.
Em 2003 Tom & Mary Poppendieck escreveram um livro sobre a adaptação dos princípios de manufatura enxuta ao desenvolvimento de software (chama-se “Implementando o Desenvolvimento Lean de Software: Do Conceito ao Dinheiro”). A obra é amplamente considerada o motivo da popularização do desenvolvimento enxuto de software.
Mas, a que se refere o Desenvolvimento Enxuto de Software?
Do inglês Lean Software Development, o Desenvolvimento Enxuto de Software surgiu do intuito de auxiliar no processo de adaptação da engenharia de software. Para isso, partiu-se da metodologia Lean aplicada nas indústrias automobilísticas.
O desenvolvimento enxuto de software tem os mesmos princípios subjacentes básicos da manufatura enxuta, mas sua aplicação é diferente: identificar o potencial de melhoria, em vez de “reduzir o desperdício” (o primeiro princípio da manufatura enxuta);
Ao contrário da manufatura, o processo de desenvolvimento enxuto de software não pode ser caracterizado como um processo estável e repetível (mesmo que às vezes pareça repetitivo). Dessa forma, o princípio Lean de reduzir o desperdício deve ser aplicado de maneira diferente no desenvolvimento de software.
O aumento de eficiência, quando aplicado no desenvolvimento de software, se concentra na melhoria do processo, e não nas pessoas. Como disse W. Edwards Deming, “85% das razões para o fracasso são deficiências no processo, e não o empregado. O papel da administração, portanto, é mudar o processo, em vez de “intimidar os indivíduos a fazer melhor”.
Já a eliminação de gargalos envolve a identificação de etapas no processo de desenvolvimento de software. O objetivo é tentar eliminar esses gargalos entre as etapas.
Pontos de relação entre Metodologia Lean e Desenvolvimento Enxuto de Software
Segundo Fadel e Silveira (2010), a metodologia Lean é distribuída em sete princípios. A seguir falamos de cada um deles e mostramos pontos de ligação da metodologia com o Desenvolvimento Enxuto de Software:
- Eliminar desperdício: este é o princípio ao qual se dá a maior ênfase. Às vezes pode ser difícil mensurar como um desenvolvimento de software pode gerar desperdício, mas na metodologia Lean tudo o que não agregar valor é considerado desperdício.
- Amplificar o aprendizado: examine uma ideia, propondo alternativas a ela, antes de partir para a ação. A melhor abordagem para melhorar o ambiente de desenvolvimento de software é pela expansão do conhecimento.
- Decidir o mais tarde possível: o principal conceito deste princípio é diminuir as incertezas retardando as decisões até que as mesmas possam serem tomadas com base em acontecimentos mais concretos. Decisões tardias tendem a ser mais acertadas porque as melhores decisões são feitas baseadas em fatos, e não em suposições ou especulações. Assim, as mudanças são vistas como oportunidades para aprender e atingir metas.
- Entregar o mais rápido possível: sem entregas rápidas não é possível colher feedback, ou aprender com erros, por exemplo. Velocidade na entrega garante que o cliente receberá o que ele precisa hoje e não o que ele precisava ontem. Franco (2010) relata que nos últimos anos a entrega rápida de software tem sido mais valorizada do que a estratégia de não cometer erros, porque muito auxilia no atendimento das necessidades atuais dos clientes.
- Capacitar a equipe: segundo Fadel e Silveira (2010), a metodologia Lean utiliza técnicas de produção puxada (Pull System – Kanban) para agendar o trabalho e em empresas são dotadas de mecanismos com sinalizações locais. Para Franco (2010) a sinalização local é feita por meio de gráficos visuais, reuniões diárias, integrações frequentes e testes automatizados, os quais ajudam os outros desenvolvedores a identificarem o trabalho que precisa ser realizado. O desenvolvimento enxuto de software é um espelho da equipe de desenvolvimento. Para que as pessoas possam assumir responsabilidades, serem motivados e atuar como uma equipe, elas precisam de confiança e de respeito.
- Construir com qualidade: de acordo com Bassi Filho (2008), o princípio de construir com qualidade está relacionado com o dever da equipe de desenvolvimento em elaborar soluções que deixem a equipe segura de que está sendo construído um software de qualidade.
- Enxergar o todo: no desenvolvimento enxuto de software, o software não eve ser visto somente como um quebra-cabeça formado de partes separadas que serão montadas juntas para fazer o produto, afinal, o cliente não enxerga o produto como um emaranhado de funcionalidades colocadas juntas. O usuário final deve enxergar um produto coeso e que funcione perfeitamente. Então, na metodologia Lean os desenvolvedores devem estar conscientes de que a parte que ele está desenvolvendo é significante para todo o projeto.
Concluindo
Com a análise dos princípios da metodologia Lean e de sua aplicação no desenvolvimento enxuto de software, pode-se observar que esta metodologia serve principalmente para auxiliar na identificação dos pontos que precisam ser adequados dentro de um processo de desenvolvimento de software.
Ao final do livro “Implementando o Desenvolvimento Lean de Software: Do Conceito ao Dinheiro”, Tom & Mary Poppendieck dizem que:
“Os princípios Lean foram testados e aprovados em diversas disciplinas, e quando apropriadamente aplicados, são garantidos que funcionam em desenvolvimento de software. Apropriadamente aplicados significa que todos os seus princípios sejam utilizados e que ferramentas estão sendo utilizadas para traduzi-los em práticas ágeis apropriados para o ambiente. Esta garantia é inválida se práticas forem transferidas diretamente de outras disciplinas ou domínios sem pensar, ou se os princípios de capacitar a equipe e construir qualidade forem ignorados”.
E já que o tema deste artigo tem a ver com a Metodologia Lean, se você quiser saber mais, sugerimos a leitura do post: Lean, Six Sigma e BPM: uma aliança de resultados.