Muda, Mura e Muri no Desenvolvimento de Software

Olá, pessoal, tudo certo?
Processos bem conduzidos em uma empresa de desenvolvimento de software são extremamente importantes para alcançar a qualidade esperada do produto e garantir um retorno satisfatório de investimento. Para que isso aconteça, Muda, Mura e Muri não devem existir na organização.
Nunca ouviu falar desses três termos? Acompanhe o artigo!

Muda, Mura e Muri (3M) são termos japoneses relacionados ao desperdício que uma empresa pode ter devido à inconsistências nos processos internos. Embora seja um conceito geralmente empregado na área de administração de empresas, fiz questão de apresentá-los neste artigo, associando-os ao segmento de desenvolvimento de software.

Muda

O primeiro termo do 3M diz respeito ao desperdício em geral. O retrabalho, o tempo de espera e qualquer tarefa que não agregue valor (tanto para a empresa quanto para o cliente) são considerados desperdícios. No contexto de fábrica, os japoneses demonstram que até mesmo a movimentação excessiva de um funcionário, como, por exemplo, percorrer vários andares diariamente para buscar ferramentas ou entregar relatórios, representa um desperdício.

Em fábricas de software, já podemos identificar vários fatores recorrentes que revelam Muda. Um dos mais evidentes é a falha na especificação de requisitos, que compromete as expectativas do produto e, consequentemente, causa retrabalho ao corrigir defeitos reportados pelos usuários. Como sempre ressalto, requisitos equivalem ao alicerce das funcionalidades, logo, devem estar bem consistentes.

Outro fator é a ausência das práticas de Engenharia de Valor, no qual já publiquei alguns artigos. Do mesmo modo que tarefas que não agregam valor são desnecessárias, funcionalidades que raramente serão utilizadas pelo cliente devem ser descartadas do Program Backlog.

E não é só isso. A utilização de ferramentas administrativas internas para documentação de atividades, quando não geram valor para a gerência, também são desperdícios. Já trabalhei em empresas em que o desenvolvedor gastava mais tempo documentando um bug do que propriamente codificando a correção. Além disso, dava para contar nos dedos as vezes que essa documentação foi resgatada para alguma finalidade.

Muda também é encontrado em inconsistências no processo de desenvolvimento. Por exemplo, o tempo que um Analista de Teste fica ocioso esperando a conclusão de uma implementação gera um desperdício para a empresa. Cabe aqui a importância do ciclo contínuo sugerido pelo Desenvolvimento Ágil. 🙂

Mura

Já o Mura significa desbalanceamento ou irregularidade, como, por exemplo, a distribuição desproporcional de atividades em um mesmo setor. Quando uma máquina na fábrica está trabalhando em excesso enquanto outra máquina da mesma área está ociosa, nota-se a presença de Mura.

Agora, substitua a palavra “máquina” por “pessoa” e “fábrica” por “empresa”: é o que acontece no desenvolvimento de software. Um bom exemplo é a distribuição desproporcional de user stories em uma equipe de desenvolvimento, talvez ocasionada pelo Code Ownership.

Mura também ocorre quando há variações nos processos da empresa, causando instabilidade nas operações. Quando há uma calmaria no período da manhã e a parte da tarde se transforma em uma correria caótica em função de um erro com SLA, por exemplo, significa que há variabilidade no processo, portanto, existe Mura. Neste caso, vale revisar atentamente o processo de manutenção corretiva da empresa.

Muri

O último termo, Muri, se refere à sobrecarga e pode-se dizer que é uma consequência da existência de Muda e Mura. Quando uma pessoa fica sobrecarregada de atividades, excedendo o limite de sua capacidade (física ou mental), os resultados são comprometidos, como a qualidade de uma codificação, por exemplo. O motivo é óbvio: quando se faz várias atividades ao mesmo tempo, nenhuma sai bem feita.

Esse cenário geralmente ocorre quando um desenvolvedor está trabalhando em uma evolução com prazos apertados e repentinamente é interrompido para tratar de um erro no software em produção, claro, sem falar nas atividades paralelas, como documentação, apontamento de horas e reuniões. Alternar o fluxo de raciocínio com frequência é cansativo, como já mencionei no artigo sobre Zona de Fluxo do programador.

No contexto da administração, profissionais mencionam que Muri pode levar ao defeito ou quebras de máquinas na fábrica, impactando no processo de produção. Da mesma forma, no desenvolvimento de software, Muri pode trazer problemas de saúde ou desmotivação para os profissionais, prejudicando o WIP (Work In Progress).

Observe que Muda, Mura e Muri não podem (ou não devem) ser eliminados isoladamente, já que estão intimamente relacionados. A boa notícia é que, ao eliminar um deles, os outros dois já serão parcialmente solucionados. 🙂

 

Obrigado pela atenção, leitores!
Até a próxima!


André Celestino