Muito tenho escutado neste últimos dias sobre a questão do sucesso ou não do uso de metodologias ágeis.Principalmente com relação a entregas. Primeiro preciso dizer que não sou um doutor no assunto, nem pretendo ser, muito menos um profundo conhecedor, mas considero que tenho uma pequena vivência no assunto que me permite tecer alguns comentários sobre o assunto.
Posts Tagged ‘scrum’
Culpa nem sempre é do processo.
junho 26th, 2010Buscar problemas
maio 20th, 2010A alguns dias atrás, fiz um workshop sobre metodologias ágeis com o Juan Bernabó na Globo.com. Recomendo fortemente a todos fazerem mesmo que já tenham certo conhecimento sobre o assunto, apliquem nos seus times ou qualquer outro caso.
Durante todo o workshop feito por ele, cujo o objetivo é de apresentar as metodologias principalmente o Scrum, vários jogos, dinâmicas e outras tantas coisas são feita. Entretanto, para mim, o mais interessante foram as discussões que ocorreram entre as atividades.
Houve um momento que o pessoal colocou os problema encontrados no dia a dia de cada um e suas expectativas quanto ao uso de metodologias ágeis. A primeira coisa que ficou bastante evidente foi uma expectativa que ao colocar em prático algo ágil todos os problemas desaparecerão, como que por mágica, e que todos serão felizes num ambiente super ideal.
A questão que o curso colocou, e que realmente achei genial, é que Scrum não é uma ferramenta somente de soluções. Ela tem muito mais um aspecto de mostrar os problemas e forma simples e rápida procurar resolvê-los.
Sendo assim, quem não está preparada para ver os problemas, gargalos, etc de sua empresa, ao adotar qualquer coisa no sentido, vai achar que a ferramenta não serve. Isso porque tem a expectativa errada. Verá muito mais problemas do que solução.
Uma outra coisa que o Bernabo falou que me fez mudar a forma de pensar foi que ser ágil não significa não ter problema : a questão é exatamente contrária, evidenciam os problemas e procura-se soluções. Contra medidas nas palavras do Juan.
Enfim, ao vermos a questão ágil não como mais um processo e sim como uma forma de levantar os problemas e buscar contra-medidas, fica claro a razão do sucesso e que simplesmente seguir uma cartilha não é o perfil ideal a buscar.
Será que o sistema Toyota é falho?
fevereiro 12th, 2010Acontecimentos recentes no mercado de automóveis, de uma forma surpreendente, tem colocado em xeque o modelo da Toyota que ficou famoso se tornou uma referência em gestão e processos na última década. O pessoal que tem lido jornal tem visto esses dias várias notícias informando a enorme quantidade de recall que a fábrica toyota e suas afiliadas estão fazendo no Japão e no mundo, decorrente de erros nos seus processo de fabricação, laudos fradulentos de segurança, etc. Tudo isso colocou em dúvida a verdadeira eficiência do modelo que se tornou a nova moda dos hippies da administração e processos do mundo.

No início do século XX o mundo vivia sua revolução industrial impulsionado pela novo modelo Ford de produção em escala. Em detrimento ao maneiro artesanal e caseira da fazer as coisas que tornavam os produtos “incrivelmente caros”, agora tudo é feito em grande quantidade e de forma seriada. Surge as fábricas. Esse modelo ultrapassa o contexto industrial e começa a permear todo o comportamento social: convívios, formas de negócio, gestão e administração, etc. Tudo agora deve ser grande; gigante… Não existe espaço mais para pequenos atos. Empresa familiares dão lugar para grandes corporações, pequenos negócios de esquina agora fazem parte de cadeias de lojas e por aí seguimos.
Com a vinda da segunda guerra mundial, em nome do esforço de guerra, esse modelo de grande escala ganha mais força: tudo deve ser feito aos milhões. Pequenos defeitos e erros de cálculos são tolerados pois, estatisticamente, representam uma porcentagem infinitesimal frente ao todo. Porém do outro lado do mundo, ao final do conflito, existia um Japão arrasado, sem homens, sem recursos naturais abundantes, sem espaço, destruído por duas bombas nucleares. Nesse país um sonhador vindo de uma família de empreendedores tenta construir um futuro. Assim nasce a Toyota.
A Toyota, (diversas fontes dizem que ela foi fundada em 1937, porém acredito que a sombra da empresa que conhecemos hoje começou no pós-guerra) ao contrário da Ford (a grande Ford com suas imensas indústrias no USA) estava num contexto de escassez. Tudo faltava. Não havia aço, não havia homens, faltava tudo… Não existia espaço para desperdício. Não havia margens para erro. Usando toda a herança cultural japonesa de perfeição, a Toyota criou todo um universo de processos visando a redução e até a eliminação total de todo e qualquer processo ou coisa que não gerasse valor para o cliente final dela.
Nos anos que seguiram esse conjunto de boas práticas e regras se mostrou extremamente vencedor e hoje a Toyota é maior fabricante de carros do mundo superando de longe qualquer outra. Hoje eles são os melhores, a referência, a meta a atingir.
Assim como o modelo Ford, nos seus áureos tempos, ultrapassou os limites das fábricas para fazer parte de tudo na cotidiano das pessoas, o modelo toyota também achou seu caminho em outras áreas como administração, gestão de projetos, desenvolvimento, etc. Da década de 80 a até atuais dias passou a ser o hippie do momento, o novo frisson dos intelectuais e vanguardistas do mercado. Não tardou para que a “forma Toyota” de fazer as coisas fosse traduzida para outras realidades. Principalmente em desenvolvimento de softwares que até esse momento era predominantemente do jeito Ford com conceito de fábricas de software e encadeamento de atividades (o famigerado cascata – waterfall).
Logo nosso dia a dia de desenvolvedores e gestores de projetos deixou de ser sopas de letrinhas como PMI, CMM, RUP, UML , etc para ser JIT (Just in Time – o justo na hora certa), KANBAN, cadeia de valores, etc.
Entretanto, nos últimos anos, notícias de que a Toyota estaria fazendo recalls se tornaram frequentes nos jornais do mundo. Recall é o processo que a empresa chamada todos os usuários (compradores) de um determinado produto a o levarem de volta para consertar algo que possua um defeito de fabricação oriundo de erros de projeto, processo, etc. por mais transparente e honesto que seja o processo, ele sempre acaba manchando a reputação da empresa… Isso só fica pior quando falamos de uma empresa que “vende” que tudo que faz é perfeito (isso também vem da própria cultura japonesa). Tais fatos sairam do ambito da economia para entrarem no ambito da gestão, pois muito se vendeu nos últimos tempos que o processo Ford não funciona e que a salvação era o Sistema Toyota.
Seguidores estão em panico pois tais fatos colocam em xeque seu grande salvador. Mas será que realmente que esses acontecimentos são o sinal que esse processo não é tão bom quanto pensávamos? Será que devemos procurar um novo jeito? Será que devemos voltar ao que “funcionava” antes? E agora quem poderá nos ajudar?
Confesso que gostaria de ter essa resposta mas acho que somente o tempo dirá, embora, acredite numa máxima de Buda : ” o caminho sempre será o equilíbrio” . Possívelmente esse seja um processo pelo qual o mercado precise passar para deixar de criar “balas de prata” e passe a usar a inteligencia de seus profissionais para resolver cada problema. Não existe solução única. Existe é inteligência, criatividade e vontade de evoluir.
Agora tais problemas também podem ser culpa de um processo mal gerido de crescimento onde os atuais administradores da empresa esteja rompendo com as bases culturais que nortearam a empresa até hoje. Eu vi um processo semelhante a esse acontecer dentro da michelin com a morte dos herdeiros naturais da empresa. Por isso, mais uma vez a cautela e prudência são as melhores amigas nesse momento ao analisar os fatos.
Penso que é preciso olhar com a mente aberta aos fatos e se permitir questionar. Fé cega a gente deixa para as religiões.
Histórias Técnicas – eles devem estar no backlog?
janeiro 21st, 2010Jack Milusnk, em seu blog The Agile Buddy Blog, escreveu um excelente post sobre a questão da histórica técnica. Em tomei a liberdade de escrever uma versão (não tradução) em português do texto. Para quem quiser ler o texto original, acesso o post aqui. Comentários com ajuda na tradução e opiniões são bem vindo.
Se você ainda não é um membro do grupo de desenvolvimento SCrum do yahoo, você deve considerar se juntar rapidamente. Existe, no fórum, uma verdadeira fortuna de informação que a todo tempo muda de mão e, você pode muito nas interação que acontecem ali. Inclusive, recentemente houve um intenso e caloroso debate sobre a questão das histórias “técnicas” (talvez aqui fosse melhor o termo – backlog técnico;<em>technical stories</em>A questão acima foi se um débito técnico deveria ou não aparecer no backlog do time. Se eles aparecem no backlog, significa que coisas técnicas podem ser priorizadas pelo P.O. (product owner – dono do produto). Isto não parecer ser uma boa ideia pois, o PO, na maioria dos casos, irá dar mais valor para as funcionalidades e <em>features</em> do sistema dele em detrimento a parte técnica. Um exemplo disso, histórias técnicas, seria : “Instalar o Cruise Control”; alterar o banco de dados de MySQL para Oracle, configuração do VMWare etc. A maioria dos grandes pensadores e formadores de opinião do fórum, argumentaram que histórias técnicas de forma alguma deveriam aparecer no backlog. Mas tudo que precisa de recurso de desenvolvimento deveriam aparecer no backlog.Se der uma olhada na definição vind do guia do Scrum (scrum guide no scrum.orgs), encontrará o seguinte:“O backlog do sprint consiste nas tarefas que o time deve realizar para incrementar o backolog do produto na direção do status pronto… Isto é, todo o trabalho que o time identifica como necessário para atingir o objetivo do sprint.”Então, qual é a resposta correta?Minha resposta é que depende… depende do contexto. Por exemplo, se a definição de pronto leva em conta ter testes unitários, testes de aceitação automatizados, etc, então estes itens não precisam estar explicitamente identificados no backlog. Isto é, coisas que são feitas pelo time e não existe negociação. Assim, as estimativas precisam incluir o tempo necessário para completar todos estes elementos que fazem parte do conceito de pronto.Naquelas situações, onde um dos membros sugere – “Como membro da equipe de desenvolvimento, eu quero que os testes unitários existentes devem ser executados pelo Cruise Control ( integração contínua) de modo que eu sei quando algo quebra”. Bem, esta é uma história bem escrita e que define bem a necessidade, mas ela não tem nenhum valor final para o usuário (PO), pelo menos não diretamente. Neste caso específico, eu sugiro o seguinte:Este tipo de história, definitivamente, não pertence ao backlog do produto, mas pode ser uma tarefa que existiria no backlog do sprint. Alguns amantes de XP poderiam dizer que não faz sentido por trabalharem sempre no nível de histórias, para o planejamento, enquanto que o Scrum fala mais em tarefas. Se o time estiver trabalhando com tarefas, este tipo de atividade – histórias técnicas – devem aparecer no backlog e ter o esforço estimado. A maioria das pessoas de XP vão dizer que é isso é micro-gestão.Se você ainda não é um membro do grupo de desenvolvimento SCrum do yahoo, você deve considerar se juntar rapidamente. Existe, no fórum, uma verdadeira fortuna de informação que a todo tempo muda de mão e, você pode muito nas interação que acontecem ali. Inclusive, recentemente houve um intenso e caloroso debate sobre a questão das histórias “técnicas” (talvez aqui fosse melhor o termo – backlog técnico;<em>technical stories</em>A questão acima foi se um débito técnico deveria ou não aparecer no backlog do time. Se eles aparecem no backlog, significa que coisas técnicas podem ser priorizadas pelo P.O. (product owner – dono do produto). Isto não parecer ser uma boa ideia pois, o PO, na maioria dos casos, irá dar mais valor para as funcionalidades e <em>features</em> do sistema dele em detrimento a parte técnica. Um exemplo disso, histórias técnicas, seria : “Instalar o Cruise Control”; alterar o banco de dados de MySQL para Oracle, configuração do VMWare etc. A maioria dos grandes pensadores e formadores de opinião do fórum, argumentaram que histórias técnicas de forma alguma deveriam aparecer no backlog. Mas tudo que precisa de recurso de desenvolvimento deveriam aparecer no backlog. Se der uma olhada na definição vind do guia do Scrum (scrum guide no scrum.orgs), encontrará o seguinte:”O backlog do sprint consiste nas tarefas que o time deve realizar para incrementar o backolog do produto na direção do status pronto… Isto é, todo o trabalho que o time identifica como necessário para atingir o objetivo do sprint.”Então, qual é a resposta correta? Minha resposta é que depende… depende do contexto. Por exemplo, se a definição de pronto leva em conta ter testes unitários, testes de aceitação automatizados, etc, então estes itens não precisam estar explicitamente identificados no backlog. Isto é, coisas que são feitas pelo time e não existe negociação. Assim, as estimativas precisam incluir o tempo necessário para completar todos estes elementos que fazem parte do conceito de pronto.Naquelas situações, onde um dos membros sugere – “Como membro da equipe de desenvolvimento, eu quero que os testes unitários existentes devem ser executados pelo Cruise Control ( integração contínua) de modo que eu sei quando algo quebra”. Bem, esta é uma história bem escrita e que define bem a necessidade, mas ela não tem nenhum valor final para o usuário (PO), pelo menos não diretamente. Neste caso específico, eu sugiro o seguinte:Este tipo de história, definitivamente, não pertence ao backlog do produto, mas pode ser uma tarefa que existiria no backlog do sprint. Alguns amantes de XP poderiam dizer que não faz sentido por trabalharem sempre no nível de histórias, para o planejamento, enquanto que o Scrum fala mais em tarefas. Se o time estiver trabalhando com tarefas, este tipo de atividade – histórias técnicas – devem aparecer no backlog e ter o esforço estimado. A maioria das pessoas de XP vão dizer que é isso é micro-gestão.
Qual melhor dia para começar e terminar um sprint – Jack Milunksy
janeiro 7th, 2010Pessoal, hoje li no blog Agile Buddy do Jack Milunsky um interessante e pequeno artigo em que ele reflete sob qual seria um bom dia da semana para começar e terminar o sprint. Eu tomei a liberdade de escrever uma versão em português para vocês. Caso queiram ler o original cliquem aqui
Primeiro, que fique claro que o tamanho dos sprints sempre devem ser consistentes.De qualquer jeito, experimente 1 fazer sprints com duração de 1, 2 ou 3 semanas mas uma vez que acha o melhor cenário adote-o e siga-o. Isto é importante para definir um ritmo na empresa. Entretanto, a questão é quais dias são os melhores para começar ou terminar o sprint. Até agora, eu tenho sido um fã de começar na segunda e terminar na sexta-feira. Me parece ser uma cadência natural e os dias acabam por se tornar pontos de transição lógica.Porém, nesta semana, houve uma discussão no forum de desenvolvimento Scrum, e um número razoável de pessoas disseram ser a favor de começar não na segunda e sim na terça; terminar na quarta e não sexta. Os motivos para isso foram os seguintes :1 – Existem muitos feriados na segunda e sexta que acabam por interromper o ciclo e com isso o ritmo.2 – Se tiver algum problema no sprint e ele termina na sexta, isto possívelmente forçará o time de trabalhar no final de semana – algo normalmente evitado pela comunidade ágil.3 – Sexta feira acaba sendo um dia não muito produtivo pois o pessoal tende a se dedicar a demos, restropectivas, etc.Pelo aprendizado, eu preciso experimentar isso.Qual tem sido sua experiência?Jack
http://blogblogs.com.br/