jump to navigation

Descobrindo as Metodologias Ágeis Agosto 26, 2008

Posted by Guilherme Lacerda in Experiências, Pensamentos.
Tags: ,
add a comment

Para iniciar os artigos no Blog Visão Ágil, eu gostaria de relatar um pouco da minha experiência com desenvolvimento de software e sua relação com as Metodologias Ágeis. Descobri o desenvolvimento de software por acaso, através de um curso profissionalizante Técnico em Processamento de Dados (TPD) que iniciei em 1993, seguindo alguns amigos. No início, eu não estava muito interessado, até conhecer o universo da Programação. Descobri que aquilo me fascinava e, de certa forma, me desafiava também. Comecei a fazer fluxogramas, algoritmos até o meu primeiro programa em BASIC. Aquela experiência foi decisiva para a definição da minha carreira profissional.

Dali em diante, depois do uso de quase duas dezenas de linguagens de programação, alguns cursos e muito aprendizado e softwares desenvolvidos, estou aqui para compartilhar com vocês um pouco destas experiências.

A primeira e mais inusitada foi a descoberta das metodologias ágeis. Em 1996, eu era bolsista em uma Universidade, tinha entrado no Curso Superior, cheio de expectativas e anseios. No setor onde trabalhava (Assessoria Especial de Planejamento/Apoio Técnico Pedagógico), basicamente digitava textos. Em horários de folga, estudava novas tecnologias e procurava novos desafios. Em outubro deste mesmo ano, vi que os chefes do setor criaram uma espécie de questionário de avaliação, denominado Avaliação Institucional, que seria aplicado a professores e alunos. Esta era também uma exigência do MEC.

Quando olhei aqueles formulários, pensei diretamente no desenvolvimento do software. Muita empolgação, pouca experiência…

Inicialmente, este projeto seria desenvolvido pelo CPD da Instituição, onde trabalhavam grande parte dos professores. Quando disse que tinha condições de desenvolver o projeto, os chefes ficaram apreensivos, mas compraram a idéia. Para iniciar o projeto, precisei chamar um colega meu de TPD e de faculdade, que poderia trabalhar meio turno comigo. Fizemos uma reunião inicial com o coordenador do projeto (chefe do CPD) e conversas diárias com os chefes do setor de Planejamento.

A minha sala era muito pequena, razão pela qual tinha apenas uma máquina (486 DX2 66 Mhz) e uma impressora matricial IBM 132 colunas. Combinei com este meu colega de trabalharmos juntos pela manhã no projeto e a tarde eu desenvolvia mais algumas funções do software além do trabalho do setor, que não podia parar.

A tecnologia que utilizamos na época era Clipper, versão 5.2.

Pegamos aqueles formulários e após algumas análises preliminares, conseguimos esboçar um modelo conceitual. Como havia apenas um computador, trabalhamos juntos, ora eu pilotando, ora ele. Tivemos que realizar alguns trabalhos de importação, parte da base COBOL da Instituição e outra parte de uma base ZIM, do Recursos Humanos.

Foi muito interessante o nosso aprendizado, pois conseguimos produzir um código muito enxuto, cada vez mais otimizado e sem gerar desperdício, pois o cliente estava ali na sala ao lado para acompanhar e direcionar as funcionalidades do projeto. Cada vez que percebíamos uma oportunidade de melhoria, realizávamos. Procurávamos ter versões diárias, sempre verificando e validando informações com os usuários/clientes. Concluímos esta versão em dois meses. A primeira versão compreendia funcionalidades básicas de operação e módulo de digitação para professores e alunos. Ficou para depois o desenvolvimento de relatórios gerenciais, até porque o pessoal do setor não os tinha definido. Este software funcionou em 8 Campi Universitários, fazendo o registro de questionários de mais de 9 mil alunos. Nos anos seguintes, exigiu pouquíssima manutenção.

Até onde sei, este sistema funcionou até 2002, pois saí da Instituição em 2000.

Algumas práticas importantes:

·         Comunicação efetiva

·         Padrões nas práticas de trabalho e de codificação

·         Pair Programming

·         Inspeções/Revisões de Código

·         Cliente presente

·         Projeto simplificado ao extremo

Em 1997, comecei a trabalhar com OO e Smalltalk. Programei por dois anos nesta linguagem, onde tomei conhecimento de alguns trabalhos e pessoas envolvidas com a tecnologia, entre eles o de Kent Beck.

Passaram-se alguns anos e, em 2001, através de conversas com o Klaus Wuestefeld, fiquei sabendo um pouco mais sobre eXtreme Programming. Quando vi o nome de Kent Beck e qual era o objetivo deste processo, tive certeza que funcionava. Foi paixão a primeira leitura. Quanto mais eu estudava, mais eu lembrava do projeto de Avaliação Institucional que, através do sucesso obtido e da satisfação do cliente, foi um degrau muito importante na minha vida. Embora já tivesse estas convicções, decidi que iria desenvolver software focado na comunicação efetiva, simplicidade, feedback e respeito do cliente, tendo como base os princípios ágeis.

Sobre Retrospectivas Agosto 25, 2008

Posted by Francisco Trindade in Lean, Pensamentos.
Tags: , ,
add a comment

Eu acredito que um dos pontos importantes em qualquer metodologia ágil é a possibilidade de melhoria oferecida ao time através do constante feedback recebido e também práticas como retrospectivas.

Apesar disso, não é difícil encontrar times que não estão acostumados a questionar seu próprio comportamento e acabam repetindo sempre os mesmos erros.

Esses dias, lendo o livro Toyota Way, eu obtive uma melhor compreensão desse fato, e como o mesmo é encarado na Toyota.

Segundo o autor (livre tradução):

Trabalho em equipe nunca encobre a responsabilidade individual na Toyota. Essa responsabilidade individual não é sobre culpa e punição, mas sim sobre aprendizado e crescimento.

E ainda mais importante, nas palavras de Andy Lund, que é um gerente de projeto na Toyota e cresceu no Japão (livre tradução):

Pessoas que não estiveram no Japão podem não entender que o objetivo não é prejudicar o indivíduo, mas ajudá-lo a melhorar – não é prejudicar o programa, mas sim mostrar falhas que possam ser resolvidas no próximo programa. Se você entende isso profundamente, você pode entender a crítica construtiva. Não importa o quão bom é um programa ou apresentação que alguém fez, sempre existe algo que pode ser melhorado, então nós consideramos isso uma obrigação. Não é um ponto negativo obrigatório, mas sim uma oportunidade de melhoria obrigatória — é o coração do kaizen.

E isso é exatamente o que acontece na prática. Pessoas interpretam sugestões e observações como críticas negativas, e não vêem que a única alternativa para um time manter um processo de melhoría contínua é continuamente questionar seu comportamento e enfrentar os seus pontos fracos.

Um abraço.

Francisco
Ps: Esse post é uma tradução de um post originalmente publicado no meu blog:
About Retrospectives and Accepting Criticism

Sobre o autor:

Frank Trindade

Francisco Trindade

Francisco Trindade é desenvolvedor e consultor da ThoughtWorks UK. Engenheiro de Computação e mestre em Engenharia de Software pela UFRGS, Francisco possui 5 anos de experiencia em desenvolvimento de software, alem de ser um entusiasta e praticante de metodologias ágeis.

Criar um novo Barco Agosto 25, 2008

Posted by Ricardo Almeida in Pensamentos.
2 comments

 

Gosto muito de barcos e desde pequeno eu tenho fascinação por mar. Já que nossa área ganha bem e só perde para o salário dos políticos, eu decidi comprar um barco todo personalizado. Então fiz uma pesquisa de mercado para saber quem poderia me fornecer o barco a um custo razoável e a um prazo aceitável. Não foi muito difícil para aparecer duas pessoas interessadas no meu negócio. Um chamado Dunga e outro chamado Phelps.

O Dunga me falou que trabalha com os melhores barcos de mercado e todos tem ótima qualidade. Ele disse também que trabalha com uma fábrica de talentos na construção de barcos. Então ele me propôs as seguintes fases para a construção do barco:

 

1- Fazer a concepção detalhada de tudo que eu quero no meu barco. Analisar e documentar tudo que o barco precisa ter e fazer. Quantos cômodos vai ter meu barco, quantas portas e janelas. Se os bancos serão de couro, se as paredes terão detalhes com gessos. Qual altura vai ter os mastros. Qual vai ser a velocidade desejada para meu barco etc. Após essa fase de análise, iniciar a construção do barco. Em seguida testar se o barco tem estabilidade desejada em mar aberto ou se está pendendo muito. E finalmente entregar o barco para ter o meu feedback. O Dunga disse que precisaria de 11 pessoas para a construção, sendo que um ficaria responsável pela retaguarda do barco ( motor e âncora ),  quatro fariam a parte traseira, outros quatro fariam o interior do barco e dois últimos ficariam responsáveis pelo bico do Titanic. O tempo de entrega seria 2 anos de concepção, análise e documentação, mais 2 anos de construção, testes e implantação. Sem contar as manutenções necessárias depois da entrega. Total de 4 anos. O custo seria equivalente ao passe do Riquelme e Messi juntos!

O Phelps me fez a seguinte proposta:

2- Fazer todas as fases da proposta 1 muito mais vezes! O prazo seria estipulado em entregar partes do barco mensalmente e o custo seria apenas as horas que ele e outro profissional, chamado César Cielo, estiverem fazendo o barco. 

Mas como isso ser possível? Minha primeira impressão foi que o Phelps bateu a cabeça no barco e ficou louco! Com a testa inchada agora ele acha que pode fazer todas as fases da proposta 1 diversas vezes, entregar essas fazes a cada mês e ainda fala que vai sair muito mais barato?

Apesar do susto, eu tive uma leve impressão que o Phelps me entregaria o barco pronto com mais agilidade, então decidi arriscar pela proposta 2.

Na verdade, após o andamento do projeto, eu percebi que de louco o Phelps não tem nada. Ele pediu para que eu sempre estivesse presente na construção do barco. Tínhamos uma comunicação face-a-face sobre como deveria ser o resultado. Eu percebi que o dia que o Phelps não trabalhava a produtividade continuava quase a mesma, pois o Cielo sabia fazer tudo que o Phelps estava fazendo. Depois de três meses, consequentemente três entregas, toda a estrutura da base do meu barco estava montada, o que já me permitia atravessar parte do mar até uma ilhazinha paradizíaca. Lembro-me a vez que eles me entregaram todas as 50 janelas do barco. Primeiramente me mostraram apenas 10 moldes nas paredes, sem janela nem acabamentos. Esses moldes seriam onde as janelas se encaixariam. De imediato eu bati o olho e vi o formato das janelas sendo todas quadradas. Então conversamos e o meu feedback foi de mudar as janelas para que todas fossem redondas, e para não ter tanta claridade interna, seriam necessárias apenas 30 janelas e não 50. Minha surpresa foi que na entrega posterior todas as janelas estavam prontas, mesmo aqueles moldes que estavam quadrados. Eu fiquei imaginando quanto retrabalho eles teriam se tivesses feito todas as 50 janelas com formatos quadrados.

Reparei que eles nunca fazias horas extras de trabalho, eles mantinham um ritmo sustentável de trabalho e mesmo assim faziam as entregas no prazo. O que primeiramente parecia um projeto de longas datas, até anos, em apenas 9 meses eu já tinha o simples, mas que era tudo o que eu realmente necessitava.

Fiquei bastante surpreso com a agilidade do Phielps, como se ele já tivesse nascido para construir o meu barco.

 

Mas se eu não me contentasse com um barco e quisesse um navio? Será que esse método de trabalho funcionaria para mim? Hoje sei que se fosse um navio, ainda mais um navio, eu não seria louco de fechar um contrato com o Dunga.

Besteirol Agile Agosto 20, 2008

Posted by Rodrigo Yoshima in Pensamentos, Scrum.
comments closed

É incrível como o mercado é dado a modismos. Atualmente quando falamos sobre Agilidade um monte de besteirinhas acompanham o termo. Várias vezes ví em fóruns de discussão: “estamos adotando o Scrum, mas ainda não temos o quadro de tarefas”, “ainda não conseguimos ter as histórias em cards”, “ainda não temos as cartas do Planning Poker”, “ainda não traçamos o gráfico de burndown”, “ainda não temos o quadro branco para fazer os modelos”, “ainda não estamos estimando em pontos”, ” e etc, etc, etc… às vezes ouvimos “não usamos mais casos de uso, só usamos histórias”, “não documentamos mais a arquitetura”, “banimos o RUP”, “não documentamos mais a visão”, “não usamos mais UML”, “não temos mais documentos Word, só usamos Wiki”, “não somos mais CMMI” e etc, etc, etc…

Infelizmente vejo que tem se criado um “Termômetro Agile” bem estúpido. É um AMM (Agile Maturity Model) que mede o quão Agile você é baseado na quantidade de práticas da moda que você aplica. É mais ou menos assim:

Práticas AMM Pontos
Sim Não
Você tem o quadro de tarefas da iteração? +10 -10
Você tem as histórias em Index Cards? +10 -10
Você está usando mais de 135 post-its por mês? +10 -10
Você tem o quadro branco com modelos? +10 -10
O quadro branco tem modelos UML? -5 +5
Você mantém modelos UML como artefatos? -15 +15
Você tem as cartas do planning poker? +5 -5
Sua reunião diária dura exatamente 15 minutos? +5 -5
Você usa algumas práticas do RUP? -10 +10
Sua documentação está num Wiki? +5 -5
Você se preocupa com rastreabilidade? -15 +15
Está usando uma ferramenta para gerenciar o projeto? -10 +10
Sua iteração tem mais que 2 semanas? -10 +10
Seu Gráfico Burndown está em pontos? +5 -5
Você pode ir trabalhar de camiseta? +15 -15
Você usa Gantt Chart? -100 +100
Você é CMMI? -100 +100
Você tem PMPs na equipe? -50 +50
Você tem CSMs na equipe? +50 -50
Você está fazendo em Rails? +25 -25
Você já assistiu uma palestra com o Juan Bernabó? +20 -20
Sua equipe assiste aos videos da ImproveIT? +20 -20
Você lê o blog do Guilherme Chapiewski sobre a Globo.com? +20 -20
Você fez o curso com o Alexandre Magno na Caelum? +20 -20
Você lê os artigos do Rodrigo Yoshima? +20 -20

(Juan, Vinicius, Guilherme e Magno… isso é só piadinha, OK? – espero que não tenha retaliação :) )

Leia mais e comente no blog Débito Técnico da Aspercom:
http://blog.aspercom.com.br/2008/08/20/besteirol-agile/

Vencendo o Estado de Negação na Sprint Retrospective Agosto 20, 2008

Posted by Manoel Pimentel in Pensamentos, Scrum.
Tags: ,
5 comments

Introdução

 

Sabemos que uma importante idéia dos processos ágeis, é a constante inspeção e adaptação que fazemos em cada pequeno ciclo (diário ou semanal) do projeto  de software, a fim de gerar um fluxo contínuo de melhoria no mesmo. Dessa forma, uma das ferramentas mais importantes para aplicação desse conceito, é a reunião de RETROSPECTIVA da Sprint (ou Sprint Retrospective) proposta pelo Scrum.

 

A reunião de RETROSPECTIVA é realizada ao final de cada Sprint, com a participação de todos os membros do time, junto com o ScrumMaster e com uma participação opcional do Product Owner, essa  reunião têm como principal objetivo,  avaliar “O que funcionou bem” na Sprint que terminou e seria interessante ser mantido na próxima Sprint e também levantarmos “O que precisa ser melhorado” na próxima Sprint, com base nas questões que não funcionaram bem na Sprint passada. 

 

Mas como podemos perceber, pela importância que essa reunião de retrospectiva têm dentro de um projeto ágil, é natural que os conflitos humanos se manifestem devido à pluralidade de personalidades que participam dela. E um dos principais efeitos psicológicos que são notados  nesses momentos, é a constante presença dos mecanismos de defesas  comuns à psique  humana.

 

Como o foco principal dessa reunião, é identificar  O que precisa ser melhorado”, é necessário explorar claramente  as falhas que aconteceram na Sprint passada e,  para que isso aconteça de acordo com o princípio ágil da Humildade,  é importante que todos sejam capazes de expor suas próprias limitações e fraquezas.

 

Por esses fatores, nessas reuniões de retrospectivas o mecanismo de defesa que emerge com mais facilidade,  é o famoso estado  de NEGAÇÃO, que segundo o pai da psicanálise Sigmund Freud, esse é o:

estado daquele que sabe mas não sabe”, ou seja é a “recusa consciente para perceber fatos perturbadores, que retira do indivíduo não só a percepção necessária para lidar com os desafios externos, mas também a capacidade de valer-se de estratégias de sobrevivência adequadas”.

 

A origem desse estado

 

            Sem entrar em detalhes profundos, vamos entender um pouco de onde vêm esse estado de negação, pois para tentar explicar esse universo da mente humana, Freud propôs três hipotéticas instâncias da personalidade:

  • Id - É o reservatório inconsciente dos impulsos que representa a necessidade de satisfação  imediata ou aquilo que realmente queremos.
  • Ego -Regido pelo princípio da realidade, o ego cuida dos impulsos do Id, logo que encontre a circunstância adequada.
  • Superego - Serve como um censor das funções do ego, com base  nos ideais do indivíduo, derivados dos valores familiares, sociais e culturais, o que se torna a fonte dos sentimentos de culpa e medo de punição, sendo o principal responsável pela nossa necessidade de projeção  de uma imagem perfeita do que somos para o  mundo em nossa volta.

 

            Devemos observar então, que o mecanismo de defesa da negação ocorre de forma inconsciente com base exatamente nos sentimentos de culpa e principalmente pelo medo de punição, pois de acordo com as atividades do superego, é da natureza humana, tentar projetar uma imagem perfeita para todas as áreas de relacionamento social, de maneira, que não aceitamos com facilidade que essas nossas falhas e deficiência se tornem públicas.

 

            Porém, apesar de ser parte da natureza humana, esse estado de negação, não é salutar para que as reais falhas que precisam ser melhoradas em um projeto, sejam descobertas, pois esse estado “cria um distanciamento entre o mundo tal como é e o mundo como o indivíduo gostaria que fosse, o que de acordo com o próprio pensamento de Freudnegação é um estado de apreensão racional que não resulta em ação adequada”, ou seja, com a existência desse efeito, perdemos muito da eficácia das ações corretivas nos Sprints, pelo simples fato, de não conhecermos as reais falhas ou suas principais causas.

 

 

Vencendo os obstáculos

 

            Claro que não existe uma forma mágica de suplantar esse obstáculo, mas como esse efeito traz certa ineficácia nas ações corretivas, é importante que tomemos alguns cuidados em identificar quando esse estado está impedindo  uma maior acurácia das retrospectivas.

 

            Existem algumas técnicas que o ScrumMaster pode usar para diminuir esse estado na equipe, dentre elas podemos citar:

  • Aplicação das ferramentas de processo raciocínio proposto pela TOC (Theory Of Constraints), para mitigar  as relações entre os efeitos indesejáveis, de forma a estabelecer de forma mais acurada, as causas raízes desse cada ramo de efeitos.
  • Criar constantes workshops de facilitação para alavancar o potencial de relacionamento e comunicação entre  os membros da equipe.
  • Criar um comprometimento do time com base no entrosamento que o mesmo vai adquirindo no decorrer das Sprints.

 

            Observe que em todas as possibilidades acima, é importante que o ScrumMaster tenha um aguçado “feeling” de relações interpessoais, de maneira que o mesmo consiga detectar os momentos que um membro entra em uma postura de negação em face de outros membros da equipe.

 

            Veja que apesar da importância do ScrumMaster detectar esse comportamento, não é o seu papel  ser o “cobrador” da equipe, mas sim, ele irá criar mecanismos para facilitar o processo e alavancar o claro e eficaz relacionamento entre os membros da equipe, de forma, que as possíveis falhas ou impedimentos do processo, possam ser visualizados de uma maneira clara, humilde e visando soluções colaborativas.

 

 

Conclusões

 

            Como você observou nesse texto, os mistérios do funcionamento da mente humana, são diretamente ligados ao desempenho das equipes em um projeto de software.

 

            Veja também que esse pensamento relacionado ao estado de negação, se aplica não somente na mecânica das retrospectivas, mas sim, se aplica em todo o ciclo do projeto, ou seja, essa postura de usar um mecanismo de defesa, pode ser manifestada diariamente, em uma inspeção de código, em uma programação em par, em uma reunião diária,  ou até mesmo, ao final das Sprints novamente, pois as equipes podem entrar em estado de negação também nas revisões do incremento de software (Sprint Review), por isso a atenção para prevenção ou para a dissolução desse estado de negação, deverá ser constante em todo o projeto.

 

            Portanto, creio que esse artigo atingiu seu objetivo de mostrar e propor uma reflexão aos  principais problemas relacionados ao comportamento humano, que impedem o bom funcionamento de uma Sprint, de forma que ao compreender e diminuir esses efeitos indesejáveis, tenhamos formas de maximizar o feedback em todos os níveis de um projeto, para que realmente possamos ter equipes auto-organizadas que gerem um ótimo ROI sobre o mesmo.

 

 

 

Referências:

-         Livro de Psicologia “Mundo da Criança” de Diane E. Papalia, Sally Wendkos Olds e Ruth Duskin Feldman.

 

-   Artigo Líderes em negação, Revista Harvard Business Review de Julho 2008

 

 

Sobre o autor:

Manoel Pimentel, CSP

Manoel Pimentel, CSP

 É Engenheiro de Software, com mais de 15 anos na área de TI, atualmente trabalha com  como Coach em metodologias para importantes empresas do segmento de serviços, indústrias e bancário.  É Diretor Editorial da Revista Visão Ágil, Possui as certificações CSM e CSP da Scrum Alliance e foi um dos pioneiros na utilização e divulgação de métodos ágeis no Brasil.
Contatos: manoel@visaoagil.com

Certificações (ou como estragar sua equipe) Agosto 16, 2008

Posted by Francisco Trindade in Experiências, Pensamentos.
Tags: , ,
1 comment so far

Esses dias estava assistindo o vídeo do debate sobre metodologias ágeis na TDC, onde o principal tópico foi a já conhecida discussão sobre metodologias ágeis X CMMi.

Não quero entrar em detalhes aqui sobre o debate, até porque quem estiver curiosidade pode ver o vídeo, que foi bem interessante, mas sim queria dar minho opinião sobre um ponto de vista que é pouco abordado nessas discussões, que é a utilização de certificaçoes em geral.

O principal ponto em qualquer processo ou metodologia , na minha opinião, é a capacidade que é dada para a equipe de constantemente melhorar o seu desempenho, e isso é um aspecto extremamente importante nas metodologias ágeis, já que um ambiente de melhoria constante é possibilitado devido ao constante feedback recebido (do cliente, da própria equipe, etc.. ).

E o que isso tem a ver com certificações?

Bom, certificações, como o próprio nome diz, certificam que uma equipe segue algum padrão. Elas requerem evidências de que o time está constantemente seguindo certas práticas, e com essa exigência, elas acabam com as possibilidades de inovação de qualquer equipe.

Quero deixar claro que não estou falando só de CMMi ou qualquer outra certificação tradicional, mas sim de qualquer certificação, inclusive idéias de certificações ágeis que vem surgindo. E se a equipe não quiser estimar mais? E se não quiser escrever estórias em cartões?

Um exemplo prático disso está acontecendo em um projeto da ThoughtWorks UK, onde o cliente decidiu que algumas funcionalidades sendo desenvolvidas deveriam ser colocadas em produção sem testes de aceitação, para se obter um feedback rápido do público e depois então testá-las caso fossem aceitas.

Como ficaria essa situação se a equipe fosse certificada em “Agile nível 5″ :D , onde 100% do código deve ser testado? Certamente o cliente seria prejudicado por regras impostas por alguma organização que quer especificar como desenvolvemos software.

Finalizando, eu também entendo o outro lado da moeda, onde certificações são exigidas por empresas e governos para se poder vender projetos. Acho que nesse caso, a opção é de cada equipe, mas deve-se saber que aceitando-se isso, se estará comprometendo a capacidade de se entregar software.

Um abraco,

Francisco

Sobre o autor:

Frank Trindade

Francisco Trindade

Francisco Trindade é desenvolvedor e consultor da ThoughtWorks UK. Engenheiro de Computação e mestre em Engenharia de Software pela UFRGS, Francisco possui 5 anos de experiencia em desenvolvimento de software, alem de ser um entusiasta e praticante de metodologias ágeis.

Modelagem Ágil na TDC 2008 Agosto 14, 2008

Posted by Vinícius Manhães Teles in Modelagem Ágil, Vídeos.
Tags: , ,
1 comment so far

Está disponível o vídeo da palestra de Modelagem Ágil, do Manoel Pimentel, na TDC 2008:

Sindrome do Estudante Agosto 14, 2008

Posted by Francisco Trindade in Pensamentos.
Tags: , ,
2 comments

Um dos conceitos interessantes que eu aprendi lendo os livros do Goldratt é o da Sindrome do Estudante, que é definido assim pela Wikipedia (livre tradução):

Fenômeno onde pessoas começam a se esforçar para finalizar uma tarefa no último momento possivel antes do final do prazo. Isso leva a perda de qualquer buffer reservado para tarefas individuais durante estimativas.

É fácil entender porque esse conceito têm esse nome. Qualquer pessoa que já foi estudante sabe que sempre que tem um trabalho a ser feito, ele vai ser começado justamente quando não dá para atrasar mais, ou seja, no último momento possível.

O que eh dificil de se dar conta é que esse conceito se aplica também ao mundo dos negócios e, o que mais me interessa, no desenvolvimento de software.

Normalmente, quando o desenvolvedor vai estimar uma série de estórias para uma iteração, naturalmente um buffer de incerteza é colocado dentro de cada estimativa. Então se eu acho que uma tarefa vai demorar na melhor das hipóteses 1 hora, vou estimar 1 hora e meia só pra garantir. :D

Não tem nada de errado nisso, já que estimativas são chutes científicos, mas o problema é que todos esses buffers não são especificados nas estimativas, e ficam esquecidos dentro das tarefas individuais.

Na hora da implementação, o desenvolvedor acaba usando todo o tempo reservado para a tarefa na melhor das hipoteses. Devido a isso, quando uma tarefa apresenta maior complexidade do que o esperado, todos os buffers individuais que foram reservados para as tarefas anteriores já foram usados, fazendo com que o tempo para todas as tarefas seja maior do que o previsto.

Como resolver isso?

Estime todas as tarefas sob um ponto de vista otimista, e coloque todas as margens de segurança em um buffer único, que vai sendo utilizado na medida em que é necessário. Com isso, a procrastinação durante as tarefas é menor, levando a melhores resultados.

Ainda existem outras maneiras em que se pode observar esse fenomeno ocorrendo em desenvolvimento de software, mas como o texto está ficando grande, vou deixar isso para um próximo post.

Um abraco,

Francisco

Sobre o autor:

Frank Trindade

Francisco Trindade

Francisco Trindade é desenvolvedor e consultor da ThoughtWorks UK. Engenheiro de Computação e mestre em Engenharia de Software pela UFRGS, Francisco possui 5 anos de experiencia em desenvolvimento de software, alem de ser um entusiasta e praticante de metodologias ágeis.

Agile 2008 Conference no Canadá Agosto 6, 2008

Posted by Ricardo Almeida in Notícias.
add a comment

Está acontecendo essa semana o evento Agile 2008 Conference em Toronto/Canada. Quem quiser saber mais detalhes o Guilherme Chapiewski está comentando no blog dele.

Sprint iniciado não se mexe Agosto 6, 2008

Posted by Rodrigo Yoshima in Scrum.
comments closed

Iniciando a série perguntas e respostas, dúvida na lista scrum-brasil:

2008/7/29 Alguém wrote:
Olá pessoal,

Gostaria de tirar algumas dúvidas:

Imaginem que existe um sprint definido e iniciado, que possui 10 tarefas. Depois de passados alguns dias, o Product Owner quer trocar um item do Sprint por outro de mesmo peso, que ainda não foi iniciado. Isso poderia ser feito? Ou em Sprint iniciado não se mexe?

Essa é uma pergunta muito comum nos cursos que ministro. Na maioria das vezes não é simplesmente trocar um pelo outro. Muitas vezes o planning é um momento onde aprofundamos em requisitos, fazemos alguns modelos rascunhando, levantamos tarefas, preparamos o que for necessário e isso sempre é sobre as Stories que selecionamos para o Sprint.

Durante o Sprint é o único momento onde o escopo está fixo (escopo do Sprint). Isso faz parte do contrato Scrum. Isso garante o mínimo de segurança para a equipe trabalhar num terreno um pouco mais firme mesmo que por um curto prazo. Sou partidário do “sprint iniciado não se mexe”. Já tive cliente que o Product Owner queria toda hora mudar o Sprint Backlog. Isso gerava um estresse grande na equipe. A equipe não sabia o dia de amanhã. É muito ruim.

Um artifício que o Product Owner pode usar é cancelar o Sprint, mas isso significa parar o Sprint atual e voltar para o Planning. Não é uma coisa muito comum e nem muito agradável. O Product Owner tem que se organizar!

Veja o artigo completo e comente no Débito Técnico:
http://blog.aspercom.com.br/2008/07/29/sprint-iniciado-nao-se-mexe/

Palestra de Extreme Programming na TDC 2008 Agosto 5, 2008

Posted by Vinícius Manhães Teles in Vídeos.
Tags: , , , , , , , , , , , ,
add a comment

O vídeo da minha palestra de Extreme Programming na TDC 2008 está disponível:

Debate sobre Metodologias Ágeis na TDC 2008 Agosto 5, 2008

Posted by Vinícius Manhães Teles in Vídeos.
Tags: , , , , , , , ,
3 comments

Pessoal, acaba de ser publicado o vídeo do Debate sobre Metodologias Ágeis que ocorreu na TDC 2008:

PMBoK e Agile… Pode? Agosto 1, 2008

Posted by Renato Willi in Scrum.
Tags: , ,
15 comments

Essa é uma questão me fazem vez ou outra. Me senti na dívida de explicar melhor o assunto, e cá estamos. A questão ocorre como se ao adotar uma metodologia ágil, a pessoa estivesse de alguma forma “subvertendo os preceitos do PMBoK”, e isso poderia estar indo contra o “código de ética dos PMP’s”, como se um padre pregasse sem seguir a Bíblia ou coisa assim. Que pecado!

pecado

A má interpretação mais recorrente é que o PMBoK é um processo, assim como seriam as metodologias ágeis, e que esse processo deve ser seguido fielmente pra seu projeto dar certo, pra você ser um bom gerente de projetos, ter sucesso, etc. O PMBoK não define um processo, é um conjunto de conhecimentos e as ditas melhores práticas.  Da introdução:

“O Conjunto de conhecimentos em gerenciamento de projetos é a soma dos conhecimentos intrínsecos à profissão de gerenciamento de projetos. (…) inclui práticas tradicionais comprovadas amplamente aplicadas, além de práticas inovadoras que estão surgindo na profissão, inclusive materiais publicados e não publicados. (…) está em constante evolução.” (PMBoK pág. 3)

Tenho visto cursos que ensinam gerência de projetos através dos processos descritos no PMBoK, inclusive passando aquela noção errada de que gerenciar é seguir fidedignamente todos aqueles processos, preenchendo toda documentação de cada caixinha, suas entradas e saídas. (O próprio livro diz que os processos podem interagir de diversas formas, como definir uma ordem?)
Ora, gerenciar não é preencher papel! Imagina ter que fazer tudo que o livro traz em cada projeto em todas os tipos de projetos? Seria o segredo para o fracasso na verdade! Já pensou? Por exemplo, já vi projetos simples de sites que deveriam ficar prontos em 15 dias, um mês às vezes… Não daria pra fazer nem metade dos formulários! Imagina os recursos gastos, mesmo reaproveitando os textos! Ou você sempre estouraria o orçamento, ou seria caríssimo, logo pouco competitivo. De qualquer forma terminaria fora do mercado.

Outro exemplo: pra desenvolver um sistema em tempo real, digamos para um avião, você tem que dedicar muita atenção ao gerenciamento de riscos. Realmente cabe documentar bem, várias análises, gente preocupada só com isso pra assegurar que gente não morra. Imagina fazer isso tudo pro simples site exemplificado anteriormente…

O PMBoK traz resposta pra isso, na mesma página, quando se refere a seus objetivos:

“O principal objetivo do Guia PMBoK é identificar o subconjunto do Conjunto de conhecimentos em gerenciamento de projetos que é amplamente reconhecido como boa prática. “Identificar” significa fornecer uma visão geral, e não uma descrição completa. “Amplamente reconhecido” significa que o conhecimento e as práticas descritas são aplicáveis à maioria dos projetos na maior parte do tempo, e que existe um consenso geral em relação ao seu valor e sua utilidade. “Boa prática” significa que existe acordo geral de que a aplicação correta dessas habilidades, ferramentas e técnicas podem aumentar as chances de sucesso em uma ampla série de projetos diferentes. Uma boa prática não significa que o conhecimento descrito deverá ser sempre aplicado uniformemente em todos os projetos; a equipe de gerenciamento de projetos é responsável por determinar o que é adequado para um projeto específico.” (PMBoK pág 3, destaque do livro).

E isso é reforçado na página 37:

“Isso não significa que o conhecimento, as habilidades e os processos descritos devam ser sempre aplicados uniformemente em todos os projetos. O gerente de projetos, em colaboração com a equipe do projeto, é sempre responsável pela determinação dos processos adequados e do grau adequado de rigor de cada processo, para qualquer projeto específico.” (também em negrito no livro)

Esses parágrafos esclarecem toda a questão, não? O próprio livro as destaca! A equipe é responsável por determinar quais áreas de conhecimento devem ser aplicadas, quais processos, em que grau, rigor, com quais entradas e saídas e em que nível de formalismo. A equipe que deve escolher as ferramentas mais adequadas para cada situação!


Está sendo atribuída ao PMBoK a mesma responsabilidade que muitas vezes é atribuída ao RUP. Nem no RUP, que é de fato um processo, você deve usar toda documentação, completa, com todas atividades, na ordem determinada, com cada pessoa pra exercer um papel, etc. Alguém, exercendo o papel de engenheiro de processo, deveria customizar o processo, selecionar artefatos e adequar tudo aquilo que se tem à disposição para o projeto em particular.

Isso não era feito, o processo virava um cascatão super burocrático, complicado, cheio de atropelos, cheio de gente e a culpa ia pro RUP (que também tinha melhores práticas e conhecimento agregado de anos de experiência da Rational em desenvolvimento de software).

Talvez o RUP tenha sido apresentado como um remédio para todos os males das organizações, traumatizadas pelos projetos que não tinham documentação nenhuma, ficavam na mão de analistas do mau, que às vezes às chantageavam, sabendo que eram insubstituíveis pois levariam consigo todo conhecimento dos sistemas. Projetos eram jogados inteiros no lixo porque ninguém conseguia entender ou dar manutenção, milhões eram perdidos…

Mas como todo remédio, dependendo da dosagem, pode fazer mal. E partimos dum extremo sem documentação nenhuma pra outro com documentação demais!


“Adotar o RUP” não adiantou. Projetos continuavam falhando. As organizações então devem ter pensado: “Deve ter sido por falha de gerência…” Que venham os PMPs!
E quando virem que só isso também não vai bastar, quais letrinhas serão adotadas?
A culpa vai ser sempre dessa sopa de letrinhas!

Pessoal, claro que isso tudo foi só uma brincadeira…

E as metodologias ágeis? Ser ágil é seguir os valores do manifesto. Só! Só que é o que faz toda a diferença nos projetos. O XP traz práticas alinhadas aos valores, mais focadas na engenharia, o SCRUM traz um framework para gerenciar projetos favorecendo os valores e assim por diante.

Logo, casar as duas coisas é totalmente possível! Não está ferindo nada!


Se ainda não se convenceu, seguem aqui mais algumas fontes de leitura que achei interessantes, (já devem até ter surgido outras desde que fiz essa pesquisa):

  • Aqui, uma relação das áreas de conhecimento de integração, escopo, risco e qualidade, do PMBoK, com práticas ágeis de uma autora, Michele Sliger, que é PMP e CSM. Recomendo!
  • Nesta apresentação, ela traz, além do mapeamento das áreas de conhecimento, Evidências de que as Metodologias ágeis são aceitas pelo PMI como  revistas do PMI com publicações sobre Agile, fala de mais gente do PMI que adotam Agile, etc.
  • Uma interessante apresentação do Alan S. Koch, do PMI de Pittsburg, em que ele analisa cada processo do PMBoK e aponta suas compatibilidades e incompatibilidades, concluindo que nada nas metodologias ágeis é incompatível ao PMBoK, e adicionar alguns processos do PMBoK pode ser recomendável, mas só onde realmente necessário e de preferência que não comprometa a agilidade.

Faltam iniciativas do Brasil, né? O que está faltando pra nos convencermos?

Abraços,

Trabalho como gerente de projetos de desenvolvimento de software na SEA Tecnologia, atualmente utilizando e divulgando metodologias ágeis em Brasília.
Formado em Computação na UnB, Pós-Graduado em Software Livre pela UNISUL e cursando MBA em Projetos pela FGV. Certificado como PMP, ITIL Foundations, Java Programmer, IBM RMUC e IBM RUP Specialist.