Escolar Documentos
Profissional Documentos
Cultura Documentos
estória de usuário)
Postado em 2016/08/17 by Eli Rodrigues em Projetos Ágeis
Acredito (e digo assim, pois o time teria que discutir em conjunto), ante a tudo que foi descrito, que
pela ordem de complexidade poderíamos ordenar as estórias como 1, 3, 4 e 2.
Escala de complexidade
A escala mais comumente utilizada em projetos ágeis é a sequência de Fibonacci (Ahá, você achou
que não servia pra nada quando viu na escola, né?).
1
1+0 = 1 (quem vem antes do 1? é o zero)
1+1=2
2+1=3
3+2=5
5+3=8
8+5=13
E assim por diante.
Essa sequência é utilizada por ser uma escala não-linear, ou seja, quando você definir as pontuações
das estórias não poderá marcar uma estória com 4 dizendo que é o dobro de 2, ela só pode valer 3 ou
5.
Isso permite que haja variabilidade na estimativa e impede que se faça regras de três para estimar as
horas de trabalho, com isso, faz com que, ao longo do projeto, as pessoas se foquem mais no valor
agregado (em quantos pontos foram terminados) que no esforço empenhado em fazer o trabalho.
Afinal, esforço sem resultado não serve para nada.
Explicando o raciocínio:
Há algum tempo falei sobre o Freemind, um software gratuito para desenho de mapas mentais. Hoje,
vou falar sobre o processo de construção do mapa mental, por onde começar e como estruturar,
passo a passo.
O mapa mental começa com uma folha em branco e não há uma única forma de estruturá-lo. Antes
de mais nada, deve-se definir um propósito: sobre o que você deseja falar?
Para algumas pessoas, uma folha em branco é um paraíso, um campo onde as ideias podem brotar.
Para outras, um grande problema, pois sentem dificuldades no pensamento conceitual. Trazer à
realidade coisas que estão apenas na sua cabeça nem sempre é uma tarefa trivial.
Para exemplificar, pensar juntos sobre como construir uma loja de roupas?
Bem, eu não entendo muito sobre lojas de roupas, então teremos que pensar juntos. OK?
1 – A primeira coisa que eu gostaria de pensar é sobre onde vou conseguir as roupas para vender, o
que chamarei de Fornecedores.
Bem, eu acho que roupas podem ser compradas em fábricas ou em distribuidoras, então vou
adicionar esses itens aos mapas também.
Mas peraí… como vou saber quem são os fornecedores se ainda nem escolhi os produtos? Melhor
colocar os produtos no mapa então.
Puxa vida! Não sei quais produtos vender ainda, pois não sei o que as pessoas querem comprar. Para
definir isso, acho melhor fazer uma Pesquisa de Mercado, mas para fazê-la, preciso definir onde será
a loja. Vamos lá:
Defini que será uma loja de roupas na Zona Oeste de São Paulo e as ideias começaram a clarear…
no entanto, a ZO é uma área muito grande, que possui populações de todas as classes sociais. Então,
para cercar um pouco mais o escopo de atuação, resolvi atender à classe média.
Mas minha segmentação ainda não está completa, pois posso atender homens, mulheres e crianças,
vamos ter que fechar um pouco mais o escopo. Que tal atendermos ao público feminino?
Hum… agora já sei mais ou menos quem desejo atender, mas ainda falta definir qual das facetas de
uma mulher de classe média queremos atender. Que tal se atendermos às fitness, aquelas que gostam
de fazer academia e exercícios?
Bem, definido isso, acho que já podemos pensar nos produtos.
Como não sabia exatamente quais produtos vender, procurei no Google e olha só o que eu
encontrei: concorrentes, muitos concorrentes!
Caramba, com tanta gente concorrendo, acho melhor mapear algumas da minha região de atuação,
sejam eles players próximos, shoppings, grandes lojas ou lojas online.
Agora que já tenho uma ideia dos concorrentes, seria justo fazer um benchmarking para descobrir
quais podem ser meus diferenciais. O que posso oferecer que eles já não ofereçam? preço?
diversidade de peças? entrega em casa? atendimento?
Com tantas lojas grandes vendendo peças baratas e entregando em casa, acho melhor investir num
atendimento diferenciado…
Pensei em peças sob-medida, mas a maioria dessas peças já é elástica. Pensei também em roupas
para pessoas mais rechonchudas, mas talvez não seja uma boa ideia. Cheguei até a pensar em peças
para pessoas mais velhas ou que não queiram mostrar o corpo, mas para isso, basta uma camiseta e
uma toalha (opa, mais um produto).
Então resolvi fazer um atendimento diferenciado, vamos ver como ficou o mapa mental:
Legal, começou a tomar forma! Percebi também que precisaria de canais de vendas, que poderiam
ser feitos através de parcerias com academias, médicos, nutricionistas e até com vendedoras
autônomas, ideias que vou avaliar mais tarde.
Para que mais serve um mapa mental?
Bem, acho que você já entendeu. O mapa mental serve para auxiliar no processo de conceituação de
uma ideia, não precisa necessariamente ser o esboço de um plano de negócio, como fiz aqui, poderia
ser a estrutura de um projeto, livro, aula, produto, festa ou o que você quiser.
Vale a pena baixar o aplicativo SimpleMind no celular, já que o freemind não tem versão mobile.
Assim, sempre que tiver uma ideia nova, poderá estruturá-la e depois exportar para o computador,
enviar por e-mail ou imprimir.
É comum as partes interessadas quererem saber quando o projeto vai terminar, por isso constroem-se
cronogramas nas metodologias tradicionais.
Sabe-se, no entanto, que a maioria dos projetos não cumpre os prazos e isso se dá a várias “doenças”
e erros que os projetos trazem consigo, geralmente ligados ao comportamento ou a estrutura (Leia
mais no livro 21 erros clássicos da gestão de projetos).
O Scrum, no entanto, se atém ao que é realmente possível fazer, sem sambarilove. Se não é possível
calcular com exatidão a data final de um projeto, por que tentar? Por isso, o Scrum usa o conceito
de timebox, em que o tempo é fixo e o escopo é variável.
Esse conceito tem a ver com o estudo que mostra que, no mundo dos softwares, apenas 20% das
funcionalidades são realmente utilizadas. O cliente pede sempre muitas coisas, mas no final utiliza
somente algumas.
Cabe a nós, como Scrum Masters, auxiliarmos nossos clientes na priorização do que é mais
importante para seu negócio, ao invés de apenas cumprir prazos (e sofrer pressões) para criar
coisas que sequer serão utilizadas.
Doenças do prazo
Alguns diriam que têm metas a cumprir, datas de lançamento de produtos, que os projetos já estão
começando atrasados e que, por isso, é necessário ter um controle rígido de prazo. Mas todos
sabemos que um recurso sob pressão sempre colocará “gordura” no prazo quando estimar e, quanto
mais pressionarmos, mais gordura colocará.
Lei de Parkinson
Sabe-se, pela lei de parkinson, que o esforço sempre se enquadra ao tempo disponível. De modo que
se um programador estimar 3 dias para fazer um trabalho, o fará em, no mínimo, 3 dias, ainda que
pudesse fazer em menos tempo.
Em contrapartida, se for pressionado a assumir uma estimativa de 1,5 dia (metade do tempo), ainda
que pudesse fazer em 1 dia, levará, no mínimo, o tempo que foi obrigado a estimar.
E como se não bastasse isso tudo, na próxima estimativa, sabendo que será pressionado a cortar o
tempo pela metade, estimará 6 dias (o dobro) para que você – “espertalhão” – possa pedir a redução
sem tirá-lo da zona de conforto.
É o que chamo de “liberdade no cercadinho”, a “criança” pode brincar com o que quiser, desde que
seja dentro do espaço que lhe foi delimitado. Em outras palavras, o programador poderá determinar
a ordem de complexidade, mas a gestão do tempo se dará diariamente, sem que ele fique no controle.
Com isso, você terá o tamanho do projeto: 1+2+5+8+13+21+34 = 84. Este número será utilizado
para medir o progresso.
Progresso x Velocidade
Mede-se o tamanho do projeto e não o prazo, pois, no Scrum, não importa quanto tempo passou e
sim o quanto foi concluído (Leia mais em Como saber se a entrega está pronta mesmo).
Daqui nasce a diferença entre progresso e velocidade:
Quanto mais estórias o time terminar, mais o projeto PROGREDIU. Ou seja, mais próximo está
de terminar todas as estórias.
Quanto mais rápido o time terminar, mais VELOCIDADE ele está alcançando.
Aqui temos um primeiro insight: Duas semanas têm 40 horas por pessoa. Se consideramos 3 pessoas
no projeto, já começou a sobrar tempo.
Simulando sprint 1
Então, duas semanas depois, chega-se ao seguinte sprint burndown:
84 sp / (3sp/sprint) = 28 sprints
Como cada sprint leva duas semanas => 56 semanas ou 14 meses.
Pergunto: Mas, será que a velocidade será constante nas demais sprints? Será que as atividades mais
demoradas já não foram cumpridas? Será que a integração do time melhorará nas próximas rodadas?
Não se sabe.
Por isso, é importante acompanhar algumas sprints para se ter uma ideia mais concreta de qual será a
velocidade média. Vamos simular?
Simulando as sprints 2 e 3
Digamos que na segunda sprint, o time tenha concluído a estória “Sala de reunião” e na terceira
tenha concluído a estória “elevador”. Como ficaria a velocidade média?
Sprint 1 = 3 story points
Sprint 2 = 5 story points
Sprint 3 = 8 story points
Média = (3+5+8)/3 = 5,33 sp/sprint
Perceba como é mais coerente considerar a variação de produtividade ao longo de várias sprints, por
isso se considera sempre a média (ou média móvel, se preferir) para estimar o projeto.
Para acompanhar a velocidade, deve-se usar um gráfico de controle, como o exemplo a seguir.
As linhas em vermelho mostram os limites superior e inferior, apenas como alerta para que o Scrum
Master avalie se houve um potencial desvio. Basicamente, o gráfico de velocidade serve para dar
uma noção do prazo do projeto, mas sem certezas, afinal, o Scrum foca em resultados não em
estimativas.
Uma outra forma de controlar o andamento da sprint é por quantidade de atividades. Ela é mais
rápida e mantém as pessoas focadas no que deve ser feito e não em quanto tempo levará para fazer.
Para os mais radicais, nem mesmo estimar a quantidade de tarefas é justificável. Preferem apenas
listar as estórias de usuário daquela sprint e seguir para a execução.
Quando se têm um grande número de estórias, o gráfico faz mais sentido. Mas, de qualquer forma,
só haverá progresso quando uma estória for 100% concluída, ou seja, quando atender a definition of
done.
Seria sensacional se os projetos seguissem uma linha reta, mas na prática, o PO (Product Owner)
decidirá, a cada planejamento de sprint (sprint planning), quais estórias permanecem, quais serão
simplificadas e quais serão adicionadas.
Em termos práticos, a estória “Negociação” poderia ser “repriorizada” para entrar na quarta sprint.
Ela também poderia ser “simplificada”, reduzindo sua complexidade para caber no prazo. Tudo pode
acontecer, afinal, é um projeto ágil!
Mas, peraí… o escopo não foi totalmente concluído! Quem é responsável por isso? A quem vamos
demitir?
Embora esse seja o pensamento tradicional, presume-se que no Scrum, o PO tenha colaborado com o
time durante todo o projeto e teve a visão exata do que havia sido concluído a cada sprint. Foi ele
quem decidiu, com base no seu conhecimento de negócio, quais estórias eram prioritárias e também
foi ele quem avaliou cada entrega.
Deste modo, espera-seque esteja satisfeito com o resultado, ainda que o escopo inicial do projeto não
tenha sido concluído. Pois, se não estivesse, teria apontado isso durante o projeto.
O mais comum é que o product burndown finalize com algumas estórias não implementadas, seja
porque o prazo terminou ou porque não houve interesse em seguir com elas. Mas, não se preocupe,
na segunda-feira tudo que foi produzido irá ao ar e não haverá surpresas no último dia.
Prioridade de negócio
Imagine que deseja montar uma loja de roupas de artes marciais, qual o primeiro passo?
Na primeira sprint, o objetivo deveria ser comprar roupas, colocar no porta-malas do carro e parar
em frente a alguma academia para começar, imediatamente, a venda. Isso é valor!
Na segunda, já com algum dinheiro em caixa, poder-se-ia procurar fornecedores com maior
qualidade por um menor preço. E na terceira, começar a procurar um local bacana para fazer a loja,
já conhecendo o mercado e suas peculiaridades.
Portanto, o valor de negócio é diretamente relacionado ao objetivo final e, para ter o maior retorno
no menor tempo possível, o projeto deve ser estruturado para testar o conceito primeiro, antes de
fazer maiores investimentos. É o que o mercado chama de MVP (minimum viable product).
Se o dono do produto (product owner) descobrir que seu objetivo é inviável, poderá parar o projeto
sem tantos prejuízos. Num projeto tradicional, as primeiras semanas seriam de planejamento,
enquanto num projeto ágil, seriam de venda. Isso tem mais a ver com a filosofia que com a
metodologia utilizada.
Organização em Sprints
Uma vez que tenha listado as estórias de usuário, é preciso medir os pontos por estória de
usuário (story points) para encontrar o tamanho do projeto e organizá-lo em sprints.
No começo do projeto, não se sabe ao certo quantos story points o time será capaz de fazer por
sprint. Deve-se, portanto, passar uma meta e verificar o quanto conseguem fazer ao longo de
algumas sprints e, só então, se poderá calcular a velocidade do time. Apenas com a velocidade real
do time, o product owner passará a ter algum nível de previsibilidade.
No Scrum, ao invés de fazer um cronograma, usa-se o conceito de Time Box, em que o tempo é fixo
e o escopo é variável. Com esse conceito, pode-se economizar bastante tempo de planejamento, mas
perde-se a sensação tradicional de controle do tempo. Em outras palavras, o time vai fazer o melhor
possível no tempo disponível.
A linha cinza mostra quantos pontos estão previstos para cada sprint
A linha rosa mostra quantos foram realizados
Os SPs (story points) acumulados serve como base para o cálculo das sprints restantes
As horas nesse exemplo totalizam 5 pessoas trabalhando 8 horas/dia em sprints de 10 dias
A produtividade serve para avaliar a distribuição da carga de trabalho
As Sprints Restantes mostram quanto falta para o projeto acabar (em sprints)
Product Burndown
Outra ferramenta bastante utilizada é o product burndown, que mostra o trabalho restante em story
points e deve mostrar a relação entre o previsto e o realizado.
Com esse gráfico, pode-se acompanhar avaliar riscos do projeto não cumprir a data e tomar ações
preventivas (e corretivas) para mantê-lo nos eixos.
Cerimônias e papéis do Scrum: Quem
faz o que e quando
Postado em 2016/09/30 by Eli Rodrigues em Projetos Ágeis
Nos projetos em que tenho atuado com Scrum, tenho visto frequentes confusões sobre
as responsabilidades de cada papel e sobre o tempo em que devem atuar.
São product owners que não escrevem as estórias de usuário e não determinam a prioridade
de negócio, times que não contam story points e scrum masters sem visão do prazo do projeto.
Não bastasse isso, tenho visto implantações confusas em que os pilares do Scrum não
são observados.
Tudo isso leva as iniciativas a “morrerem na praia” e causa descrenças sobre a filosofia
ágil que poderiam ser evitadas se o entendimento ficasse mais claro. Por isso, no intuito
de resumir as responsabilidades e o tempo em que as tarefas devem ser executadas,
construí dois infográficos que facilitarão a lembrança e, por consequência, a execução dos
projetos Scrum.
Responsabilidades – Quando?
O próximo infográfico (gantt-like) mostra onde há sequenciamento e onde há paralelismo
nas cerimônias (rotinas) do projeto.
Os papéis do Scrum e suas facetas
Postado em 2016/06/01 by Eli Rodrigues em Projetos Ágeis
O porco e a galinha
Muito se discute sobre os papéis e responsabilidades das pessoas comprometidas (e envolvidas) num
projeto Scrum e para começar a explicação, vale relembrar a velha estorinha do porco e da galinha:
A galinha (envolvida) dará seus ovos para construir o restaurante, enquanto o porco (comprometido)
terá que dar sua carne.
Essa piadinha antiga demonstra que num projeto há pessoas que têm responsabilidade pelo resultado
do projeto e outras que apenas participam. Sendo mais direto: Se o projeto não der certo, você será
demitido ou, na verdade, você apenas participou dando sugestões?
Jonathas, Pedro e José são programadores de um único projeto. Seu trabalho é construir um
aplicativo mobile dentro de determinado escopo e parâmetros de qualidade. Como é um projeto
Scrum, há um prazo estimado, mas a velocidade do time dependerá do acompanhamento diário para
gerar uma projeção mais realista de prazo. Isso, é claro, se não houver impedimentos pelo caminho
que impactem nessa velocidade.
Carlos é o Scrum Master. Ele dedica todo seu tempo, da hora que acorda até dormir, pensando no
projeto. Seu trabalho é proteger a equipe de intervenções externas e garantir que o escopo
(estórias) de cada sprint virem realidade toda sexta-feira.
Manuel é o PO do projeto. Ele vendeu a ideia internamente na empresa, conseguiu a verba para fazê-
lo e tem uma visão bem clara de onde deseja chegar. Suas metas são atreladas ao resultado daquele
produto que, quando pronto, deverá economizar 5 milhões para sua empresa. Se tiver sucesso, será
promovido. Se fracassar, será demitido.
Com um único PO, o projeto tem apenas um objetivo, um conceito, um senso de prioridade e de
qualidade. O Scrum Master e a equipe podem abstrair toda complexidade das discordâncias normais
que existem em grupos de pessoas e enfocarem-se apenas em executar o combinado o melhor
possível.
Um projeto pode ter mais de um PO se estiver construindo vários produtos, o que alguns chamam de
sub-POs. Mas quando há mais de um PO sobre o mesmo produto, a complexidade política recai
sobre o Scrum Master (e por consequência sobre o time) e a produtividade cai.
É como um jardineiro que recebe a missão de podar as árvores do jardim sul e, quando está lá,
recebe ordens para regar as plantas do jardim leste. Ao chegar lá, leva uma bronca porque ainda não
cuidou das flores do jardim norte e assim por diante, perde-se o senso de prioridade.
Será possível que duas ou mais pessoas concordem com requisitos, parâmetros de entrada (definition
of ready) e de qualidade (definition of done)? É claro que sim. Desde que as regras sejam
combinadas no início do jogo e que a visão do produto seja a mesma entre todos. Particularmente,
nunca vi funcionar.
Continuando na análise da figura, observe que o Scrum Master está junto com o time e que todos
eles têm interface com o PO. O SM atua como um facilitador, ele orienta o uso do processo, reporta
os status, mede velocidade e negocia com o PO. Mas o time inteiro participa das estimativas, da
definição de atividades e das estimativas.
Logo, se um projeto recebe estimativas “de cima pra baixo” não está usando uma das grandes
vantagens do Scrum, que é o comprometimento do time com o resultado. Afinal, eles se
comprometem porque discutiram a solução e porque eles próprios estimaram o projeto.
Papéis do Scrum
Product Owner
Representante do Cliente
Ponto focal das demandas
Entende do negócio
Define a visão e requisitos do produto (escreve as estórias de usuário)
Define prioridades
Decide o que faz parte do projeto
Responsável pelo aceite das entregas
Scrum Master
Quando um Scrum Master não resolve impedimentos ou ignora a definition of ready, aceitando
requisitos que ainda não estão prontos para trabalhar, perde-se produtividade.
Quando o time não participa da discussão técnica e nem da estimativa, não se tem comprometimento
com o resultado (É como seu chefe lhe dizer o tempo que você levará para fazer uma tarefa sem ter
real noção do tempo necessário).
Uma pessoa retém toda complexidade da organização para dar uma visão única ao produto. Essa
mesma pessoa determina o que será feito, em que ordem e como a qualidade será avaliada. Ela
também escreve exatamente como espera que as coisas sejam implementadas, essa pessoa é o PO.
Outra pessoa planeja o que será feito a cada ciclo, verifica se todas as premissas necessárias estão
presentes (definition of ready) para começar o trabalho e garante que o time participe da estimativa,
dê status diários (daily meeting) e aponte seus impedimentos, os quais ela própria deverá resolver.
Este é o Scrum Master.
Por fim, um grupo de pessoas tem apenas uma preocupação: Produzir. Todo trabalho já foi
priorizado, toda discussão técnica já foi realizada, todas as necessidades estão presentes e, se algo
impedir o trabalho, sua única preocupação é apontar para o Scrum Master. Esse é o Scrum Team.
É muito óbvio que esse ciclo de trabalho seja altamente produtivo, mas para tal, é preciso que cada
papel exerça suas responsabilidades. Se um deles falhar, todo ciclo falhará. Se apenas um “elo da
corrente” estiver desalinhado, a corrente quebrará e, com ela, todas as vantagens que se espera obter
com o uso do Scrum.
Calculando o prazo de um projeto Scrum
Postado em 2016/06/19 by Eli Rodrigues em Projetos Ágeis
É comum as partes interessadas quererem saber quando o projeto vai terminar, por isso constroem-se
cronogramas nas metodologias tradicionais.
Sabe-se, no entanto, que a maioria dos projetos não cumpre os prazos e isso se dá a várias “doenças”
e erros que os projetos trazem consigo, geralmente ligados ao comportamento ou a estrutura (Leia
mais no livro 21 erros clássicos da gestão de projetos).
O Scrum, no entanto, se atém ao que é realmente possível fazer, sem sambarilove. Se não é possível
calcular com exatidão a data final de um projeto, por que tentar? Por isso, o Scrum usa o conceito
de timebox, em que o tempo é fixo e o escopo é variável.
Esse conceito tem a ver com o estudo que mostra que, no mundo dos softwares, apenas 20% das
funcionalidades são realmente utilizadas. O cliente pede sempre muitas coisas, mas no final utiliza
somente algumas.
Cabe a nós, como Scrum Masters, auxiliarmos nossos clientes na priorização do que é mais
importante para seu negócio, ao invés de apenas cumprir prazos (e sofrer pressões) para criar
coisas que sequer serão utilizadas.
Doenças do prazo
Alguns diriam que têm metas a cumprir, datas de lançamento de produtos, que os projetos já estão
começando atrasados e que, por isso, é necessário ter um controle rígido de prazo. Mas todos
sabemos que um recurso sob pressão sempre colocará “gordura” no prazo quando estimar e, quanto
mais pressionarmos, mais gordura colocará.
Lei de Parkinson
Sabe-se, pela lei de parkinson, que o esforço sempre se enquadra ao tempo disponível. De modo que
se um programador estimar 3 dias para fazer um trabalho, o fará em, no mínimo, 3 dias, ainda que
pudesse fazer em menos tempo.
Em contrapartida, se for pressionado a assumir uma estimativa de 1,5 dia (metade do tempo), ainda
que pudesse fazer em 1 dia, levará, no mínimo, o tempo que foi obrigado a estimar.
E como se não bastasse isso tudo, na próxima estimativa, sabendo que será pressionado a cortar o
tempo pela metade, estimará 6 dias (o dobro) para que você – “espertalhão” – possa pedir a redução
sem tirá-lo da zona de conforto.
Com isso, você terá o tamanho do projeto: 1+2+5+8+13+21+34 = 84. Este número será utilizado
para medir o progresso.
Progresso x Velocidade
Mede-se o tamanho do projeto e não o prazo, pois, no Scrum, não importa quanto tempo passou e
sim o quanto foi concluído (Leia mais em Como saber se a entrega está pronta mesmo).
Daqui nasce a diferença entre progresso e velocidade:
Quanto mais estórias o time terminar, mais o projeto PROGREDIU. Ou seja, mais próximo está
de terminar todas as estórias.
Quanto mais rápido o time terminar, mais VELOCIDADE ele está alcançando.
Aqui temos um primeiro insight: Duas semanas têm 40 horas por pessoa. Se consideramos 3 pessoas
no projeto, já começou a sobrar tempo.
Simulando sprint 1
Então, duas semanas depois, chega-se ao seguinte sprint burndown:
Pergunto: Terá o time avançado na velocidade esperada? Houve dificuldades no meio do caminho?
O que fez com que a primeira semana fosse mais rápida que a segunda?
84 sp / (3sp/sprint) = 28 sprints
Como cada sprint leva duas semanas => 56 semanas ou 14 meses.
Pergunto: Mas, será que a velocidade será constante nas demais sprints? Será que as atividades mais
demoradas já não foram cumpridas? Será que a integração do time melhorará nas próximas rodadas?
Não se sabe.
Por isso, é importante acompanhar algumas sprints para se ter uma ideia mais concreta de qual será a
velocidade média. Vamos simular?
Simulando as sprints 2 e 3
Digamos que na segunda sprint, o time tenha concluído a estória “Sala de reunião” e na terceira
tenha concluído a estória “elevador”. Como ficaria a velocidade média?
Sprint 1 = 3 story points
Sprint 2 = 5 story points
Sprint 3 = 8 story points
Média = (3+5+8)/3 = 5,33 sp/sprint
Perceba como é mais coerente considerar a variação de produtividade ao longo de várias sprints, por
isso se considera sempre a média (ou média móvel, se preferir) para estimar o projeto.
Como ficaria o prazo do projeto considerando a perspectiva da
velocidade média?
Para acompanhar a velocidade, deve-se usar um gráfico de controle, como o exemplo a seguir.
As linhas em vermelho mostram os limites superior e inferior, apenas como alerta para que o Scrum
Master avalie se houve um potencial desvio. Basicamente, o gráfico de velocidade serve para dar
uma noção do prazo do projeto, mas sem certezas, afinal, o Scrum foca em resultados não em
estimativas.
Uma outra forma de controlar o andamento da sprint é por quantidade de atividades. Ela é mais
rápida e mantém as pessoas focadas no que deve ser feito e não em quanto tempo levará para fazer.
O burndown tem o mesmo formato do gráfico baseado em horas, mas, retrataapenas atividades
concluídas.
Se lembrarmos da diferença entre progresso e velocidade, notaremos que “terminar uma atividade
não significa finalizar o trabalho (a estória), afinal, a atividade pode não ter dado certo.
Talvez lhe incomode não saber as horas que o time gastou com cada tarefa, mas isso é realmente
mais importante que o resultado?
Para os mais radicais, nem mesmo estimar a quantidade de tarefas é justificável. Preferem apenas
listar as estórias de usuário daquela sprint e seguir para a execução.
Quando se têm um grande número de estórias, o gráfico faz mais sentido. Mas, de qualquer forma,
só haverá progresso quando uma estória for 100% concluída, ou seja, quando atender a definition of
done.
Seria sensacional se os projetos seguissem uma linha reta, mas na prática, o PO (Product Owner)
decidirá, a cada planejamento de sprint (sprint planning), quais estórias permanecem, quais serão
simplificadas e quais serão adicionadas.
Em termos práticos, a estória “Negociação” poderia ser “repriorizada” para entrar na quarta sprint.
Ela também poderia ser “simplificada”, reduzindo sua complexidade para caber no prazo. Tudo pode
acontecer, afinal, é um projeto ágil!
Finalizando o projeto no Scrum
Então chegou o grande dia, o tempo do projeto acabou. Chegou 3/9/16 e na segunda-feira que vem
será o lançamento do produto.
Mas, peraí… o escopo não foi totalmente concluído! Quem é responsável por isso? A quem vamos
demitir?
Embora esse seja o pensamento tradicional, presume-se que no Scrum, o PO tenha colaborado com o
time durante todo o projeto e teve a visão exata do que havia sido concluído a cada sprint. Foi ele
quem decidiu, com base no seu conhecimento de negócio, quais estórias eram prioritárias e também
foi ele quem avaliou cada entrega.
Deste modo, espera-seque esteja satisfeito com o resultado, ainda que o escopo inicial do projeto não
tenha sido concluído. Pois, se não estivesse, teria apontado isso durante o projeto.
Esta discussão tem sido recorrente nos treinamentos e workshops que tenho trabalhado: Como saber
se uma tarefa está realmente concluída? Como saber se terminei o escopo de um projeto? Como
definir o “done”? A assinatura do cliente é suficiente? Como saber se a entrega está completa
MESMO?
O mesmo cenário têm ocorrido na indústria, serviços e comércio, a dificuldade para definir quando
um trabalho está pronto. Esses dias mesmo passei um “causo” trocando de apartamento, enquanto
para a corretora o fato de eu ter escolhido o imóvel significava “done”, para a área administrativa
receber minha documentação era “done”, cada um fazendo um excelente trabalho com seu umbigo e
eu sem as chaves para mudar.
Isto ocorre geralmente por dois motivos: cada departamento enxerga somente sua “parte” ou pelos
diferentes entendimentos em relação ao trabalho. Um entende que o trabalho está pronto quando o
faturamento foi recebido, outro no pós-venda; um acredita que feito o serviço está terminado, outro
entende que só termina após o período de garantia.
Como resolver esse impasse? Antes de responder, permitam-me mostrar algumas situações do
mundo real no ambiente de projetos:
João assumiu a tarefa de especificar um novo produto, na data final ele entregou um documento.
Está concluído? Foi revisado? Tem aprovação da gerência? A área de engenharia avaliou a
viabilidade? O cliente aceitou?
Pedro trabalha numa empresa de software como desenvolvedor (programador). Ele terminou a
interface de cadastro de vendas. Está concluído? Houve teste unitário? houve teste funcional?
teste integrado? os bugs originários dos testes foram corrigidos? foram verificados? A interface
foi disponibilizada para homologação? foi disponibilizada com sucesso em produção? todos os
acessos foram garantidos? o cliente deu o aceite final?
Carlos fez um projeto que ampliava a capacidade da rede (de computadores) do cliente, “virou”
dois fins de semana para terminar o trabalho. Na data final do projeto, tudo pronto e funcional,
um sucesso! Até que… o cliente informou que, no seu entendimento, o trabalho só estaria
finalizado após duas semanas de monitoramento e suporte. E agora GP, tem orçamento para isso?
Todos estes são casos reais. Mas que característica comum poderia nos ajudar a definir se o trabalho
“está pronto” ou não?
A resposta é: ESTADOS!
Nestas situações, o GP (ou a área de processos) precisa definir claramente que Estados existem, qual
a sequência entre eles e quais os critérios para troca de Estado. Sim, isso é uma máquina de estados.
Não é preciso ter profundas bases matemáticas e nem ferramentas sofisticadas, veja o exemplo de
tabela postado na Wikipedia:
Também poderia ser usado um fluxo simples com os estados em sequência obrigatória:
Outra configuração
bastante utilizada é o “ciclo”:
E ainda, para casos em que os estados são condicionais, uma espécie de Fluxograma usando Estados:
Obs: Existem notações para construção de Diagramas de Estados, para mais informações consulte
a UML (Unified Modeling Language).
Após haver definido os estados para os pontos críticos do projeto, é hora de “divulgar” a máquina de
estados a todos os envolvidos. Esta é a parte mais complicada, pois geralmente é difícil obter a
concordância de todos e também é dificil que todos entendam o que o autor (da máquina de estados)
quis dizer com cada um deles. Para evitar esse tipo de problema, recomendo que faça um “manual”
especificando cada estado com: descrição, condições de troca e exemplos de aplicação. Recomendo
ainda que envolva as pessoas na definição dos estados, isso garante o comprometimento com o que
foi definido.
Se precisar de um software para apoiar o controle dos estados, indico o Mantis Bug Tracker. Ele é
gratuito e tem suporte a vários idiomas e é bem customizável. Baixe aqui. Pronto, agora estamos
aptos a reduzir a condição de dúvida sobre as entregas. Desejo sucesso a todos!
Como gerenciar o escopo de um projeto
Postado em 2013/08/07 by Eli Rodrigues em Escopo
O Escopo é a ferramenta que delimita O QUE será feito no projeto. Segundo MOLENA (2009), existem
dois problemas relacionados ao gerenciamento de escopo que correspondem a 23% dos problemas mais
comuns em projetos: Mudanças constantes de escopo e escopo não definido adequadamente.
Seríamos tendenciosos ao deduzir que as mudanças foram causadas pela definição inadequada, pois
muitas vezes as mudanças são motivadas por fatores externos. Da mesma forma, a definição
inadequada nem sempre é causada pela falta de tempo, como muitos acreditam. Poderia ser causada
por inabilidade ou por imaturidade organizacional, por exemplo, na tomadora do serviço.O que
temos de concreto são as boas práticas descritas no guia PMBOK®, que nos apresentam, na área de
Gerenciamento de Escopo, os processos abaixo:
1. Coletar requisitos
Realiza o levantamento das necessidades e desejos do cliente, tanto funcionais (relacionadas ao
produto) quanto não-funcionais (acessórias).
Ferramentas:
Técnicas: Análise de variação, que é a revisão dos produtos desenvolvidos frente a declaração do
escopo, buscando identificar gaps e corrigi-los.
5. Verificar o escopo
Trata a obtenção do aceite do cliente sobre o produto (ou fase) desenvolvido(a). Para que funcione
adequadamente devem ser definidos “critérios de aceite” na fase de planejamento.
O segundo pilar é a Inspeção, que significa que todo trabalho deve ser inspecionado com a
frequência necessária para garantir a qualidade na primeira tentativa.
A inspeção é um princípio tão forte que o Scrum considera que o processo de testes está dentro da
própria sprint. Isso nos remete aos conceitos de integração contínua, test driven development e pair
programming, que são formas de garantir a qualidade enquanto o produto está sendo produzido, ao
invés de controlar a qualidade só no final.
A inspeção se dá, por exemplo, através dos seguintes itens:
Esses princípios têm dado bons resultados em vários lugares ao redor do mundo, analise se sua
empresa está realmente seguindo os princípios certos, o melhor indicador são os resultados (entregas
e clientes satisfeitos), a metodologia pouco importa.
Este post faz parte da Série – Como fazer um Cronograma.
Agora que você já sabe tudo sobre a utilidade da EAP, podemos partir para o MS-Project.
Este primeiro exercício é bem simples e tem o objetivo de mostrar os passos para
construção do cronograma. Vamos começar!
Passo 1 – Inserir a EAP
O MS-Project tem uma interface que lembra o Excel e trata, inicialmente,
qualquer entrada como uma atividade. Deve-se inserir primeiro o nome do Projeto e abaixo
as partes da EAP.
Atividades do Projeto
Para calcular o prazo de um projeto é preciso concatenar as atividades umas nas outras.
Predecessora é a atividade anterior, àquela a qual a atividade se conecta para gerar a
sequência de passos.
Cada atividade pode ter várias predecessoras, basta inserir os números separados por
vírgula.
Existem mais detalhes para lidar com Predecessoras, que comentarei em posts futuros.
Existem duas formas para atribuir um recurso à uma atividade. A primeira é inserindo
diretamente no campo “Nomes dos Recursos”.
A segunda, mais segura, é acessando a “Planilha de Recursos”, através do menu “Exibir >
Planilha de Recursos”. E em seguida, usando o list box para selecionar os nomes,
conforme a figura abaixo:
Isto evita que você duplique um recurso, por exemplo, chamando um de João outro de
Joao, J. da Silva e assim por diante.
A data inicial será importante para Definição do Calendário, para calcular os dias não-úteis
dentro período real do projeto.
Feriados e pontes
Férias e Folgas programadas
Períodos de trabalho diferenciados
Os “Períodos de trabalho diferenciados” são usados quando o recurso humano não
trabalha o período padrão, que é de 8 horas diárias de segunda a sexta. Às vezes um
recurso pode trabalhar apenas 4 horas, ou somente aos sábados. Todas as variações são
aceitáveis.
Se você fizer o contrário, colocando o Trabalho, ele calcula a Duração (40 horas / 8hs
diárias = 5 dias).
Existem duas visões que podem facilitar essa análise. A primeira é o “Gráfico de
Recursos”, que você pode acessar pelo menu “Exibir > Gráfico de Recursos”. Nela você
consegue visualizar rapidamente a super-alocação pelas barras, que ficam vermelhas,
Clique em “Formatar”
Abaixo o Gráfico de Gantt com o Caminho Crítico pintado com a cor vermelha:
Gráfico de Gantt com o Caminho Crítico