Disponibilidade Semanal
Desperdícios das Atividades Extraordinárias

- Necessidades sociais ou fisiológicas (descanso, ginástica laboral, reuniões privadas, telefonemas, café, banheiro, cigarro, chats, etc.);
- Qualquer tipo de atividade profissional não relacionada diretamente com os processos de software (reuniões administrativas, atendimento a usuários, suporte técnico, leitura de e-mail ou documentos, telefonemas, etc.).
Quanto você apostaria ser o desperdício semanal de sua equipe em atividades extraordinárias? Para fins de cálculo, vou considerar o valor dos americanos ... 30%. Logo, das 40 horas de trabalho semanal que você alocou em seu plano de projeto, restaram apenas 28 horas para você fazer realmente o que agrega valor a um produto de software! Mas isso não é tudo ...
Desperdícios da Burocracia e do Retrabalho (Muda Tipo II)
Este é um tema que, muitas vezes, me deixa chocado quando converso com alguns profissionais de empresas de software que desconhecem os desperdícios (muda, em japonês) ensinados no pensamento enxuto da Toyota. Ele está diretamente relacionado ao percentual de trabalho semanal que gastamos em atividades burocráticas e correções de falhas, pois não agregam qualquer tipo de valor ao produto final de nosso trabalho. É aquele tipo de trabalho pelo qual deveríamos desenvolver alguma alergia ou vergonha caso o praticássemos de forma sistemática em nossas empresas. Para mim, um trabalho mais nocivo que a atividade extraordinária, pois demonstra a falta de comprometimento da empresa com a qualidade do produto, do processo e satisfação do cliente. Para o modelo de gestão enxuta, ele deve ser totalmente eliminado!
Para fins de cálculo, vou considerar os mesmos 30% das atividades extraordinárias, que é um valor otimista porém aceitável para os níveis de eficiência (excesso de atividades burocráticas) e eficácia (número de falhas a corrigir) de nossas empresas. Logo, das 28 horas de trabalho restantes do item anterior, subtrairemos 12 horas do desperdício da burocracia e do retrabalho, resultando em 16 horas disponíveis para você realmente agregar valor ao produto de software!
Será que é por isso que planejamos uma "margem de segurança" no final do cronograma de projeto? Até agora, você já pode multiplicar a duração estimada para seu projeto por um fator de 2,5 e ainda assim pode ser pouco para a realidade de sua equipe ...
Quer saber por que eu escrevi que esse tema me deixa chocado quando converso com alguns profissionais de outras empresas? Porque diversas vezes ouço afirmações do tipo:
- "Não existe software sem falhas ..."
- "Não tem problema se a equipe de desenvolvimento produzir falhas, nossa equipe de testes poderá detectá-las antes mesmo de entregarmos o produto para o cliente ..."
- "Temos uma equipe de manutenção dedicada somente à correção de falhas ..."
- "Todas as falhas detectadas na fase de testes são registradas e gerenciadas num sistema de controle de não conformidades, cujas correções serão planejadas a fim de serem incorporadas em releases futuros ..."
- "Toda essa burocracia é necessária devido ao nível de complexidade de nossa empresa ... "
Este é outro assunto controverso, pois trata de todas as atividades que não agregam diretamente valor sobre o produto de software (funcionalidades percebidas pelo cliente), mas que não podem ser eliminadas do processo pois estão relacionadas a práticas de engenharia de produto, engenharia de sistemas, engenharia de software e gerência de projetos. Ele está diretamente relacionado a um dos sete desperdícios do pensamento enxuto que fala da necessidade de um processamento adicional devido às ineficiências operacionais de nossa organização. A família Poppendieck faz referência a este desperdício como sendo resultante de um déficit tecnológico, que também pode ser entendido como limitações na capacidade de processamento da equipe.

Por que este assunto é controverso? Vou dar alguns exemplos de atividades que geram desperdícios por ineficiência operacional e você tira suas conclusões:
- Captação e Análise de Requisitos - existem técnicas de comunicação humana que podem diminuir consideravelmente o tempo de realização dessas atividades;
- Especificação e Validação de Requisitos - existem padrões de documentação, baseados em arranjos logísticos da produção Just in Time (JIT), que podem triplicar a capacidade produtiva de uma equipe de software;
- Planejamento de Projeto - existem técnicas extremamente simples, baseadas no balanceamento da produção e na capacidade produtiva da equipe, que permitem estimar o tempo e o esforço necessários para a execução do projeto;
- Controle de Projeto - é possível desenvolver equipes autogerenciadas;
- Inspeção da Qualidade de Código - existem ferramentas de software que inspecionam de forma automatizada a qualidade do código fonte gerado por todos os membros da equipe;
- Testes de Unidade e de Sistema - existem ferramentas que automatizam a realização dos mais diferentes tipos de testes para comprovar tanto a eficácia quanto a eficiência de sua aplicação;
- Integração e Deployment - existem ferramentas que podem automatizar o "empacotamento e entrega" do produto de software em ambientes de produção complexos;
- Setups de Ambientes de Trabalho - existem ferramentas de análise, design, codificação, testes e implantação que permitem realizar de forma rápida e efetiva as atividades de desenvolvimento, manutenção e operação de software;
- E muitos outros exemplos!
Agregação de Valor

Mas a criação dos testes agrega valor ao produto? Sim, pois dependendo da forma como você assume a elaboração dos testes, você estará fazendo simultaneamente a análise e o design daquilo que deve ser codificado (Test Driven Development, TDD), diminuindo consideravelmente tempo e esforço necessários na saída do processo (testes). Afinal, qual "gabarito" devo utilizar como referência para inspecionar e aprovar os componentes que pretendo integrar no produto de software? Se nossa equipe produzir continuamente componentes com falha zero, qual o valor agregado dos testes no final do processo?
Achou pouco tempo para desenvolver testes, componentes e funcionalidades? Se você fizer uma dinâmica com sua equipe de desenvolvimento e pedir para o grupo desenhar um mapa de fluxo de valor do cenário atual de sua organização, é bem possível que possa encontrar uma eficiência de processo (valor agregado) da ordem dos 10%. Organizações de alta maturidade relacionada ao pensamento enxuto costumam apresentar eficiências próximas a 50%.
Como sair deste cenárioEm sânscrito, a palavra "Samsara" é bem conhecida na maioria das tradições filosóficas da Índia (como o Hinduísmo, o Budismo e o Jainismo), e representa o fluxo incessante de renascimentos através dos mundos, mais especificamente, no mundo do sofrimento. No contexto de nosso ambiente de negócios, representaria o fluxo incessante de projetos de desenvolvimento e manutenção de software realizados com altos níveis de desperdício, principalmente de retrabalhos e burocracias que nada agregam ao produto desejado por nossos clientes.
Assim como muitas filosofias orientais consideram ilusório procurar a felicidade em meio à ignorância, longe da prática da autodisciplina e do aperfeiçoamento pessoal, é ilusório acreditar que alcançaremos altos níveis de maturidade organizacional (não estou me referindo aqueles do CMMI ou MPS.BR) longe do desenvolvimento do ser humano, focando somente em ferramentas e processos. Decidir aumentar a produtividade com o aumento puro e simples do número de profissionais da equipe de desenvolvimento também é ilusório, pois acaba gerando retrabalho em diferentes aspectos e demandando ainda mais atividades de apoio e gestão, todas relacionadas a desperdícios no processo.
Aqui vão algumas dicas de por onde você pode começar o caminho da mudança e da conquista da verdadeira eficiência e eficácia do processo de software:- Negocie com os membros de sua equipe a alocação de, pelo menos, 1h de atividades semanais focadas em melhoria de produtos e processos, dentro do escopo das Atividades Extraordinárias (são somente 2% daquela fatia dos 30%);
- Aprenda a enxergar os desperdícios de seu processo e a reconhecer as burocracias desnecessárias com a realização de workshops de Mapeamento de Fluxo de Valor (peça ajuda a algum profissional especializado);
- Incentive a consolidação de uma cultura de qualidade total na equipe de desenvolvimento, começando pela redução periódica dos níveis de falhas detectados nos produtos entregues ao cliente;
- Promova a análise periódica dos problemas, identificando suas causas raízes e os recursos que irão promover a conquista do cenário desejado (resolução dos problemas) - faça isso com a criação de grupos de Kaizen;
- Adote novas tecnologias se as atuais dificultam a eliminação dos desperdícios e a melhoria do processo organizacional;
- Acredite que sua equipe tem competência para trilhar este caminho caso conte com a ajuda de um orientador (coach ou sensei) capacitado.
Nota: Para quem tiver interesse, um excelente livro que trata da redução dos desperdícios segundo o modelo de gestão Toyota é Aprendendo a Enxergar, de Mike Rother e John Shook, 2000.