Você está na página 1de 6

Fundamentos da Agilidade

Nesta seção você encontra artigos voltados para a prática de métodos ágeis.

Kanban no desenvolvimento de projetos de


software
Entendendo os desafios e a receita para o sucesso

De que se trata o artigo? Resumo?


Neste artigo será apresentado o método Kanban, O método Kanban para desenvolvimento de sof-
uma interessante e simples abordagem para mo- tware a cada ano ganha mais destaque na indús-
nitoramento e melhoria de processos de software tria de TI, pois vem conseguindo promover a me-
que tem uma forte inspiração no Sistema Toyota de lhoria contínua no processo de trabalho de muitas
Produção. equipes de empresas das mais variadas áreas de
negócio e tamanho. Nesse artigo é apresentada
Em que situação o tema é útil? uma introdução ao método Kanban, destacando
Se a sua empresa ou a sua equipe está com difi- os seguintes tópicos:
culdades para melhorar a forma de trabalho, não t)JTUØSJDPFBTNPUJWBÎÜFTRVFMFWBSBN%BWJE"OEFS-
Thiago Ghisi importando se ela usa ou não métodos ágeis, o son a fazer a adaptação do método da indústria de
thiago.ghisi@gmail.com / @thiagoghisi Kanban pode ser uma das melhores alternativas manufatura (Toyota) para a indústria de software;
Pós-graduando em Gestão de Negócios
para fazer isso com o mínimo de resistência. Além t"TDJODPQSPQSJFEBEFTDFOUSBJTFPGVODJPOBNFO-
(UNISUL). Bacharel em Ciência da Compu-
tação (UNISUL, 2011). Técnico em Redes de de ser um método muito simples, comparado à to do método;
Computadores (SENAI, 2005). maioria das metodologias/frameworks de desen- t,BOCBOQPEFTFSDPOTJEFSBEPVNNÏUPEPÈHJM
É consultor certificado para implementa- volvimento atuais, suas propriedades promovem t 6N HVJEFMJOF QBSB UFS TVDFTTP DPN P NÏUPEP
ção do MPS.BR e Sun Certified Program- a colaboração. Kanban, focando principalmente no que deve ser
mer for the Java Platform, SE 6. Há 6 anos
priorizado para se obter as melhorias mais signifi-
no ramo de tecnologia e desenvolvimento
de software, já atuou como: Professor Vo- cativas mais cedo.
luntário de Informática, Técnico em Infor-
mática, Pesquisador de Iniciação Científica,

N
Desenvolvedor, QA, Gerente de Projetos, ão há mais dúvidas de que a in- ainda é defeituoso, inadequado aos de-
Analista de Sistemas e de Requisitos, Au-
dústria de software é uma das sejos do cliente, entregue fora do prazo
ditor de Garantia da Qualidade (PPQA) e
Analista de Processos. Possui experiência mais importantes atualmente. e acima dos custos esperados.
na definição e implantação de processos O mercado brasileiro de software e ser- Observando esses e muitos outros
aderentes ao CMMI e ao MPS.BR e, em ava- viços de TI, segundo o último relatório problemas, há mais de 10 anos, 17
liações MA-MPS nível F e SCAMPI Classe A da ABES [9], é de US$ 19 bilhões e cresce profissionais da área escreveram e
nível 2. É entusiasta em desenvolvimento
de 25% a 30% ao ano desde 2004. Porém, assinaram um manifesto: o manifesto
ágil desde 2007. Atuamente, trabalha na
Nexxera Techpeople, em Tubarão, SC. grande parte do software produzido para desenvolvimento ágil de software.

Edição 45 - Engenharia de Software Magazine 11


Neste, todos concordaram com alguns valores comuns, Para David, sem um conjunto mínimo de orientações para
dentre eles: guiar o líder, treinador ou engenheiro de processo, qualquer
• As metodologias ágeis concentram-se nas pessoas envolvidas adaptação no processo estava susceptível a ser aplicada sub-
na produção; jetivamente. Novos times sempre irão resistir a mudanças se
• Os planejamentos em longo prazo são falhos; você empurrar para eles processos que foram feitos para outras
• É mais importante aceitar e adaptar-se a mudanças do que realidades e que tiveram bons resultados lá.
seguir planos rígidos; A conclusão que David chegou é que é preciso ter uma evo-
• Software funcionando é o melhor indicador de progresso lução com o novo time de uma forma incremental, partindo
nos projetos de software. do processo que é atualmente seguido. Isso porque: “Cada
time é diferente: diferentes conjuntos de habilidades técnicas,
Tendo como base grande parte dos princípios desse manifes- capacidades e experiência. Cada projeto é diferente: orçamento,
to, bem como a filosofia Lean do Sistema Toyota de Produção cronograma, escopo e riscos diferentes. E, cada organização é
(TPS – Toyota Production System), surgiu o Kanban para diferente: o processo de produção de software é diferente em
Desenvolvimento de Software. cada área de negócio.” [1].
A filosofia Lean tem como objetivo a constante identificação Esse é o principal motivo pelo qual o Kanban é um framework
e a eliminação de qualquer espécie de desperdício no sistema para melhorias. Isto é, ele orienta que o processo de trabalho
de produção. deve ser customizado em cada time de cada projeto de cada
A história do Kanban para desenvolvimento de software, organização. Ou seja, um processo não deve ter suas práticas
assim como a história da grande maioria das metodologias, seguidas à risca da mesma forma em todos os times, de todos
modelos de maturidade, processos de desenvolvimento e pro- os projetos, de todas as organizações do mundo, como a grande
cessos em geral, começa com um grande desejo, muitas ideias, maioria das metodologias do mercado prescreve.
testes (na prática) e diversos ajustes (o método “científico”) até Em 2005, o método de trabalho de David Anderson era base-
atingir os primeiros casos de sucesso. ado principalmente na Teoria das Restrições (TOC – Theory of
A principal diferença do Kanban para as demais metodolo- Constraints) e na FDD (Feature Driven Development).
gias de desenvolvimento de software atuais é que ele foi um A Teoria das Restrições foi apresentada pela primeira vez em
modelo adaptado de outra indústria, a de manufatura, mais 1984 por Eliyahu M. Goldratt, no famoso livro A Meta. Segun-
especificamente da Toyota. David Anderson [1] foi o grande do David Anderson [1], “a habilidade de identificar gargalos
responsável por essa adaptação. em um sistema é o primeiro passo para entender a Teoria das
A história começa em 2002, quando Anderson, cansado de ver Restrições”. O efeito dos sistemas puxados, ou, processo de
equipes de desenvolvimento e departamentos inteiros de TI produção puxado são tópicos que também ajudam a compre-
à mercê de outros departamentos, decide voltar seus esforços ender melhor a teoria. Nele, a saída de produtos acabados, tal
para responder a duas perguntas [1]: como o software pronto para ser usado, ao final do processo de
1. Como proteger a minha equipe da demanda incessante de desenvolvimento, dita o ritmo da introdução de novos requi-
negócio e alcançar o que a comunidade ágil chama de ritmo sitos no sistema. Isso evita acúmulos de produtos inacabados
sustentável? ao longo da linha de montagem, diminuindo a quantidade de
2. Como adotar uma abordagem ágil em toda a empresa e trabalho em progresso. Já a FDD é uma famosa metodologia
superar inevitáveis resistências à mudança? ágil que o próprio David ajudou a criar.
Mais tarde, em 2007, após fazer algumas customizações na
Como cita em seu último livro, Kanban: Successful Evolutio- sua forma de trabalho inspiradas em práticas do Sistema Toyota
nary Change for Your Technology Business [1], publicado em de Produção, David apresentou nas conferências “Lean New
2010, Anderson tinha um grande desejo: encontrar no setor Product Development” e “Agile 2007” os resultados prelimi-
de TI uma relação “ganha-ganha” entre o departamento de nares do uso de Kanban na Corbis, uma empresa fundada por
negócio e as equipes de desenvolvimento de software e TI. Bill Gates, da Microsoft.
Na tentativa de atingir esses objetivos, David idealizou, Durante certo período, David chegou a ter dúvidas a respei-
testou e falhou muitas vezes nas diversas organizações em to da eficiência do Sistema Toyota de Produção, mesmo com
que trabalhou. Ele notou que implantar um processo de de- muitas pessoas falando o contrário. Porém, após conhecer um
senvolvimento de software totalmente prescritivo, na maioria pouco mais a respeito do pensamento de Taiichi Ohno, um dos
das vezes, não funcionava. Assim, chegou à conclusão que criadores de tal sistema, e a ideia por trás da cultura Kaizen
um processo precisava ser adaptado para cada situação, e que (a qual será falada no próximo tópico), David reconheceu, [1]
para fazer isso, era necessária uma liderança ativa em cada através de experiências ao longo dos cinco anos posteriores a
equipe. Porém, esta era muitas vezes inexistente. E, mesmo eficiência desse sistema que originou o Kanban.
com uma liderança certa, ele duvidava que mudanças signi- “Kanban (com K maiúsculo) é um método de mudança
ficativas acontecessem sem uma metodologia ou, no mínimo, evolutivo para monitoramento e melhoria de processos de
sem orientações de como adaptar o processo para atender a produção, que utiliza kanban (com k minúsculo) para au-
diferentes situações. xiliar na visualização do fluxo e para permitir a criação de

12 Engenharia de Software Magazine - Kanban no desenvolvimento de projetos de software


AG IL I DAD E

um sistema puxado de trabalho além de outras ferramentas


para catalisar a introdução de ideias Lean nas áreas de de-
senvolvimento de software e operações de TI. É um processo
evolutivo e incremental. Kanban lhe permite atingir processos
otimizados para contextos muito específicos, com resistência
mínima e mantendo um ritmo sustentável para os trabalha-
dores envolvidos.” [1].

O método Kanban
Como implementar mudanças continuamente no processo
de trabalho da equipe com sucesso? Este é um ponto funda-
mental e um dos motivadores centrais das cinco propriedades
do método Kanban:
1. Visualizar o fluxo de trabalho; Figura 1. Kanban systems for software development [10]
2. Limitar a quantidade de trabalho em andamento;
3. Medir e otimizar o fluxo de trabalho; Para Alisson Vale [5], em atividades que envolvem trabalho
4. Tornar explícitas as políticas do processo; criativo, como desenvolvimento de software, o propósito
5. Gerenciar quantitativamente. do Kanban é provocar conversações sobre o sistema de
trabalho.
O Kanban não é uma metodologia, mas sim um framework Para limitar a quantidade de trabalho em andamento é
para implementar mudanças de forma incremental. Esse é um necessário definir, monitorar e manter um limite máximo de
conceito muito importante para que se entenda o Kanban como tarefas em andamento para cada uma das etapas de trabalho
um todo já que, quando se fala em metodologias, fala-se em mapeadas no quadro kanban, como visto na Figura 1.
conjuntos de práticas e o Kanban não tem nenhuma prática Ao estabelecer os limites, a equipe começa a identificar
prescrita. Há, nele, somente propriedades que devem guiar a onde estão os principais gargalos do processo de produção
melhoria no processo atual, não importando quais práticas e começa a ter que terminar todo o trabalho inacabado na
estejam sendo usadas. linha de produção para conseguir puxar mais trabalho para
Ao usar o Kanban, como veremos mais detalhes ao decorrer o gargalo. Com isso, o trabalho tende a ser finalizado de uma
do artigo, é esperado que se consiga visualizar quais práticas forma incremental e não de uma forma cascata, tornando-se
estão sendo positivas e quais estão sendo negativas e isso, assim um sistema puxado (TOC), onde é a equipe que dita a
consequentemente, vai conduzir a mudanças, que, natural- sua capacidade de produção.
mente adicionarão, eliminarão ou alterarão as práticas atuais O uso do sistema puxado, juntamente com a visualização de
de trabalho. todo o processo de desenvolvimento por toda a equipe, permite
A forma mais comum de se conseguir visualizar o fluxo de implementar mudanças no processo de modo incremental.
trabalho é através de um kanban. Esse é uma espécie de qua- Consequentemente, há redução significativa da resistência, o
dro, que pode ser físico, normalmente colocado em uma das que facilita o alcance do ritmo sustentável, teoria tão comenta-
paredes do local onde a equipe trabalha, ou virtual. O uso do da em desenvolvimento ágil, mas para a qual poucas definições
quadro virtual tem alguns prós e contras. Os pontos fortes são existem além das 40 horas semanais de trabalho.
basicamente a facilidade de extração de métricas e o histórico. Uma citação de David [1] sintetiza isso: “Um interessante
O principal ponto fraco dessa abordagem é a dificuldade que a efeito colateral de sistemas puxados é que eles limitam o
equipe terá para analisar e evoluir conjuntamente o processo trabalho em andamento (WIP – Work In Progress) para certa
de trabalho. quantidade acordada, evitando assim que trabalhadores fi-
Nesse quadro, inicialmente devem ser modeladas cada uma quem sobrecarregados.”.
das etapas necessárias para se produzir o software, isto é, todo Outro fator importante é o ganho que se tem ao praticamente
o workflow de trabalho. E, em cada uma dessas etapas deve ser impedir que uma mesma pessoa execute várias tarefas no mes-
colocado e mantido um cartão, a fim de simbolizar um trabalho mo projeto em paralelo. Vale destacar também o processo Just in
que está em andamento, como podemos ver na Figura 1. Cada time (JIT), que evita o acúmulo de estoque ao longo do processo
um desses cartões deve conter informações detalhadas sobre a de desenvolvimento, como se faz no ciclo de vida em cascata.
atividade, bem como quem está desenvolvendo o item, e quando Nesse caso, software em estoque são todos os requisitos que
o mesmo foi iniciado. ainda não foram liberados para o cliente usar.
No Kanban para desenvolvimento de software, o kanban No desenvolvimento de um software, como em qualquer
deve ser mantido e evoluído por toda a equipe, o tempo todo. outra atividade intelectual, por mais contra intuitivo que possa
A proposta baseia-se em fazer a própria equipe enxergar onde parecer, executa-se com mais qualidade e mais rapidamente
está errando e deixá-la tomar decisões seguindo um framework duas tarefas fazendo-as uma de cada vez, do que as duas em
simples, que guiará grande parte dessas melhorias. paralelo o tempo todo.

Edição 45 - Engenharia de Software Magazine 13


Segundo Rodrigo Yoshima [7], um dos grandes pontos fortes Como David ressalta em seu livro [1], a abordagem evolutiva do
desse método é o modelo embutido nele para trabalhar com a Kanban, que promove a implementação de mudanças no proces-
melhoria de processos, o modelo Kaizen. Além do modelo Kai- so de forma incremental, tem sido controversa na comunidade
zen, existe o modelo Kaikaku. Vamos às diferenças: “Kaikaku ágil de desenvolvimento de software. Isso ocorre principalmente
é uma palavra que define mudanças de processos classificadas porque se sugere que as equipes não adotem um método ou
como “melhoria radical”.” [7]. modelo de processo. Vale ressaltar que a atual indústria de
Implantar o Scrum, por exemplo, exige esse cenário [7], pois serviços e ferramentas desenvolveu-se em torno de um pequeno
o Scrum requer profundas mudanças organizacionais como conjunto de práticas definidas em dois populares métodos de
a gestão abdicar de muitos instrumentos de controle, quebrar desenvolvimento ágil: XP e Scrum. Depois, com o Kanban, os
com a separação entre os grupos e mudar posições hierárquicas indivíduos e as equipes estão habilitados para desenvolver suas
estabelecidas. próprias soluções por meio de um processo único que evitaria
“Kaizen é a palavra Lean para indicar mudanças de melhoria a necessidade de tais serviços e ferramentas. Isso porque os
menores e contínuas. Ao contrário do Kaikaku, Kaizen não é mesmos requerem um novo conjunto de ferramentas e serviços
tão traumático, é melhor aceito por todos (gerentes inclusive) e muito específicos para cada realidade. Dessa forma, torna-se
mais simples de implementar. Tudo a nossa volta está suscetível mais complicado para essa indústria ganhar dinheiro.
a um evento Kaizen. Kaizen simplesmente significa mudança Tanta discussão acerca do assunto fez o pessoal do Kanban
para melhor.” [7]. criar um logo de manifesto chamado: Yes We Kanban, que
Na abordagem Kanban, aplicando a cultura Kaizen, antes David [1] explica: “O slogan ‘Yes We Kanban’ se destina a
de mudar qualquer coisa devemos entender o ambiente de enfatizar que você tem permissão. Você tem permissão para
trabalho. Se filas, bloqueios, gargalos ou problemas entre tentar Kanban. Você tem permissão para modificar o seu pro-
áreas estão nos prejudicando, primeiro, vamos visualizar cesso. Você tem permissão para ser diferente. Sua situação é
isso, convencer o grupo dos problemas e usar Kaizen para a única e merece o desenvolvimento de um processo adapta-
melhoria do ambiente com pequenas mudanças incrementais do e otimizado para o seu domínio, o seu fluxo de valor, os
e constantes. Isso irá fortalecer a cultura da empresa, pois ela riscos que você gerencia, as habilidades de sua equipe e as
compreenderá suas falhas com provas palpáveis que serão a demandas de seus clientes.”.
motivação para as mudanças [7]. Portanto, podemos dizer que o objetivo de Kanban não é
Segundo José Papo [8], além disso, a filosofia e práticas Lean, tornar a sua equipe ágil, e sim, melhorar a forma de trabalho.
como é o caso do Kanban, focam na auto-organização do time, na Ele tanto pode melhorar processos ágeis como também pode
responsabilidade conjunta pelos objetivos de negócio do projeto e melhorar processos tradicionais.
na produtividade com qualidade e com ritmo sustentável. Todas
elas são práticas de administração consagradas e evidenciadas por Qual é a receita para ter sucesso com Kanban?
Peter Drucker para liderar trabalhadores do conhecimento. Para que qualquer pessoa que queira ser um agente de
As duas últimas propriedades do Kanban citadas (tornar ex- mudança na sua organização tenha sucesso rápido (ou, uma
plícitas as políticas do processo e gerenciar quantitativamente) melhoria rápida) e com baixa resistência da equipe, com foco
são praticamente atendidas deixando claro para toda a equipe na melhoria de processos em alguns pontos com o uso ou até
as três primeiras propriedades e reforçando que toda sugestão mesmo sem o uso do método Kanban, é preciso seguir algumas
de otimização no processo deve ter como base modelos mate- etapas. De acordo com David, são elas:
máticos que provem as métricas. 1. Focar na qualidade;
2. Limitar a quantidade de trabalho em progresso;
Kanban é uma metodologia ágil? 3. Entregar frequentemente;
Nos últimos tempos, acompanhamos uma briga forte entre 4. Balancear demanda com a capacidade máxima;
Kanban e as demais metodologias ágeis, principalmente o 5. Priorizar tarefas;
Scrum. A polêmica central é: quem usa Kanban é ágil? 6. Atacar fontes de variedade.
Rodrigo Yoshima [9] explica que “o maior objetivo do Kanban
é melhorar um processo existente, por pior que ele seja”. Ainda O autor orienta que essas etapas sejam seguidas na ordem em
segundo Yoshima, o Kanban permite melhorar até mesmo que são apresentadas. A partir de agora, passa-se a discorrer
processos que seguem o ciclo de vida em cascata, fazendo eles um pouco a respeito de cada uma delas.
se tornarem ágeis e podendo melhorar continuamente, e até
mesmo superarem o Agile. Isso tudo graças à cultura Kaizen Focando na qualidade
que o Kanban quer trazer à tona. Como os agentes de mudanças nas empresas de TI são ge-
Outro ponto a ser destacado é que para o Kanban, diferente ralmente pessoas com um background técnico, essa tende a
da grande maioria das metodologias ágeis, não importa quais ser uma das etapas mais fáceis de ser implementada, princi-
práticas você irá aplicar para melhorar o seu processo, o im- palmente por ser um problema bem entendido por todos. As
portante é que você tenha argumentos, preferencialmente outras etapas desse guia [1] tendem a ter uma implementação
estatísticos, que expliquem o porquê dessas decisões. mais difícil porque dependem da colaboração de outras áreas

14 Engenharia de Software Magazine - Kanban no desenvolvimento de projetos de software


AG IL I DAD E

e equipes. Com isso, exigem que o agente de mudança tenha do conhecimento, como em desenvolvimento de software,
muitas habilidades de negociação, articulação e bastante in- cresce exponencialmente com a quantidade de trabalhos em
teligência emocional [1]. andamento. Tanto a transferência como a descoberta de infor-
Os maiores geradores de retrabalho em desenvolvimento de mações no desenvolvimento de software é conhecimento tácito
software são os defeitos causados principalmente pela baixa por natureza e é criado durante sessões de trabalho colabora-
qualidade das entregas. E, além de um gerador de retrabalho, tivo, face a face. A informação é verbal e visual, mas é em um
baixa qualidade faz os clientes ficarem inseguros e a equipe formato casual, como um esboço em um quadro branco.
desmotivada. Nossas mentes têm uma capacidade limitada para armazenar
O incentivo à qualidade das entregas tem um grande conhecimento tácito. E, quanto mais tempo passa, há mais
impacto na produtividade das equipes com altas taxas de falhas para recordar detalhes precisos. Assim, uma série de
defeitos. Segundo David [1], em equipes verdadeiramente erros é cometida. Equipes que trabalham de um modo ágil,
ruins, somente concentrando-se na qualidade pode-se obter em um mesmo espaço de trabalho, têm uma maior facilidade
uma melhoria de produtividade de até dez vezes. em reter o conhecimento tácito.
Para David [1], tanto as técnicas de desenvolvimento ágil Mas, independentemente da forma de trabalho da equipe, o
como as abordagens tradicionais têm seu mérito para a conhecimento tácito se deprecia com o passar do tempo. Por
melhoria da qualidade. As principais práticas incentivadas isso, tempos de espera (lead time) menores são essenciais para
por ele para a melhoria da qualidade são: os processos que envolvem muito conhecimento tácito. O foco
1. Escrever testes automatizados, preferencialmente antes; da redução de trabalho em andamento está diretamente rela-
2. Revisar código (Verificação); cionado com a redução dos tempos de espera (lead time).
3. Fazer atividades de análise e design do software de forma Assim, podemos deduzir que haverá menor depreciação
colaborativa; de conhecimento tácito quando temos menos trabalho em
4. Usar Design Patterns; progresso – o que resultará em maior qualidade. Em resumo,
5. Usar ferramentas modernas de desenvolvimento. reduzindo a quantidade de trabalho em andamento, melhora-
se a qualidade e possibilita-se entregas mais frequentes. Isso
Parece haver uma vantagem psicológica em pedir para os aumenta a confiança externa na equipe.
desenvolvedores escreverem testes antes, porém, é importante Além de reduzir a quantidade de trabalho em andamento, é
ressaltar que também existem inúmeros casos de sucesso com a importante reduzir o tempo de uma iteração, pois isso também
escrita dos testes após a codificação. trará um impacto positivo significativo na qualidade. Segundo
Inspeções ou revisões de código ajudam a melhorar tanto a David [1], parece que existe uma relação entre a quantidade
qualidade externa como, notadamente, a qualidade interna do de trabalho em andamento e a qualidade, ou seja, defeitos vão
software. Todas as técnicas têm o seu valor. Programação em aumentar com o aumento da quantidade de WIP. Portanto, faz
par e revisão por pares são alguns exemplos. No entanto [1], ins- sentido que iterações de duas semanas sejam melhores do que
peções de código são melhores quando são feitas em pequenas iterações de quatro semanas e que iterações de uma semana
quantidades várias vezes. David menciona [1] que ele costuma sejam melhores ainda. Iterações mais curtas irão resultar em
encorajar as suas equipes a inspecionar código, todos os dias, por entregas de maior qualidade.
pelo menos 30 minutos. Seguindo a lógica das evidências apresentadas, se é sabido
Sem dúvidas, quando toda a equipe trabalha em conjunto na que limitar o WIP irá melhorar a qualidade, por que não intro-
análise dos problemas para as soluções de design, a qualidade é duzir política explícita para isso, deixando assim os gerentes
superior do que quando apenas uma pessoa faz isso. Assim como livres para se concentrarem em outras atividades? Essa é jus-
as inspeções de código, atividades de modelagem de software tamente uma das propriedades do Kanban. Entretanto David
devem ser feitas em pequenas quantidades, todos os dias. afirma [1] que ainda não existe nenhuma evidência científica
Os padrões de projeto de software, mais conhecidos pelo termo desse resultado que foi observado apenas empiricamente.
original em inglês Design Patterns, descrevem soluções para
problemas já conhecidos e recorrentes no desenvolvimento de Entregando frequentemente
software orientado a objetos. O uso de padrões de projeto garante Para entendermos a importância dessa etapa, David apresenta
que defeitos de design sejam eliminados já no início do projeto. uma excelente analogia em seu livro [1]: “Quando eu ensino
O uso de ferramentas modernas de desenvolvimento melhora isso nas aulas, eu gosto de perguntar às mulheres da classe o
a qualidade porque a grande maioria dessas inclui funções de que elas pensam sobre duas situações depois de ter um pri-
análise de código estática e dinâmica, que evitam que os desenvol- meiro encontro com um cara:
vedores introduzam problemas básicos e já bem compreendidos, • Situação 1: Eles tiveram um bom encontro, mas depois
como falhas de segurança, no software. disso ele não dá sinais de vida a ela durante duas semanas.
Mas, então, ele aparece em sua porta com um ramo de flo-
Limitando a quantidade de trabalho em andamento res e um pedido de desculpas;
É fácil especular porque limitar a quantidade de tarefas em • Situação 2: Eles tiveram um bom encontro e na mesma noite
andamento aumenta a qualidade. A complexidade do trabalho a caminho de casa ele envia uma mensagem de texto a ela

Edição 45 - Engenharia de Software Magazine 15


dizendo: “Eu me diverti muito esta noite. Eu realmente quero encurtar os lead times, e entregar (software funcionando)
me encontrar com você novamente. Posso ligar para você com frequência. Em seguida, equilibrar a demanda contra
amanhã? E, esse mesmo cara, segue ligando e enviando a capacidade máxima, limitar a quantidade de trabalho
mensagens dia após dia. em andamento, e criar folga para liberar capacidade, o que
Qual cara vocês acham que elas preferem?”. permitirá a melhoria contínua. Então, com isso funcionando
razoavelmente e continuamente otimizando a capacidade de
Pequenos e frequentes gestos não custam quase nada, entre- desenvolvimento de software, melhore a priorização para
tanto, eles constroem mais confiança do que grandes e caros otimizar a entrega de valor.”.
gestos ocasionalmente. Portanto, realizar frequentemente O Kanban permite que você implemente todas as seis etapas
pequenas entregas de alta qualidade constrói mais confiança dessa receita.
para as equipes parceiras do que entregas maiores, mas com
menos frequência. Conclusão
É interessante conhecer as motivações que levaram David
Balanceando a demanda com a capacidade máxima Anderson a chegar até o método Kanban para o Desenvol-
Construir um consenso em torno da necessidade de equilibrar vimento de Software e, através da sua receita, entender o
a demanda contra a capacidade da equipe é crucial. No entanto, porque da maioria das propriedades por trás do Kanban.
para isso, é preciso resolver problemas como a disfunção entre Essa metodologia tem sido um assunto recorrente e tende a
os papéis e as responsabilidades dos membros da equipe. continuar sendo, já que é uma forma eficiente de melhorar
Essa etapa implica definir a taxa em que a equipe aceita novos continuamente a área.
requisitos no processo de desenvolvimento de software para Se a sua empresa está com dificuldades para melhorar, não
corresponder com a capacidade em que a equipe pode entregar importa se ela adota métodos ágeis ou não, o Kanban pode
código de qualidade. ser uma das alternativas para fazer isso com o mínimo de
Quando se faz isso, fixa-se efetivamente a quantidade de resistência, pois, além de toda a simplicidade do método, suas
trabalho em andamento, permitindo efetivamente que seja a propriedades promovem a colaboração.
equipe que crie a demanda de acordo com a sua capacidade
Referências
(sistema puxado).
1. Anderson, D. (2010) Kanban: Successful Evolutionary Change for Your Technology Business.
Priorizando tarefas Washington, Blue Hole Press.
Priorizar é trabalho da área de negócios, e não da área de 2. Martin, R. (2011) The Clean Coder: A Code of Conduct for Professional Programmers. Indiana,
TI da organização. Assim, não deveria ser da competência Prentice Hall.
de um gerente técnico fazer isso. Entretanto, infelizmente, é
3. Anderson, D. (2003) Agile Management for Software Engineering: Applying the Theory of
comum a área de negócios delegar a responsabilidade e deixar
Constraints for Business Results. New Jersey, Prentice Hall.
um gerente técnico priorizar o trabalho e depois culpar que o
gerente fez escolhas erradas. 4. Bernabó, J. (2011) Mais comprometimento = menos produtividade? http://www.teamware.
Neste ponto, a atenção da gerência deve-se voltar para otimi- com.br/blog/mais-comprometimento-menos-produtividade/
zar o valor entregue ao invés de meramente a quantidade de 5. Vale, A. (2011) Kanban Explicado. http://www.slideshare.net/alissonvale/kanban-explicado
código entregue.
6. Wikipédia. TOC. http://pt.wikipedia.org/wiki/Teoria_das_restri%C3%A7%C3%B5es

Atacando fontes de variedade 7. Yoshima, R. (2011) Kaikaku – Kaizen, http://blog.aspercom.com.br/2011/09/09/kaikaku-


Podemos entender como fontes de variedade tudo aquilo kaizen/
que de alguma forma prejudica o desempenho do processo 8. Papo, J. (2010) Porque Lean/Agile funcionam? http://josepaulopapo.blogspot.com/2010/03/
de produção. agile-lean-funciona-por-que.html
Atacar as fontes de variedade é a última etapa da receita
9. ABES (2011). O Mercado Brasileiro de Software em 2011. http://www.abes.org.br/UserFiles/
porque alguns tipos de variedade exigem profundas mudanças
Image/PDFs/Mercado_BR2011.pdf
de comportamento e, consequentemente, uma alta resistência
da equipe. 10. Corey Ladas (2007). Kanban systems for software development (Imagem) http://
A dica para implementar essa etapa é focar nas fontes de va- leansoftwareengineering.com/wp-content/uploads/2007/08/kanban1.png
riedade que requerem pequenas mudanças de comportamento
e que podem ser aceitas facilmente pela equipe.
Dê seu feedback sobre esta edição! Feedback
Segundo David [1], não se deve focar nessa etapa sem antes eu
s

implementar e dominar as primeiras cinco etapas da receita. A Engenharia de Software Magazine tem que ser feita ao seu gosto.
sobre e

Resumindo, essa receita é a forma que David [1] acredita que Para isso, precisamos saber o que você, leitor, acha da revista!
s

ta
uma equipe de desenvolvimento de software deve amadure- Dê seu voto sobre este artigo, através do link:
edição

cer: “Em primeiro lugar, aprender a construir código de alta


qualidade. Em seguida, reduzir o trabalho em andamento, www.devmedia.com.br/esmag/feedback

16 Engenharia de Software Magazine - Kanban no desenvolvimento de projetos de software

Você também pode gostar