04 nov 2015

Lean Thinking e Qualidade do Software

lean-thinking-transformacao-digital-04

Como qualquer setor industrializado, a produção de software enfrenta os mesmos desafios de ganhar produtividade, reduzir custos, produzir inovação e garantir qualidade. No pós-guerra, o pensamento enxuto, o Lean Thinking, possibilitou aos segmentos, como a indústria automotiva, alcançar novos patamares produtivos. Por que não possibilitaria o mesmo à produção de software?

Redução de desperdícios, melhoria contínua e produção puxada são ações que também fazem todo o sentido na produção de software. Por isso, empresas, organizações de qualidade de software, vêm consolidando o pensamento Lean para o mundo de produção da tecnologia, em especial, de software e “traduziram” Lean Thinking em 7 princípios relacionados a software:

  • Elimine o desperdício
  • Empowerment: ‘Empoderar” os Times
  • Faça entregas rápidas
  • Inclua a Qualidade no Processo
  • Crie Conhecimento
  • Adie Decisões e Comprometimentos
  • Otimize o Todo

 

CTA-ebook-transformação-digital

Neste post:

  • Elimine o desperdício

Desperdício é tudo aquilo que não traz valor para um cliente final, um usuário e acaba, ao contrário, gerando custo e esforço inútil. Em matéria de software, por exemplo, são:

  1. funcionalidades pouco encontradas ou pouco usadas;
  2. processos mais complexos do que deveriam ser (criando passos extras para se chegar a um resultado, uma ação)
  3. documentação que nunca vai ser lida, etc.

Alguns exemplos de onde estão os desperdícios que o pensamento Lean pretende erradicar no processo de desenvolvimento de software:

Na Gerência de Requisitos:

Quando se estabelece previamente e muito antecipadamente requisitos, como nas práticas tradicionais de desenvolvimento de software, a chance de se desenvolver requisitos que já foram superados são enormes.

A bem da verdade, essa é uma questão que transcende os requisitos e acaba na codificação. Há cerca de 5 anos, o Standish Group dizia no seu “Chaos Report” que  apenas 7% das funcionalidades escritas em um software comercial nos EUA eram utilizadas sempre e que 45% das funcionalidades nunca eram usadas.

A equação, porém, é simples: se escreve código demais, gerando complexidade, mais necessidades de testes; volumes grandes de documentação, necessidades maiores de manutenção… Custo… Custo…. Custo

Na Estruturação dos Processos:

A pergunta deve ser sempre a mesma: tudo isso é realmente necessário? Passos a mais é burocracia. Desperdício de tempo e de dinheiro. E muito provavelmente insatisfação do usuário.

  • Empowerment: “Empoderamento” do time

Outro pilar fundamental é a forma de organizar e gerir a equipe. É precioso apostar num ambiente com autonomia, no sentido de possibilitar que a equipe se organize e se auto-oriente. As reflexões que você deve fazer:

1) Todo o time se envolve suficientemente nas análises, discussões e decisões?

2) A sinergia, o modus operandi do time favorece o desenvolvimento das pessoas?

3) Os softwares, os produtos refletem o pensamento e o estilo de toda a equipe?

4) Atuamos muito no micro-gerenciamento? Ou praticamos auto-gestão e feedback?

  • Faça entregas rápidas

Só um enunciado bastaria: entregar software de maior valor, de forma rápida e contínua significa maximizar o ROI (Return Of Investiment) do projeto. Entregar mais rápido significa também colher feedback; significa errar mais cedo e aprender com os erros. Em resumo, o desenvolvimento de um software precisa ser um processo iterativo.

 

 

 

Leave a Comment