Existem diversas abordagens para melhorar o desenvolvimento de software, entre elas o Agile e o Lean. Os gerentes devem decidir qual delas implantar em suas organizações. As abordagens podem ser combinadas dependendo dos problemas que precisam ser resolvidos.
Na palesta Agile para construir, Lean para aprender, Régis Medina apresentou o que aprendeu a respeito das duas abordagens. O InfoQ americano fez uma entrevista com Medina para saber como combinar Agile e Lean, com foco em pessoas e aprendizado.
InfoQ.com: A sua apresentação na Conferência da Europa Central sobre Lean e Kanban foi sobre "Agile para construir, Lean para aprender". Por que você recomenda essa combinação?
Medina: 10 anos após o Manifesto, o Agile tem se provado efetivo em reduzir os ciclos de desenvolvimento, aumentando drasticamente a qualidade, eliminando os silos dentro das equipes e tornando o gerenciamento de projetos mais fácil. Contudo, quando considero as questões que uma equipe ágil encontra em seu caminho, vejo três desafios surgirem:
- Fazer os produtos corretos: que requerem o refinamento das práticas do Product Owner. Vejo muitos Product Owners mudando o rumo das ações entre iterações ou pedindo por funcionalidades que acabam não sendo usadas. O desafio é desenvolver as habilidades dos Product Owners para ir além da coleta das demandas e necessidades dos usuários, de tal maneira a garantir que serão desenvolvidas somente as funcionalidades necessárias;
- Entregar mais ao final de cada iteração: Com frequência, o número de funcionalidades entregues frusta o cliente porque ele tem seus próprios prazos para cumprir, independente do prazo negociado com a equipe de desenvolvimento. Nesse caso, as equipes ágeis ficam muitas vezes sem ter a menor ideia do que fazer porque não sabem como desenvolver mais rápido sem comprometer a qualidade do software e sem fazer longas horas extras;
- Aprender a colaborar melhor com os demais departamentos dentro da empresa: acima e abaixo da cadeia de valor. Mencionei [na apresentação] o caso de equipes de marketing que precisam de funcionalidades mais rapidamente. Do outro lado da cadeia encontramos times de produção, para os quais estão surgindo oportunidades promissoras com o crescimento de DevOps. Mas na prática, as equipes ágeis têm dificuldades de entrar em acordo com os outros, o que geralmente causa atraso na produção ou causa incidentes. Um dos principais obstáculos que vejo nessa área é a dificuldade das equipes ágeis interagirem para o seu próprio gerenciamento.
Sobre esses assuntos, a comunidade sobre Agile está constantemente explorando e experimentando novas aboradagens. Pessoalmente, após 10 anos praticando Agile, decidi dar um pequeno passo atrás e pegar a oportunidade de aprender Lean em outras áreas de TI, guiado por um Sensei Lean real. Quando vi os resultados espetaculares em vários domínios, percebi que havia uma grande oportunidade aqui para a comunidade de Agile.
Lean e Agile são perfeitamente compatíveis mas muito diferentes em suas naturezas. Lean não é um processo, ou um conjunto de ferramentas para melhorar processos, mas sim uma prática de gerenciamento que as pessoas vêm desenvolvendo há muito tempo com a ajuda dos seus senseis. Gerentes e líderes de equipes que praticam Lean aprendem:
- Como melhorar a satisfação de clientes além das suas demandas iniciais;
- Como identificar oportunidades de melhoria nas suas equipes de forma a obter ganhos de desempenho significantes e mensuráveis, e conectá-los às necessidades de suas empresas. Eles alcançam isso fazendo as coisas certas logo na primeira vez, melhorando o fluxo de trabalho entre as pessoas ou encontrando meios realizar certas tarefas muito mais rapidamente;
- Como criar um ambiente de trabalho na qual os membros da equipe desenvolvem as habilidades corretas mais rapidamente e pensam mais profundamente sobre como realizar o trabalho melhor.
InfoQ.com: Como a combinação de Agile e Lean ajuda a aumentar a nossa percepção a respeito do valor que podemos entregar aos clientes?
Medina: Devido à sua natureza iterativa, o Agile envolve o cliente − ou pelo menos um representante do cliente − muito no projeto. Mas ainda assim, há espaço para melhoria quando é necessário compreender o valor a partir da perspectiva do cliente. Isso não é fácil, visto que aquilo que os clientes pedem não é necessariamente o que eles realmente precisam ou o que irá guiar as suas decisões no futuro.
E nesse momento é o que o Lean se torna conveniente:
- Pois desenvolve o hábito do "vá & veja". No Lean isso é chamado de "genchi genbutsu", isso significa ir a campo para entender o contexto do cliente e formular o problema que está tentando resolver;
- Fornece um framework para analisar as expectativas do cliente e entender como o produto ou o serviço é utilizado. Lean desenvolve a sua habilidade tanto de ver valor quanto de detectar desperdícios em campo. Isso ajuda a compreender a experiência do cliente e melhora o produto de forma a gerar o menor desperdício possível para os seus usuários;
- Ajuda a alinhar os membros do projeto nos objetivos de forma que todos fiquem mais concentrados nos problemas do cliente que devem ser resolvidos do que na lista de funcionalidades que serão desenvolvidas;
- Apoia a visualização a evolução do produto como um fluxo constante de experimentações que ajudam a entender melhor o contexto do cliente e as suas preferências.
InfoQ.com: Tanto o Agile como o Lean ajudam a prestar mais atenção nas pessoas. Como eles se complementam?
Medina: O Agile fortalece a colaboração e a comunicação entre os patrocinadores do projeto e cria um ambiente que ajuda a equipe a fazer um trabalho melhor com um ritmo aceitável. Esse aspecto é muito próximo ao "Respeito às pessoas" do Lean. Mas o Lean vai um pouco além com a noção de treinamento.
Taiichi Ohno acreditava que o desperdício que vemos todo dia em nossas empresas é o resultado de nossas incompreensões. No Lean, investir no desenvolvimento de habilidades e na melhoria da capacidade de jugamento de cada um são chaves para o sucesso. A questão principal do Lean é: "Quem precisa aprender o que para a companhia ter sucesso?"
De fato, o Lean é um conjunto de práticas e exercícios apoiados no desenvolvimento de habilidades das pessoas:
- A abordagem para a resolução de problemas baseado no ciclo "Planejar-Fazer-Verificar-Agir" ajuda a clarear o pensamento de cada um, de forma a, primeiro, escolher os problemas corretos e, segundo, tomar decisões baseadas em fatos ao invés de suas crenças;
- Os dois pilares no Sistema de Produção da Toyota − Just-in-Time e Jidoka − definem tipos padrões de problemas que as pessoas precisam resolver constantemente para melhorar suas habilidades: trabalhar juntos no ritmo certo e fazer tudo certo na primeira vez;
- Escrever padrões e treinar constantemente ajudam a acelerar as habilidades desenvolvidas e difundir o know-how, seja no nível da equipe ou da empresa inteira.
Essas práticas se encaixam perfeitamente no mundo do Agile.
InfoQ.com: Uma organização deveria começar com o Agile e então adotar o Lean ou o contrário? Ou há maneiras de combinar as duas abordagens e adotá-las ao mesmo tempo?
Medina: A resposta Lean para essa pergunta é uma outra pergunta.
Como um conjunto de práticas de desenvolvimento, o Agile é uma solução. A questão Lean é: qual é o problema que se está enfrentando para o qual o Agile poderia ser uma solução? Impor uma solução quando não existe um problema pode levar à perda de tempo, criar mais problemas do que ela resolve ou sequer chegar a tocar no problema real.
Seguindo esse logica, encorajaria um gerente a fazer esse tipo de pergunta para:
- Definir claramente os problemas que devem ser resolvido e deixar explicito porque esses problemas são importantes para a empresa;
- Engajar todos os membros da equipe no desafio;
- Identificar com a equipe, em campo, os principais obstáculos que podem aparecer no caminho de sucesso;
- Conduzir experimentos que os ajudarão a superar esses obstáculos específicos;
- Propagar e compartilhar o know-how com a equipe e além dele, por toda a organização.
….ou seja, na realidade significa iniciar com o Lean!
InfoQ.com: Na apresentação foi mencionado o uso do Lean para o aprendizado e sobre as retrospectivas ágeis? Elas também podem ajudar as equipes a refletir e aprender.
Medina: Sim, as retrospectivas ágeis são oportunidades perfeitas para aprender, embora os resultados tendem a variar muito dependendo das habilidades do coach que está guiando a equipe. Para mim, a retrospectiva será eficiente e útil se forem respondidas as seguintes questões:
- Como a equipe sabe que está trabalhando nos problemas certos e aprendendo o que precisa aprender, ao invés daquilo que quer aprender?
- Como esse aprendizado melhora as habilidades de cada membro da equipe?
- Como se avalia os benefícios desse aprendizado para os clientes e para a empresa?
Dito isso, as retrospectivas são mais abordagens em série para gerar a melhoria, acontecendo uma a cada iteração e enfrentando, felizmente, um número limitado de problemas. Lean ajuda a desenvolver kaizen (melhoria contínua) diariamente, um problema após o outro, para garantir que cada um, a cada dia, contribua para a melhoria. Ele é baseado em uma abordagem diferente para fazer um gerenciamento visual, o modelo Obeya, que auxilia a tornar os problemas visíveis para conduzir a equipe à colaboração constante de forma a resolver os problemas. Posso dizer que é uma espécie de "retrospectiva contínua".
Está disponível no YouTube o vídeo da palestra Lean & Agile do Régis Medina no Lean IT Summit 2013.