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.
10 comentários:
Luiz, parabéns pelo teu artigo! Hoje, como CIO, sinto na pele esse desafio de aumentar a eficácia e a eficiência das equipes (e não são somente de software). Usarei esse artigo e a tua apresentação no Agile Weekend para discutir o assunto na empresa. Heptabraço!
Adail Retamal
Muito legal o artigo Luiz, e excelente uso das tirinhas do Dilbert! :-)
Vou seguir a boa prática do Adail e mandar o artigo para gerar a discussão dentro da empresa. :-)
Parabéns Luiz. Este assunto é discutido em minhas equipes a cada final de Sprint. Com dados mais reais poderemos enriquecer nossas discussões. Não devo dizer parabéns... e sim, obrigado pelo post!!!
Meus caros colegas, fico contente que as horas dedicadas a escrever este texto terão algum valor no trabalho de vocês! Fico feliz de ver CIO´s como vocês, Adail e Daniel, focados no desenvolvimento de competências num momento em que todos falam em cortes nos custos de TI. O que quase todos os gestores de nossa área ainda não entenderam é que somente o desenvolvimento de competências trará resultados efetivos a curto, médio e longo prazo para suas organizações! Me parece que a grande maioria ainda prefere rasgar dinheiro ou não reconhecer a "doença" que aflige nossas equipes de software ... Pelo menos são raros aqueles que estão fazendo o tratamento adequado ... Abraços e sucesso na empreitada!
Espetacular artigo Parzianello. Semana passada tivemos uma discussão em nossa equipe sobre o rendimento de nosso trabalho. Teu artigo veio em boa hora. Também o encaminhei para a equipe para refletirmos sobre ele. Obrigado por compartilhar.
Excelente artigo!
Gostei do teu blog e pretendo passar aqui mais vezes. Quem sabe não trocamos algumas experiências sobre agilidade?
Aproveito e deixo um convite para visitar meu blog Conhecimento e TI (http://www.conhecimentoeti.com)
Caríssimo, muito bom o comentário. Sempre é possível aumentar produtividade olhando os desperdícios. Mas atenção para algo que pode prejudicar ainda mais a realidade de TI, que é reduzir formalmente a jornada para 40 horas. O setor de TI já sofre em se adequar a uma legislação trabalhista que é antes da era do BIT e da flexibilidade, imagine com essa. Sobre o assunto recomendo ler http://www.imil.org.br/artigos/a-reducao-da-jornada-de-trabalho/
Caro Renato, muito obrigado pelo seu comentário! Apesar do Estado e da sociedade se beneficiarem cada vez mais dos recursos de TI, ainda engatinham quanto a forma que devem trabalhar formalmente em arranjos produtivos baseados no processo criativo do desenvolvimento de software. Já é sabido que inovação e produtividade criativa não estão associadas a quantidade de horas de trabalho, mas sim à qualidade das horas que realizamos durante nossa jornada de trabalho. Por isso, o que sou terminantemente contra é o aumento abusivo da carga horária diária dos profissionais de TI em função da escassez de mão de obra ou da exploração individual de "recursos", semelhante ao que era feito no início do século passado, nos sistemas produtivos baseados na produção em massa (Taylor). Precisamos desenvolver novas competências e novos modelos de trabalho para todas as áreas do conhecimento. Mas parece que a maioria do empresariado de TI não tem tempo para pensar de forma efetiva na melhoria contínua de suas organizações ... Um abraço! Luiz
Parzianello, tudo bem? Meu nome é Isaías sou programador Java, hoje resolvi de dedicar um tempo de meu final de semana para ler meus emails e recebi a informação de seu post. Achei bem interessante teu ponto de vista e concordo com muitas coisas. Acho que é preciso um pouco de maturidade para que o profissional entenda que a administração de seu tempo de trabalho pode ser comparada com a administração de sua vida pessoal, tu não pode passar teu final de semana inteiro na farra. Tu também nao pode passar teu final de semana inteiro trabalhando e produzindo (um dia teu corpo vai reclamar). É possível sim conciliar a informação externa e o foco no trabalho e chegar num nível ideal. Só que essa maturidade precisa vir de dentro de cada um, se tu produz muito tem o direito de aliviar essa carga. O contrário é um caso problematico. Portanto, medidas que incentivem esse tipo de pensamento por parte da empresa podem "ajudar" mas tem que partir dos colaboradores, eles tem que entender, para poder fazer automaticamente. Com isso, projetos podem entrar "à rodo", o cara vai matar no peito e fazer acontecer, da melhor forma possível, dando o melhor de si, o resto é o bom senso quem decide. Só que muita coisa vem do berço né? A empresa precisa suprir, em alguns casos, o que faltou na educação primária. Essa é uma charada delicada de se matar. É bem mais complicado, é humano. Abraços.
Prezado Isaías, meu breve comentário sobre tua mensagem: mandou bem na análise! Obrigado pela contribuição e aguarde novos posts em breve! Como eu disse, estou de volta ... ;-)
Postar um comentário