Agilidade

66
@ribeirord 1 Prof. Rafael Dias Prof. Rafael Dias Prof. Rafael Dias Prof. Rafael Dias Ribeiro Ribeiro Ribeiro Ribeiro, , , , M.Sc M.Sc M.Sc M.Sc, CSM, CSPO,PMP. , CSM, CSPO,PMP. , CSM, CSPO,PMP. , CSM, CSPO,PMP. http://www.rafaeldiasribeiro.com.br http://www.rafaeldiasribeiro.com.br http://www.rafaeldiasribeiro.com.br http://www.rafaeldiasribeiro.com.br Agilidade Agilidade Agilidade Agilidade s.f. Ligeireza, presteza, leveza; desembaraço. http://www.dicio.com.br/agilidade/ é a capacidade de executar movimentos rápidos e ligeiros com mudanças nas direções Adaptado de http://pt.wikipedia.org/wiki/Agilidade

description

Agilidade

Transcript of Agilidade

  • @ribeirord

    1

    Prof. Rafael Dias Prof. Rafael Dias Prof. Rafael Dias Prof. Rafael Dias RibeiroRibeiroRibeiroRibeiro, , , , M.ScM.ScM.ScM.Sc, CSM, CSPO,PMP., CSM, CSPO,PMP., CSM, CSPO,PMP., CSM, CSPO,PMP.http://www.rafaeldiasribeiro.com.brhttp://www.rafaeldiasribeiro.com.brhttp://www.rafaeldiasribeiro.com.brhttp://www.rafaeldiasribeiro.com.br

    AgilidadeAgilidadeAgilidadeAgilidade

    s.f. Ligeireza, presteza, leveza; desembarao.http://www.dicio.com.br/agilidade/

    a capacidade de executar movimentos rpidos e ligeiros com mudanas nas direes

    Adaptado de http://pt.wikipedia.org/wiki/Agilidade

  • @ribeirord

    2

    Rapidez AgilidadeRapidez AgilidadeRapidez AgilidadeRapidez Agilidade

    Desenvolvimento gil diferente dedesenvolvimento rpido de aplicaes.

    A agilidade est em garantir a qualidade domtodo de se adaptar e solucionarproblemas durante o desenvolvimento doproduto.

  • @ribeirord

    3

    Evoluo Histrica: Evoluo Histrica: Evoluo Histrica: Evoluo Histrica: WaterfallWaterfallWaterfallWaterfallProposta por Winston W. Royce em 1970

    @ribeirord

    Evoluo Histrica: Evoluo Histrica: Evoluo Histrica: Evoluo Histrica: WaterfallWaterfallWaterfallWaterfall ---- Winston W. Royce

    In order to procure a 5 million dollar hardware device, I wouldexpect that a 30 pages specification would provide adequate detailto control the procurement. In order to procure 5 million dollars ofsoftware I would estimate 1500 pages specification is about right in

    order to achieve comparable control

    A fim de obter um hardware de 5 milhes de dlares, euesperaria que uma especificao de30 pginas proporcionasse detalhes suficiente para controlaresta aquisio. A fim de obter um software de 5 milhes de dlares,eu estimaria 1500 pginas de especificao, a fim de conseguir ocontrole comparvel

    Royce defendia que a documentao deve ser extensa...

  • @ribeirord

    4

    Evoluo Histrica: Evoluo Histrica: Evoluo Histrica: Evoluo Histrica: WaterfallWaterfallWaterfallWaterfall ---- Winston W. Royce

    I believe in this concept, but the implementation described aboveis risky and invites failure. (...) The testing phase which occurs at theend of development cycles is the first event for which timing,storage, input/output transfers, etc., are experienced asdistinguished from analyzed

    Eu acredito neste conceito, mas a implementao descrita acima arriscada e convida falhas. (...) A fase de testes, que ocorre nofinal dos ciclos de desenvolvimento o primeiro evento para o quala temporizao, o armazenamento, transferncia de entrada/sada,etc., so experimentados como distinguido de analisados

    Se o projeto precisa estar pronto para ser testado o produtodesenvolvido fatidicamente encontrar problemas (bugs, questesde performance, escalabilidade,...)

    DINMICA

  • @ribeirord

    5

    Premissas / Suposies : Premissas / Suposies : Premissas / Suposies : Premissas / Suposies : WaterfallWaterfallWaterfallWaterfall

    Um pessoa ou um grupo fala com o cliente e descobre o que ele deseja do software

    O mesmo grupo de analistas transmite a informao obtida com o cliente para a equipe tcnica

    Os analistas verificam a viabilidade do projeto e identificam os riscos

    Os arquitetos de TI documentam (diagramas, etc) para orientar os desenvolvedores

    Os desenvolvedores criam os cdigos de acordo com os documentos criados pelos arquitetos de TI

    Os testers verificam os documentos e validam os cdigos gerados

    O software implementado

    A distncia do cliente durante o desenvolvimento do sistema muitas vezes faz perder o foco do que importante para ele.

    As 4 primeiras fases consistem apenas em documentao, sem nenhuma produo de valor para o cliente.

    Em um perodo de desenvolvimento muitas tecnologias surgem assim como a prpria necessidade do cliente , de acordo com a evoluo do negcio.

    Ser que os programadores so incapazes de tomar deciso sobre o cdigo ?

  • @ribeirord

    6

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

    Criado pela Rational, mais tarde englobado pela IBM

    The Rational Unified Process activities create and maintain models. Rather than focusing on the production of large amount of paperdocuments, the Unified Process emphasize the development andmaintenance of models semanticly rich representations of thesoftware system under development

    O Rational Unified Process tem a finalidade de criar e manter modelos. Ao invs de focar na produo de grande quantidade de documentos em papel, o Rational Unified Processenfatiza o desenvolvimento e manuteno de modelos -representaes semanticamente ricas do sistema de software em desenvolvimento

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

    The Rational Unified Process is a configurable process. No single processis suitable for all software development. The Unified Process fits smalldevelopment teams as well as large development organizations. TheUnified Process is founded on a simple and clear process architecture thatprovides commonality across a family of processes. Yes, it can be toaccommodate different situations.

    O Rational Unified Process um processo configurvel. Nenhum nicoprocesso adequado para todo o desenvolvimento de software. OProcesso Unificado se adequa a pequenas equipes de desenvolvimento,bem como organizaes de desenvolvimento de grande porte. O ProcessoUnificado fundamentada em uma arquitetura de processo simples eclaros que fornece uma famlia de processos comuns. Sim, ele pode ser ade acomodar para situaes diferentes.

  • @ribeirord

    7

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

    Melhores Prticas:

    Desenvolva software iterativamente Gerencie requisitos Use arquiteturas baseadas em componentes Modele visualmente o software Verifique a qualidade do software Controle as mudanas no software

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

    Given todays sophisticated softwares systems, it is not possible tosequentially first define the entire problem, design the entire solution,build the software and then test the product at the end. Na interactiveapproach is required that allows an increasing understanding of theproblem through successive refinements, and to incrementally growan effective solution over multiple iterations.

    Devido a sofisticao dos softwares atuais, no possvel sequenciaro desenvolvimento de primeiro definir todo o problema, projetar todaa soluo, construir o software e, em seguida, testar o produto nofinal. Na abordagem interativa necessrio permitir acompreenso crescente do problema atravs de refinamentossucessivos, e gradativamente crescer na soluo eficaz durante vriasiteraes.

  • @ribeirord

    8

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

    Desenvolvimento iterativo, comeando sempre pelos pontos de maior risco ao projeto . Decises de risco decididas no inicio do projeto so corrigveis mais facilmente.

    Iteraes curtas com releases internos durante a construo do projeto permitem um retorno mais rico do cliente e ajudam a controlar melhor o tempo estimado para a concluso do desenvolvimento.

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

  • @ribeirord

    9

    RUP RUP RUP RUP RationalRationalRationalRational UnifiedUnifiedUnifiedUnified ProcessesProcessesProcessesProcesses

    O framework raramente aplicado iterativamente... Apesar de esperar que mudanas aconteam , no muito dinmico para trat-las...

    While the process must always accommodate changes, the elaboration phaseensure that the architecture, requirements and plans are stable enough, and therisks are sufficiently mitigated, so you can predictably determine the cost andschedule for the completion of the development. Conceptually, his level of fidelitywould correspond to the level necessary for na organization to commit to a fixed-price construction phase

    Embora o processo deve sempre acomodar as mudanas, a fase de elaborao devegarantir que a arquitetura, os requisitos e os planos sejam estveis o suficiente eque os riscos foram suficientemente mitigados, para que vocpossa previsivelmente determinar o custo e o cronograma para a concluso dodesenvolvimento. Conceitualmente, o seu nvel de fidelidade que corresponderia aonvel necessrio para uma organizao se comprometer com uma fase deconstruo a preo fixo.

    Lean Lean Lean Lean ITITITIT

    LeanLeanLeanLean ITITITIT definitiondefinitiondefinitiondefinition:::: Lean IT engages people, using a framework of Leanprinciples, systems, and tools, to integrate, align, and synchronize the ITorganization with the business to provide quality information andeffective information systems, enabling and sustaining the continuousimprovement and innovation of processes. Lean IT has two aspects:outward facing, supporting the continuous improvement of businessprocesses, and inward-facing, improving the performance of ITprocesses and services

    Lean IT envolve as pessoas, utilizando um quadro de princpios do Lean,sistemas e ferramentas, para integrar, alinhar e sincronizar aorganizao de TI com o negcio para fornecer informao de qualidadee sistemas de informao eficazes, permitindo e manuteno da melhoriacontnua e inovao de processos. Lean IT tem dois aspectos:.Para oexterior, apoiando a melhoria contnua dos processos de negcio, e paradentro (interna), melhorando o desempenho dos processos de TI eservios

  • @ribeirord

    10

    Lean Lean Lean Lean ITITITIT

    O sistema Lean de produo foi desenvolvido pela Toyota e tem umprincpio claro e simples: ReduzirReduzirReduzirReduzir oooo desperdciodesperdciodesperdciodesperdcio

    Desperdcio tudo o que no ir gerar valor para o cliente. Este conceitofoi incorporado em alguns mtodos geis e considera como desperdciodocumentao excessiva, tempo de desenvolvimento parado por falta deinformaes (ou falta de clareza), ou cdigos e funcionalidades nosolicitadas...

    Lean Lean Lean Lean ITITITIT Tipos de Desperdcios:

    MuraMuraMuraMura: desperdcio por tentar prever possveis necessidades futuras. Evitar amura significa reduzir ao mximo o inventrio, isto , as partes paradas nomeio do processo, isto , comeando ou no terminando.

    MuriMuriMuriMuri: desperdcios que podem ser evitados por planejamento. Nessa categoriaenquadra-se o excesso de burocracia ou de complexidade nem processo deproduo.

    MudaMudaMudaMuda: desperdcios do dia a dia, criados por uma cultura anterior de trabalho.

    Superproduo Transporte desnecessrio Inventrio Locomoo Defeitos Super processamento Espera

  • @ribeirord

    11

    Lean Lean Lean Lean IT IT IT IT Sistema PUSH vs. PULL Sistema PUSH upstream information

    No sistema Ford de produo, cada estao da linha de produo trabalhaenquanto houver matria prima para tal. A quantidade do que ser produzido regulada com base em provises feitas sobre o mercado em um determinadoperodo, mas no h ligao entre os pedidos reais e a linha de produo.

    Exemplo de Mura:

    Muitas peas produzidas esperando para serem utilizadas em outras estaes, semsequer saber se existe demanda pelo produto (inventrio). Muito WIP ( Work in Progress )

    Dimensionamento do trabalho...

    ExpectedDemand

    MassProduction

    Economies ofscale

  • @ribeirord

    12

    Lean Lean Lean Lean IT IT IT IT Sistema PUSH vs. PULL Sistema PULL downstream information

    Trabalha com o mnimo possvel de inventrio que ainda permite atender sdemandas de clientes rapidamente. Sua concepo e prtica so simples: hapenas o nmero suficiente de peas em inventrio para um produto (ou lote)ser completo.

    A produo acontece de acordo com a demanda, reduzindo custos dearmazenamento, de peas intermedirias e produtos no vendidos, alm deflexibilizar a produo.

    CustomerRequirements

    On demandProduction

    Adaptation

    KanBanKanBanKanBanKanBan

    Linha de Produo = sequncia de passos para produzir algo

    A fazer Inventrio 1 Inventrio 2 Inventrio 3 Produto

    Em sistemas push, cada estao de trabalho faz sua parte sem considerar fases anteriores e posteriores. O Kanban permite ver com mais clareza o acmulo de inventrio

  • @ribeirord

    13

    KanBanKanBanKanBanKanBanA fazer Inventrio 1 Inventrio 2 Inventrio 3 Produto

    8

    9

    10

    No Kanban representamos o sistema pull de produo, h um limite deinventrio claramente definido. Assim peas s so produzidas quando de fatoh demanda e gasta-se menos em peas que no sero utilizadas ou emestoque de inventrio.

    12

    3

    4

    5

    6

    7

    @ribeirord

    KanBanKanBanKanBanKanBan

    dispositivos fsicos sinais de demanda downstream processes regula a demanda em um pull system limita de trabalho em progresso (wip) controle visual auto direo

    OBS: uma excelente forma de visualizar o andamento da produo mas apenas uma ferramenta que deve ser empregada para auxiliar (reforar) a metodologia aplicada.

  • @ribeirord

    14

    Systems ThinkingSystems ThinkingSystems ThinkingSystems Thinking

    Aps reduzir a mura, temos uma melhor viso de nossa linha de produo ( trabalhos redundantes,...)

    Quantas vezes no vimos consagrados processos de produo de software atrapalhando uma equipe em vez de ajud-la ? Todas as fases do seu processo so realmente necessrias para o sucesso final ?

    Systems Thinking pensar e repensar durante todo oandamento do projeto no que poderia ser melhorado noprprio processo de desenvolvimento e nas interaesentre as pessoas envolvidas

    Work CellsWork CellsWork CellsWork Cells

    No possvel pensar em encontrar melhorias no processo se cada individuo est focado exclusivamente em uma tarefa o qual especialista.

    O Lean entende no podem ser superespecialistas, i. e., no podem se limitar apenas a conhecimento em sua etapa. Devem conhecer todas elas e saber executar algumas delas.

    Cada membro da equipe uma Work Cell: pessoa capaz de trabalhar no projeto como um todo, em algumas ou todas as suas partes. O conhecimento mais amplo sobre o projeto incentivado, j que, ao conhecer o todo , melhores sero as crticas para melhoria.

  • @ribeirord

    15

    KaisenKaisenKaisenKaisen

    Em Lean acredita-se que no existe uma bala de prata * capaz de resolver todos os problemas, preciso que cada membro da equipe adapte a metodologia e ferramentas sua necessidade a todo momento.

    Kaisen a palavra japonesa para melhoria, significa maximizar a funo Ganho Desperdcio. Melhorias no processo, na forma de produo e no produto final so parte do dia a dia de quem trabalha com Lean

    Artigo de Frederich Brooks com o ttulo No Silver Bullet, publicado na dcada de 70

    Leitura sugerida:http://www.4shared.com/office/kBZlRWok/TheMythicalManMonthFBrooks.html

    O Manifesto gilO Manifesto gilO Manifesto gilO Manifesto gil

    Estamos descobrindo maneiras melhores de desenvolver software fazendo-o ns mesmos e ajudando outros a faz-lo. Atravs deste trabalho, passamos a valorizar:

    Indivduos Indivduos Indivduos Indivduos e interao entre elese interao entre elese interao entre elese interao entre eles mais que processos e ferramentasSoftware em funcionamentoSoftware em funcionamentoSoftware em funcionamentoSoftware em funcionamento mais que documentao abrangenteColaborao com o clienteColaborao com o clienteColaborao com o clienteColaborao com o cliente mais que negociao de contratos

    Responder a mudanasResponder a mudanasResponder a mudanasResponder a mudanas mais que seguir um plano

    Ou seja, mesmo havendo valor nos itens direita, valorizamos mais os itens esquerda.

  • @ribeirord

    16

    Princpios geis Princpios geis Princpios geis Princpios geis

    Nossa maior prioridade satisfazer o cliente, atravs da entrega adiantada e contnua de software de valor.

    Aceitar mudanas de requisitos, mesmo no fim do desenvolvimento. Processos geis se adequam a mudanas, para que o cliente possa tirar vantagens competitivas.

    Entregar software funcionando com frequncia, na escala de semanas at meses, com preferncia aos perodos mais curtos.

    Pessoas relacionadas negcios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.

    Princpios geis Princpios geis Princpios geis Princpios geis

    Construir projetos ao redor de indivduos motivados. Dando a eles o ambiente e suporte necessrio, e confiar que faro seu trabalho.

    O Mtodo mais eficiente e eficaz de transmitir informaes para, e por dentro de um time de desenvolvimento, atravs de uma conversa cara a cara.

    Software funcional a medida primria de progresso.

    Processos geis promovem um ambiente sustentvel. Os patrocinadores, desenvolvedores e usurios, devem ser capazes de manter indefinidamente, passos constantes.

  • @ribeirord

    17

    Vantagens da AgilidadeVantagens da AgilidadeVantagens da AgilidadeVantagens da Agilidade

    Feedback rpido

    Motivao da equipe

    Sem Corpo Mole

    Ver problemas mais cedo

    SCRUMSCRUMSCRUMSCRUM

    Waterfall and Spiral methodologies set the context and deliverable definition at thestart of a project. Scrum and iterative methodologies initially plan the context andbroad deliverable definition, and then envolve the deliverable during the project basedon the environment. Scrum acknowledges that the underlying development processesare incompletely defined and uses control mechanisms to improve flexibility.

    Metodologias de Cascata (Waterfall) e Espiral (Spiral ) definem o contexto e aentrega no incio de um projeto. Metodologias iterativas e oScrum inicialmente planejam o contexto e a definio entrega ampla, e, emseguida, especifica a entrega durante o projeto com base noambiente. Scrum reconhece que os processos dedesenvolvimento subjacentes no so totalmente definidose utiliza mecanismos de controle para melhorar a flexibilidade.

  • @ribeirord

    18

    SCRUMSCRUMSCRUMSCRUM

    The primary difference between the defined (waterfall, spiral and iterative) andempirical (SCRUM) approach is that the Scrum approach assumes that the analysis,design, and development process in the sprint phase are unpredictable. A controlmechanism is used to manage the unpredictablity and control the risk. Flexibility,responsiveness, and reliability are the results.

    A principal diferena entre processos definidos (waterfall, spiral and iterative) e aabordagem emprica (SCRUM) que a abordagem Scrum assume que a anlise,concepo, desenvolvimento e processo dentro da fase de sprint soimprevisveis. Um mecanismo de controle usado para gerenciar o falta deprevisibilidade e controlar o risco. Flexibilidade, agilidade e confiabilidade so osresultados.

    SCRUMSCRUMSCRUMSCRUM

    Scrum: A framework within which people can address complex adaptative problems,while productively and creatively delivering products of the highest possible value(...)Scrum makes clear the relative efficacy of your product management and developmentpractices so that can improve .

    Scrum: Um framework no qual as pessoas podem abordar de formaadaptativa os complexos problemas, de forma produtiva ecriativa oferecendo produtos de maior valor possvel (...) Scrum torna claraa eficcia relativa de seu gerenciamento de produtos e prticas dedesenvolvimento.

    A funo do Scrum evidenciar os problemas do projeto mais cedo para quese possa resolver o problema mais cedo.

  • @ribeirord

    19

    SCRUMSCRUMSCRUMSCRUM

    Scrum fundamentado nas teorias empricas de controle deprocesso, ou empirismo. O empirismo afirma que oconhecimentoconhecimentoconhecimentoconhecimento vemvemvemvem dadadada experinciaexperinciaexperinciaexperincia eeee dededede tomadatomadatomadatomada dededede decisesdecisesdecisesdecisesbaseadasbaseadasbaseadasbaseadas nononono quequequeque conhecidoconhecidoconhecidoconhecido. O Scrum emprega umaabordagem iterativa e incremental para aperfeioar aprevisibilidade e o controle de riscos.

    SCRUM SCRUM SCRUM SCRUM Pilares que apoiam a implementao de controle de processo empricoPilares que apoiam a implementao de controle de processo empricoPilares que apoiam a implementao de controle de processo empricoPilares que apoiam a implementao de controle de processo emprico

    TransparnciaTransparnciaTransparnciaTransparncia::::

    Aspectos significativos do processo devem estar visveis aos responsveis pelosresultados. Esta transparncia requer aspectos definidos por um padro comumpara que os observadores compartilharem um mesmo entendimento do que estsendo visto.

    InspeoInspeoInspeoInspeo

    Os usurios Scrum devem, frequentemente, inspecionar os artefatos Scrum e oprogresso em direo ao objetivo, para detectar indesejveis variaes. Estainspeo, no deve no entanto, ser to frequente que atrapalhe a prpriaexecuo das tarefas. As inspees so mais benficas quando realizadas deforma diligente por inspetores especializados no trabalho a se verificar.

    AdaptaoAdaptaoAdaptaoAdaptao

    Se um inspetor determina que um ou mais aspectos de um processo desvioupara fora dos limites aceitveis, e que o produto resultado ser inaceitvel, oprocesso ou o material sendo produzido deve ser ajustado. O ajuste deve serrealizado o mais breve possvel para minimizar mais desvios.

  • @ribeirord

    20

    SCRUMSCRUMSCRUMSCRUM

    ResumindoResumindoResumindoResumindo tudotudotudotudo issoissoissoisso............

    Scrum um framework INCOMPLETO o qual aspessoas podem resolver problemas complexos eadaptveis, enquanto entregam produtos de formaprodutiva, criativa e com o maior valor possvel !

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

  • @ribeirord

    21

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    O O O O ProductProductProductProduct OwnerOwnerOwnerOwner

    O Product Owner, ou dono do produto, o responsvel por maximizar o valor do produto e do trabalho da equipe de Desenvolvimento. Como isso feito pode variar amplamente atravs das organizaes, Times Scrum e indivduos.

    O Product Owner pode fazer o trabalho acima, ou delegar para a Equipe de Desenvolvimento faz-lo. No entanto, o Product Ownercontinua sendo o responsvel pelos trabalhos.

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    O ProductProductProductProduct OwnerOwnerOwnerOwner a nica pessoa responsvel por gerenciar o Backlog do Produto. O gerenciamento do Backlog do Produto inclui: Expressar claramente os itens do Backlog do Produto;

    Ordenar os itens do Backlog do Produto para alcanar melhor as metas e misses;

    Garantir o valor do trabalho realizado pelo Time de Desenvolvimento;

    Garantir que o Backlog do Produto seja visvel, transparente, claro para todos, e mostrar o que o Time Scrum vai trabalhar a seguir; e,

    Garantir que a Equipe de Desenvolvimento entenda os itens do Backlog do Produto no nvel necessrio.

  • @ribeirord

    22

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    O ProductProductProductProduct OwnerOwnerOwnerOwner uma pessoa e no um comit. O ProductOwner pode representar o desejo de um comit no Backlog doProduto, mas aqueles que quiserem uma alterao nasprioridades dos itens de Backlog devem convencer o ProductOwner.

    Para que o Product Owner tenha sucesso, toda a organizaodeve respeitar as suas decises. As decises do Product Ownerso visveis no contedo e na priorizao do Backlog doProduto. Ningum tem permisso para falar com a Equipe deDesenvolvimento sobre diferentes configuraes de prioridade,e o Time de Desenvolvimento no tem permisso para agirsobre o que outras pessoas disserem.

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    ProductProductProductProduct OwnerOwnerOwnerOwner

    FaseFaseFaseFase AtividadeAtividadeAtividadeAtividade

    PRE-GAME Identificar as necessidades Estratgicas do Projeto (Patrocinador, Time, Infraestrutura, reas Envolvidas, etc)

    Realizar Kick-Off Descobrir a viso do produto e elaborar artefatos necessrios Descobrir os requisitos para o Product Backlog Organizar e priorizar o Product Backlog

    GAME Participar de todas as Sprint Planning Meeting e Reviews. Quando necessrio visitar a reunio diria e participar de Retrospective(geralmente, quando convidado pelo Time)

    Estar disponvel para o Time (ou garantir que algum designado por ele esteja)

    Elaborar Plano de Release Manter o Product Backlog Atualizar o Plano de Release

    POST-GAME Project Retrospective Tornar resultados visveis para outros (e futuros) projetos Scrum

    na empresa; e/ou para a Enterprise Scrum

  • @ribeirord

    23

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    ProductProductProductProduct OwnerOwnerOwnerOwner ProblemasProblemasProblemasProblemas ComunsComunsComunsComuns............

    P.O. sem poder de deciso

    P.O. com baixa disponibilidade

    O metade P.O.

    P.O. distante

    P.O. proxy

    P.O. da sua parte

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    Equipe de Desenvolvimento Equipe de Desenvolvimento Equipe de Desenvolvimento Equipe de Desenvolvimento

    A Equipe de Desenvolvimento consiste de profissionais que realizam o trabalho de entregar uma verso usvel que potencialmente incrementa o produto Pronto ao final de cada Sprint. Somente integrantes da Equipe de Desenvolvimento criam incrementos.

    As Equipes de Desenvolvimento so estruturadas e autorizadas pela organizao para organizar e gerenciar seu prprio trabalho. A sinergia resultante aperfeioa a eficincia e a eficcia da Equipe de Desenvolvimento como um todo.

  • @ribeirord

    24

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens As Equipes de Desenvolvimento Equipes de Desenvolvimento Equipes de Desenvolvimento Equipes de Desenvolvimento tem as seguintes caractersticas:

    Eles so auto-organizadas. Ningum (nem mesmo o Scrum Master) diz a Equipede Desenvolvimento como transformar o Backlog do Produto em incrementos defuncionalidades potencialmente utilizveis;

    Equipes de Desenvolvimento so multifuncionais, possuindo todas as habilidadesnecessrias, enquanto equipe, para criar o incremento do Produto.

    O Scrum no reconhece ttulos para os integrantes da Equipe deDesenvolvimento que no seja o Desenvolvedor, independentemente do trabalhoque est sendo realizado pela pessoa; No h excees para esta regra.

    Individualmente os integrantes da Equipe de Desenvolvimento podem terhabilidades especializadas e rea de especializao, mas a responsabilidadepertence Equipe de Desenvolvimento como um todo; e,

    Equipes de Desenvolvimento no contm sub-equipes dedicadas a domniosespecficos de conhecimento, tais como teste ou anlise de negcios.

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens Tamanho da Equipe de Desenvolvimento Tamanho da Equipe de Desenvolvimento Tamanho da Equipe de Desenvolvimento Tamanho da Equipe de Desenvolvimento

    O tamanho ideal da Equipe de Desenvolvimento pequeno o suficiente para semanter gil e grande o suficiente para completar uma parcela significativa dotrabalho.

    Menos de trs integrantes na Equipe de Desenvolvimento diminuem a interao eresultam em um menor ganho de produtividade. Equipes de desenvolvimentomenores podem encontrar restries de habilidades durante a Sprint, gerandouma Equipe de Desenvolvimento incapaz de entregar um incrementopotencialmente utilizvel.

    Havendo mais de nove integrantes exigida muita coordenao. Equipes deDesenvolvimento grandes geram muita complexidade para um processo empricogerenciar.

    Os papis de Product Owner e de Scrum Master no so includos nestacontagem, ao menos que eles tambm executem o trabalho do Backlog daSprint.

  • @ribeirord

    25

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens O O O O ScrumScrumScrumScrum Master Master Master Master

    O Scrum Master responsvel por garantir que o Scrum sejaentendido e aplicado. O Scrum Master faz isso para garantir que oTime Scrum adere teoria, prticas e regras do Scrum. O ScrumMaster um servo-lder para o Time Scrum.

    O Scrum Master ajuda aqueles que esto fora do Time Scrum aentender quais as suas interaes com o Time Scrum so teis equais no so. O Scrum Master ajuda todos a mudarem estasinteraes para maximizar o valor criado pelo Time Scrum.

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens O O O O ScrumScrumScrumScrum Master trabalhando para o Master trabalhando para o Master trabalhando para o Master trabalhando para o ProductProductProductProduct OwnerOwnerOwnerOwner

    O Scrum Master serve o Product Owner de vrias maneiras, incluindo:

    Encontrando tcnicas para o gerenciamento efetivo do Backlog do Produto;

    Claramente comunicar a viso, objetivo e itens do Backlog do Produto para a Equipe de Desenvolvimento;

    Ensinar a Time Scrum a criar itens de Backlog do Produto de forma clara e concisa;

    Compreender a longo-prazo o planejamento do Produto no ambiente emprico;

    Compreender e praticar a agilidade; e,

    Facilitar os eventos Scrum conforme exigidos ou necessrios.

  • @ribeirord

    26

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    O O O O ScrumScrumScrumScrum Master trabalhando para a Equipe de Desenvolvimento Master trabalhando para a Equipe de Desenvolvimento Master trabalhando para a Equipe de Desenvolvimento Master trabalhando para a Equipe de Desenvolvimento

    O Scrum Master serve a Equipe de Desenvolvimento de vrias maneiras, incluindo: Treinar a Equipe de Desenvolvimento em auto-gerenciamento e interdisciplinaridade;

    Ensinar e liderar a Equipe de Desenvolvimento na criao de produtos de alto valor;

    Remover impedimentos para o progresso da Equipe de Desenvolvimento;

    Facilitar os eventos Scrum conforme exigidos ou necessrios; e,

    Treinar a Equipe de Desenvolvimento em ambientes organizacionais nos quais o Scrum no totalmente adotado e compreendido.

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    O O O O ScrumScrumScrumScrum Master trabalhando para a Organizao Master trabalhando para a Organizao Master trabalhando para a Organizao Master trabalhando para a Organizao

    O Scrum Master serve a Organizao de vrias maneiras, incluindo:

    Liderando e treinando a organizao na adoo do Scrum;

    Planejando implementaes Scrum dentro da organizao;

    Ajudando funcionrios e partes interessadas a compreender e tornar aplicvel o Scrum e o desenvolvimento de produto emprico;

    Causando mudanas que aumentam a produtividade do Time Scrum; e,

    Trabalhando com outro Scrum Master para aumentar a eficcia da aplicao do Scrum nas organizaes.

  • @ribeirord

    27

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    OOOO TimeTimeTimeTime ScrumScrumScrumScrum

    O Time Scrum composto pelo ProductProductProductProduct OwnerOwnerOwnerOwner, a EquipeEquipeEquipeEquipe dedededeDesenvolvimentoDesenvolvimentoDesenvolvimentoDesenvolvimento e o ScrumScrumScrumScrum MasterMasterMasterMaster.

    Times Scrum so auto-organizveis e multifuncionais. Equipesauto-organizveis escolhem qual a melhor forma paracompletarem seu trabalho, em vez de serem dirigidos por outrosde fora da equipe.

    Equipes multifuncionais possuem todas as competnciasnecessrias para completar o trabalho sem depender de outrosque no fazem parte da equipe.

    SCRUM SCRUM SCRUM SCRUM PersonagensPersonagensPersonagensPersonagens

    OOOO TimeTimeTimeTime ScrumScrumScrumScrum

    O modelo de equipe no Scrum projetado para aperfeioar aflexibilidade, criatividade e produtividade.

    Times Scrum entregam produtos de forma iterativa e incremental,maximizando as oportunidades de realimentao.

    Entregas incrementais de produto Pronto garantem que umaverso potencialmente funcional do produto do trabalho estejasempre disponvel.

  • @ribeirord

    28

    SCRUMSCRUMSCRUMSCRUM

    ResumindoResumindoResumindoResumindo tudotudotudotudo issoissoissoisso............

    SCRUMSCRUMSCRUMSCRUM

    vis

    visvis

    visooo

    o

  • @ribeirord

    29

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    VisoVisoVisoViso umaumaumauma claraclaraclaraclara imagemimagemimagemimagem quequequeque geragerageragera umaumaumauma atraoatraoatraoatrao emocionalemocionalemocionalemocional entreentreentreentrepessoaspessoaspessoaspessoas eeee produtoprodutoprodutoproduto ( quando se fala a viso quem escuta deve ser capazde imaginar como ser o produto)

    Deve responder as seguintes perguntas:

    Quem ir comprar este produto ? Quem o cliente alvo ? Quem ir usar o produto ? Quem so os usurios alvo ?

    Quais problemas do cliente (ou usurios) o produto pretende resolver ? Qual valor o produto adicionar ?

    Quais atributos o produto deve possuir para resolver estes problemas e quais garantiro o sucesso do produto ?

    Como o produto pode ser comparado a produtos ou alternativas existentes ? Quais so os pontos diferenciais deste produto ?

    Qual o preo alvo do produto ? Como a empresa pretende ganhar dinheiro com este produto ? Quais sero as fontes de faturamento e qual o seu modelo de negcio ? (quando aplicvel )

    vis

    visvis

    visooo

    o

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    Uma boa viso de produto permanece relativamenteconstante ao passo que o caminho paraimplementao da viso frequentemente adaptado.

    vis

    visvis

    visooo

    o

  • @ribeirord

    30

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    ElevatorElevatorElevatorElevator StatementStatementStatementStatement

    Para que , o um que .Diferentemente do nosso produto .

    vis

    visvis

    visooo

    o

    http://www.flyingsolo.com.au/marketing/business-marketing/preparing-your-elevator-statement

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    ElevatorElevatorElevatorElevator StatementStatementStatementStatement

    vis

    visvis

    visooo

    o

    Praticando...Praticando...Praticando...Praticando...

  • @ribeirord

    31

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    ProductProductProductProduct Vision BoxVision BoxVision BoxVision Box

    Nome do Produto Grficos Trs ou quatro pontos chave (benefcios)

    para vender o produto Principais features no verso Principais requisitos operacionais

    vis

    visvis

    visooo

    o

    http://www.agile-ux.com/2011/03/04/a-day-in-life-of-an-agileux-practitioner-vision/

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    ProductProductProductProduct Vision BoxVision BoxVision BoxVision Box

    vis

    visvis

    visooo

    o

    Praticando...Praticando...Praticando...Praticando...

  • @ribeirord

    32

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    ProductProductProductProduct Road Road Road Road MapMapMapMapTcnica: Remember the Future

    Descobrir o entendimento do sucesso do cliente e iniciar a visualizao do Road Map do produto/projeto

    Ao invs de olhar o passo a passo, se posicione no momento final desejado e relembre o que foi feito para chegarmos neste ponto.

    OBS: NO plano, NO cronograma, NO determinstico !OBS: NO plano, NO cronograma, NO determinstico !OBS: NO plano, NO cronograma, NO determinstico !OBS: NO plano, NO cronograma, NO determinstico !

    vis

    visvis

    visooo

    o

    http://innovationgames.com/remember-the-future/

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    ProductProductProductProduct Road Road Road Road MapMapMapMap

    vis

    visvis

    visooo

    o

    Praticando...Praticando...Praticando...Praticando...

  • @ribeirord

    33

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    Project Data Project Data Project Data Project Data SheetSheetSheetSheet

    Formalizao da Viso

    vis

    visvis

    visooo

    o

    SCRUM SCRUM SCRUM SCRUM VisoVisoVisoViso

    Project Data Project Data Project Data Project Data SheetSheetSheetSheet

    vis

    visvis

    visooo

    o

    Praticando...Praticando...Praticando...Praticando...

  • @ribeirord

    34

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    UserUserUserUser StoryStoryStoryStory

    Levantamento de Requisitos Tradicional

    Premissas

    Cliente:Linguagem de Negcio

    Analista: Transforma em linguagem tcnica

    Dev:Linguagem tcnica vira cdigos

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    UserUserUserUser StoryStoryStoryStory

    Levantamento de Requisitos Tradicional

    Premissas

    Cliente:Linguagem de Negcio

    Analista: Transforma em linguagem tcnica

    Dev:Linguagem tcnica vira cdigos

    Levantamento de Requisitos geis

    Considera as premissas falsas !

    NO necessrio requisitos detalhados

  • @ribeirord

    35

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    UserUserUserUser StoryStoryStoryStory

    CARTO

    CONVERSAS

    CONFIRMAO

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    UserUserUserUser StoryStoryStoryStory

    IIIIndependenteNNNNegocivelVVVValiosa para usurios e clientesEEEEstimvelSSSSmall(pequena)TTTTestvel

  • @ribeirord

    36

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    UserUserUserUser StoryStoryStoryStory

    QUEM ?QUEM ?QUEM ?QUEM ?

    O QUE ?O QUE ?O QUE ?O QUE ?

    POR QUE ?POR QUE ?POR QUE ?POR QUE ?

    Como um eu posso /gostaria/devo para

    Como um P.O. eu devo REVISAR OS CONCEITOS DE SCRUM para FACILITAR O APRENDIZADO DE TPICOS AVANADOS

    HistoryHistoryHistoryHistory CaseCaseCaseCase

    A ideia gerar Persona e responder:

    Como um ...Como um ...Como um ...Como um ...

    Quero ...Quero ...Quero ...Quero ...

    Para ...Para ...Para ...Para ...

    Ex: Panela para preparar Salmo...

    Como um Como um Como um Como um Cozinheiro ( Usurio)( Usurio)( Usurio)( Usurio)

    Quero Quero Quero Quero panela de inox, com fundo oval e ... (Funcionalidade)(Funcionalidade)(Funcionalidade)(Funcionalidade)

    Para Para Para Para cozinhar um salmo (Valor de Negcio)(Valor de Negcio)(Valor de Negcio)(Valor de Negcio)

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

  • @ribeirord

    37

    HistoryHistoryHistoryHistory CaseCaseCaseCase

    A ideia gerar Persona e responder:

    Pagamento de Boleto: RUIMRUIMRUIMRUIM

    Para que o comprador possa pagar sem carto de crditoComo compradorQuero que o sistema de suporte a emisso de boletos

    Pagamento de Boleto:

    Para que eu consiga comprar produtos nessa lojaComo comprador que no tem carto de crditoQuero que o sistema de suporte a pagamento em boleto

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    Teste de AceitaoTeste de AceitaoTeste de AceitaoTeste de Aceitao

    O P.O., com a colaborao de quem acharnecessrio, quem deve escrever os Testesde Aceitao, e deve faz-lo antes dacodificao

  • @ribeirord

    38

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    StoriesStoriesStoriesStories, Temas e , Temas e , Temas e , Temas e EpicsEpicsEpicsEpics

    EPICEPIC STORYSTORY STORYSTORYSTORY

    STORY

    STORY

    STORY

    STORY

    STORY

    TEMA

    SCRUM SCRUM SCRUM SCRUM Preparando o Preparando o Preparando o Preparando o ProductProductProductProduct BacklogBacklogBacklogBacklog

    Priorizao do Priorizao do Priorizao do Priorizao do ProductProductProductProduct BacklogBacklogBacklogBacklog

    Valor: Valor: Valor: Valor: Um item valioso se necessrio para que o produto seja lanado.

    Conhecimento, incerteza e riscos: Conhecimento, incerteza e riscos: Conhecimento, incerteza e riscos: Conhecimento, incerteza e riscos: Como esses itens influenciam o sucesso do produto, eles devem ser sempre considerados como de alta prioridade

    Capacidade para lanamento: Capacidade para lanamento: Capacidade para lanamento: Capacidade para lanamento: Itens que nos permitam mais rapidamente lanar um release de produto devem possuir boa prioridade

    Dependncia: Dependncia: Dependncia: Dependncia: dependncia de itens em um Product Backlog um fato, e deve ser considerado ...

    A priorizao por TEMAS deve ser considerado

  • @ribeirord

    39

    SCRUMSCRUMSCRUMSCRUMO corao do Scrum a SprintSprintSprintSprint, um time-box deum ms ou menos, durante o qual um Pronto,verso incremental potencialmente utilizvel doproduto, criado.

    Sprints tem duraes coerentes em todo oesforo de desenvolvimento. Uma nova Sprintinicia imediatamente aps a concluso da Sprintanterior.

    As Sprints so compostas por:

    uma reunio de planejamento da Sprint, reunies dirias, (Daily Scrum) o trabalho de desenvolvimento, uma reviso da Sprint, (Review) restrospectiva da Sprint. (Retrospective)

    SCRUMSCRUMSCRUMSCRUMDurante a Sprint:

    No so feitas mudanas que podem afetar o objetivo da Sprint;

    A composio da Equipe de Desenvolvimento permanecem constantes;

    As metas de qualidade no diminuem; e,

    O escopo pode ser esclarecido e renegociado entre o Product Owner e a Equipe de Desenvolvimento.

    Cada Sprint tem a definio do que para ser construdo, um planoprojetado e flexvel que ir guiar a construo, o trabalho e o resultadodo produto.

  • @ribeirord

    40

    SCRUM SCRUM SCRUM SCRUM ---- Planning Meeting

    O Planning Meeting o time-boxed e deve ocupar no mais de 5% do tempo do Sprint, se o Sprint de 2 semanas, essa reunio no deve consumir mais de 4 horas.

    O objetivo definir as histrias que sero feitas no Sprint que acaba de comear:

    Apresentao da Histria O P.O. apresenta a viso de negcio dos itens mais prioritrios do Product Backlog aos

    desenvolvedores. (Ex: History Cases or Use Cases)

    Dvidas do Negcio Os desenvolvedores tiram suas dvidas sobre as histrias, em termos da lgica de negcio

    no entram em questes tcnicas

    Opcional O Product Owner deve sair da sala, caso permanea ele no deve emitir opinies para o

    prximo passo

    O qu...

    SCRUM SCRUM SCRUM SCRUM ---- Planning Meeting

    Pontuao Os desenvolvedores do pontos cada uma das histrias, neste momento se considera a

    parte tcnica. (Ex: Pontuao por Planning Poker)

    Sprint Backlog Os desenvolvedores apresentam a pontuao para o P.O. e baseado na pontuao e na

    capacidade de atendimento por pontos por Sprint da equipe escolhe as histrias mais prioritrias (negociando com os desenvolvedores, se necessrio).

    Definio de Metas Se no tiver sido definida durante o processo, o P.O. define a meta do Sprint.

    O qu...

    Como...

  • @ribeirord

    41

    SCRUM SCRUM SCRUM SCRUM Daily scrum

    Reunies dirias de no mximo 15 minutos. Reunio breve e informal , deve acontecer sempre no mesmo horrio e local combinados e dela participam apenas o TIME.

    Funcionamento:

    No horrio combinado, cada membro vai ao local combinado

    Todos de P, respondem as seguintes perguntas: O que fiz desde o ltimo Scrum O que farei at o prximo Scrum Quais problemas esto me atrapalhando

    Se algum tiver uma sugesto breve, se identifica para que, aps o dailyscrum, os interessados se reunam para resolver o problema juntos.

    SCRUM SCRUM SCRUM SCRUM Review

    A Reviso da Sprint executada no final da Sprint para inspecionar oincremento e adaptar o Backlog do Produto se necessrio.

    Durante a reunio de Reviso da Sprint o Time Scrum e as partesinteressadas colaboram sobre o que foi feito na Sprint. Com base nisso eem qualquer mudana no Backlog do Produto durante a Sprint, osparticipantes colaboram nas prximas coisas que precisam ser prontas.

    Esta uma reunio informal, e a apresentao do incremento destina-se amotivar e obter comentrios e promover a colaborao.

    Esta uma reunio tem um time-boxed de 2.5% do Sprint. Por exemplo, uma Sprint de duas semanas tem Reunies de Reviso de duas horas.

  • @ribeirord

    42

    SCRUM SCRUM SCRUM SCRUM ReviewA Reunio de Reviso inclui os seguintes elementos:

    O Product Owner identifica o que foi Pronto e o que no foi Pronto;

    A Equipe de Desenvolvimento discute o que foi bem durante a Sprint, quais problemas ocorreram dentro da Sprint, e como estes problemas foram resolvidos;

    A Equipe de Desenvolvimento demonstra o trabalho que est Pronto e responde as questes sobre o incremento;

    O Product Owner discute o Backlog do Produto tal como est. Ele (ou ela) projeta as provveis datas de concluso baseado no progresso at a data; e,

    O grupo todo colabora sobre o que fazer a seguir, e assim que a Reunio de Reviso da Sprint fornece valiosas entradas para a Reunio de Planejamento da prxima Sprint.

    SCRUM SCRUM SCRUM SCRUM Review

    O resultado da Reunio de Reviso da Sprint um Backlog do Produto revisado que define o provvel Backlog do Produto para a prxima Sprint.

    O Backlog do Produto pode tambm ser ajustado completamente para atender novas oportunidades.

    Dicas: O sucesso do Review baseado na meta do Sprint Garantir que cliente, mas principalmente usurio aprove o produto Apresentar o produto sem influenciar o usurio Usurio deve dar feedback do uso NO ! NO ! NO ! NO ! Se codifica no Review Caso encontre BUGs, eles e novas ideias voltam para o Backlog

  • @ribeirord

    43

    SCRUM SCRUM SCRUM SCRUM Retrospective

    Esta uma reunio tem um time-boxed de 3.75% do Sprint.

    o momento de reflexo e exposio de problemas de um time e, portanto , o momento no qual se melhora o processo, evidencia-se e resolve-se problemas que afligem a equipe.

    O propsito da Retrospectiva da Sprint :

    Inspecionar como a ltima Sprint foi em relao as pessoas, relaes, processos e ferramentas;

    Identificar e ordenar os principais itens que foram bem e as potenciais melhorias; e,

    Criar um plano para implementar melhorias no modo que o Time Scrum faz seu trabalho;

    SCRUM SCRUM SCRUM SCRUM Retrospective

    O Scrum Master encouraja o Time Scrum a melhorar, dentro do processodo framework do Scrum, o processo de desenvolvimento e as prticas parafaz-lo mais efetivo e agradvel para a prxima Sprint.

    Durante cada Retrospectiva da Sprint, o Time Scrum planeja formas deaumentar a qualidade do produto, adaptando a definio de Prontoquando apropriado.

    Ao final da Retrospectiva da Sprint, o Time Scrum dever ter identificadomelhorias que sero implementadas na prxima Sprint.

    A implementao destas melhorias na prxima Sprint a forma deadaptao inspeo que o Time Scrum faz a si prprio.

    A Retrospectiva da Sprint fornece um evento dedicado e focado nainspeo e adaptao, no entanto, as melhorias podem ser adotadas aqualquer momento.

  • @ribeirord

    44

    SCRUM SCRUM SCRUM SCRUM Retrospective

    Existem diversas formas de trabalhar na retrospectiva, uma das maisadotadas no Brasil funciona da seguinte forma:

    Cada membro da caneta ganha caneta e post-it;

    Cada um, sem olhar opinies ou conversar com outros membros dotime , escreve os pontos positivos e negativos do Sprint;

    Um membro da equipe agrupa os post-its com opinies parecidas enarra o que foi descrito. Normalmente os problemas mais sriosaparecero mais vezes;

    A equipe discute como resolver os problemas apontados j para oprximo Sprint. Evitar problemas recorrentes

    Anota-se as solues discutidas e as mantem visveis durante o Sprint,como lembrete

    SCRUM SCRUM SCRUM SCRUM Retrospective

  • @ribeirord

    45

    SCRUMSCRUMSCRUMSCRUM

    SCRUMSCRUMSCRUMSCRUM

  • @ribeirord

    46

    SCRUMSCRUMSCRUMSCRUM

    O que pode alterar o tamanho da Sprint ?O que pode alterar o tamanho da Sprint ?O que pode alterar o tamanho da Sprint ?O que pode alterar o tamanho da Sprint ?

    SCRUMSCRUMSCRUMSCRUM

    O que pode alterar o tamanho da Sprint ?O que pode alterar o tamanho da Sprint ?O que pode alterar o tamanho da Sprint ?O que pode alterar o tamanho da Sprint ?

    EscopoEscopoEscopoEscopo Tamanho do timeTamanho do timeTamanho do timeTamanho do time Disponibilidade do clienteDisponibilidade do clienteDisponibilidade do clienteDisponibilidade do cliente Conhecimento do time sobre agilidadeConhecimento do time sobre agilidadeConhecimento do time sobre agilidadeConhecimento do time sobre agilidade Conhecimento do time sobre a tecnologiaConhecimento do time sobre a tecnologiaConhecimento do time sobre a tecnologiaConhecimento do time sobre a tecnologia Times novosTimes novosTimes novosTimes novos ............

  • @ribeirord

    47

    SCRUMSCRUMSCRUMSCRUM

    Dica:Dica:Dica:Dica:

    Quanto maior o tempo de feedback pior ser... O Quanto maior o tempo de feedback pior ser... O Quanto maior o tempo de feedback pior ser... O Quanto maior o tempo de feedback pior ser... O leanleanleanleanpossui um conceito de possui um conceito de possui um conceito de possui um conceito de FailFailFailFail FastFastFastFast que afirma que que afirma que que afirma que que afirma que quanto mais rpido falhar, melhor para a mudana de quanto mais rpido falhar, melhor para a mudana de quanto mais rpido falhar, melhor para a mudana de quanto mais rpido falhar, melhor para a mudana de estratgia.estratgia.estratgia.estratgia.

    SCRUM SCRUM SCRUM SCRUM Cebola do PlanejamentoCebola do PlanejamentoCebola do PlanejamentoCebola do Planejamento

    Dia

    Iterao

    Release

    Produto

    Portflio

    Estratgia

  • @ribeirord

    48

    SCRUM SCRUM SCRUM SCRUM Planejamento de ReleasePlanejamento de ReleasePlanejamento de ReleasePlanejamento de Release

    Determinar Condies de Satisfao

    Estimar os Itens do Backlog

    Selecionar o Tamanho da

    Sprint

    Estimar Velocidade

    PriorizarEstrias

    Selecionar Itens e data do

    Release

    SCRUM SCRUM SCRUM SCRUM Planejamento de ReleasePlanejamento de ReleasePlanejamento de ReleasePlanejamento de Release

    Tamanho

    (27 pontos)

    Clculo

    (9 pontos por sprint)

    Durao

    (3 sprints)

  • @ribeirord

    49

    SCRUM SCRUM SCRUM SCRUM Planejamento de ReleasePlanejamento de ReleasePlanejamento de ReleasePlanejamento de Release

    Tamanho

    (27 pontos)

    Clculo

    (9 pontos por sprint)

    Durao

    (3 sprints)

    ResultadoResultadoResultadoResultado

    Sprint 1 Sprint 2 Sprint 3

    SCRUM SCRUM SCRUM SCRUM Release Release Release Release BurndownBurndownBurndownBurndown

    Fonte: http://www.mountaingoatsoftware.com/scrum/release-burndown

  • @ribeirord

    50

    SCRUM SCRUM SCRUM SCRUM Sprint Sprint Sprint Sprint BurndownBurndownBurndownBurndown

    Fonte: http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1116

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    Os Valores em XP so conceitos no tangveis queacredita-se fazer uma grande diferena na qualidadefinal do produto e na motivao dos times. Eles so:

    Comunicao Feedback Coragem Simplicidade

  • @ribeirord

    51

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    Valores:Valores:Valores:Valores:

    ComunicaoComunicaoComunicaoComunicao O valor da comunicao visto dentro do time, entre seus

    membros, e entre o time e o cliente. Ambos tem igual importncia.

    A comunicao deve ser: DIRETA EFICAZ ESCLARECEDORA

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    Valores:Valores:Valores:Valores:

    FeedbackFeedbackFeedbackFeedback

    um valor que engloba as relaes interpessoais, mas tambm se refere ao feedback que o prprio cdigo do projeto devolve aos membros do time

    Para que o feedback do cdigo funcione bem, so necessrios testes automatizados de unidade e um servidor de integrao contnua para que os testes mais longos sejam rodados com frequncia e, se quebrarem, sinalizem uma inconsistncia.

    Com o feedback o cliente pode: Identificar erros rapidamente Definir prioridades

  • @ribeirord

    52

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    Valores:Valores:Valores:Valores:

    CoragemCoragemCoragemCoragem

    O XP prega que os desenvolvedores precisam ter coragem para refatorar o cdigo em prol de melhorias em clareza e design e nada melhor para dar coragem do que testes automatizados.

    Coragem tambm apagar o cdigo, mesmo funcionalidades inteiras, no importa o trabalho que tenha sido empregado para desenvolve-la.

    Coragem para no tentar prever o futuro, mas sim focar no que realmente necessrio no momento. XP associa a essa idia a sigla YAGNI (you aint gonna need it)

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    Valores:Valores:Valores:Valores:

    SimplicidadeSimplicidadeSimplicidadeSimplicidade

    Considere que , na mdia, o tempo de construo de um software cerca de 30% do tempo investido nele. Os outros 70% so dedicados a manuteno do sistema.

    Num cenrio como esse, a simplicidade essencial para tornar esse perodo maior muito agradvel.

    O desenvolvedor deve: Implementar apenas o bsico No antecipar funcionalidades

  • @ribeirord

    53

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Propriedade Coletiva do CdigoPropriedade Coletiva do CdigoPropriedade Coletiva do CdigoPropriedade Coletiva do Cdigo Programao PareadaProgramao PareadaProgramao PareadaProgramao Pareada Testes Automatizados e Testes Automatizados e Testes Automatizados e Testes Automatizados e testtesttesttest firstfirstfirstfirst Test Test Test Test DrivenDrivenDrivenDriven Design (TDD)Design (TDD)Design (TDD)Design (TDD) Integrao contnua e Integrao contnua e Integrao contnua e Integrao contnua e DeployDeployDeployDeploy ContnuoContnuoContnuoContnuo RefatoraoRefatoraoRefatoraoRefatorao ConstanteConstanteConstanteConstante

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Propriedade Coletiva do CdigoPropriedade Coletiva do CdigoPropriedade Coletiva do CdigoPropriedade Coletiva do Cdigo

    comum que desenvolvedores trabalhem em partes independentes do cdigo. A consequncia desta abordagem que cada desenvolvedor se sente responsvel apenas por sua parte...

    O ideal o sentimento de time onde todos so responsveis pelo cdigo. Assim, um desenvolvedor livre para interferir em qualquer parte do cdigo sem irritar o dono do cdigo.

  • @ribeirord

    54

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Programao Pareada (Programao Pareada (Programao Pareada (Programao Pareada (pairpairpairpair programmingprogrammingprogrammingprogramming))))

    A programao em par uma forma eficaz de reduzir a incidncia de bugs em um sistema.

    Quem trabalha continuamente com programao em par se habitua a corrigir e ter seu trabalho corrigido dezenas de vezes ao dia. A incidncia de erros identificados pelo colega costuma ser to elevada que surpreende quem no est acostumado ao uso da tcnica.

    Equipes que trabalham em par conseguem reduzir drasticamente a insero de defeitos em seus cdigos.

    A programao em par ajuda os desenvolvedores a criarem solues mais simples, mais rpidas de implementar e mais fceis de manter.

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Programao Pareada (Programao Pareada (Programao Pareada (Programao Pareada (pairpairpairpair programmingprogrammingprogrammingprogramming))))

    A programao em par tambm uma forma de fazer com que o desenvolvedor tenha mais confiana no cdigo que produz.

    O conjunto de caractersticas apresentadas acima faz com que a programao em par acelere o desenvolvimento significativamente, embora primeira vista parea o contrrio.

    Programar em par exige que as pessoas envolvidas sejamreceptivas, compreensivas umas com as outras, engajadas e,sobretudo, humildes. necessrio aceitar que somos falveispara que possamos programar em par. Weinberg criou o termoegoless programming, ou seja, programao sem ego.

  • @ribeirord

    55

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Testes Automatizados e Testes Automatizados e Testes Automatizados e Testes Automatizados e testtesttesttest firstfirstfirstfirst

    Um dos grandes desafios trabalhar em cdigos antigos.... O XP prega arefatorao constante ! Mas quanto maior o projeto, maior a quantidade decdigo no escrita por ns ou antigo, o que aumenta a insegurana de refatoraro cdigo...impedindo a evoluo do projeto.

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Testes Automatizados e Testes Automatizados e Testes Automatizados e Testes Automatizados e testtesttesttest firstfirstfirstfirst

    O XP prega o uso extensivo de testes automatizados que descrevem ocomportamento de uma funcionalidade, preferencialmente escritos antesmesmo do cdigo que eles testam, prtica que recebe o nome dedesenvolvimentodesenvolvimentodesenvolvimentodesenvolvimento dirigidodirigidodirigidodirigido porporporpor testestestestestestestes (Test(Test(Test(Test DrivenDrivenDrivenDriven DevelopmentDevelopmentDevelopmentDevelopment ---- TDD)TDD)TDD)TDD)....

    Os testes automatizados tem 2 funes importantes:

    PermitirPermitirPermitirPermitir refatoraorefatoraorefatoraorefatorao :::: podemos refatorar o cdigo com mais segurana. Podemos alteraro cdigo e verificar automaticamente se o software continua funcionando.

    DocumentarDocumentarDocumentarDocumentar:::: Os testes devem ter nomes que explicam quais funcionalidades eles testam,assim ao executar o cdigo, o desenvolvedor sabe quais funcionalidades foramimplementadas e qual o comportamento esperado pelo cdigo.

  • @ribeirord

    56

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    Valores:Valores:Valores:Valores:

    Test Test Test Test DrivenDrivenDrivenDriven Design (TDD)Design (TDD)Design (TDD)Design (TDD)

    Queremos que os nossos testes guiem o prprio design das classes do Queremos que os nossos testes guiem o prprio design das classes do Queremos que os nossos testes guiem o prprio design das classes do Queremos que os nossos testes guiem o prprio design das classes do sistema sistema sistema sistema

    O processo TDD funciona da seguinte maneira:O processo TDD funciona da seguinte maneira:O processo TDD funciona da seguinte maneira:O processo TDD funciona da seguinte maneira:

    Faz-se o teste automatizado para o caso mais simples

    Roda-se o teste (que no dever passar pois a funcionalidade ainda no foi implementada)

    Implementa-se atravs da mudana mais simples possvel que faa o teste passar

    Se o cdigo no estiver o melhor possvel: Refatora

    Certifique-se que os testes continuem passando

    Se o cdigo estiver bom Volte para o primeiro item com o prximo teste mais simples

    @ribeirord

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

  • @ribeirord

    57

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    Integrao contnua e Integrao contnua e Integrao contnua e Integrao contnua e DeployDeployDeployDeploy ContnuoContnuoContnuoContnuo

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    ValoresValoresValoresValores::::

    RefatoraoRefatoraoRefatoraoRefatorao ConstanteConstanteConstanteConstante

    Com o aumento do projeto comum que pequenas partes de cdigo mal Com o aumento do projeto comum que pequenas partes de cdigo mal Com o aumento do projeto comum que pequenas partes de cdigo mal Com o aumento do projeto comum que pequenas partes de cdigo mal escrito se acumulem e, quando menos se esperar, compromete todo o projeto. escrito se acumulem e, quando menos se esperar, compromete todo o projeto. escrito se acumulem e, quando menos se esperar, compromete todo o projeto. escrito se acumulem e, quando menos se esperar, compromete todo o projeto. ( ( ( ( Big Ball Big Ball Big Ball Big Ball ofofofof MudMudMudMud Joe Joe Joe Joe YoderYoderYoderYoder))))

    A melhor forma de evitar este problema atravs de pequenas A melhor forma de evitar este problema atravs de pequenas A melhor forma de evitar este problema atravs de pequenas A melhor forma de evitar este problema atravs de pequenas refatoraesrefatoraesrefatoraesrefatoraesconstantes.constantes.constantes.constantes.

    Refatorao uma tcnica controlada para reestruturar um trecho decdigo existente, alterando sua estrutura interna sem modificar seucomportamento externo. (Martin Fowler)

  • @ribeirord

    58

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    RefatoraoRefatoraoRefatoraoRefatorao ConstanteConstanteConstanteConstante

    eXtremeeXtremeeXtremeeXtreme ProgrammingProgrammingProgrammingProgramming

    RefatoraoRefatoraoRefatoraoRefatorao ConstanteConstanteConstanteConstante

  • @ribeirord

    59

    O blackjack jogado com um ou mais baralhos de 52525252 cartascartascartascartas, paracujos valores ser designado um total de pontos.

    As cartas de 2 a 10 tero o valor dos nmeros. Reis, damas e valetesvalem 10 pontos cada e ases podero ser usados tanto como 1 ou 11.

    O objetivo para o jogador ser comprar cartas at um total de 21pontos (sem exceder), vencendo o total das cartas do distribuidor.

    Design a deck of cardsppppublicublicublicublic classclassclassclass Deck{privateprivateprivateprivate readonlyreadonlyreadonlyreadonly Ilist cards = new List( );

    publicpublicpublicpublic Deck( ){cards.Add(Card.Dois_de_Copas);cards.Add(Card.Tres_de_Copas);//..restante de copas

    cards.Add(Card.Dois_de_Ouros);cards.Add(Card.Tres_de_Ouros);//..restante de ouros

    cards.Add(Card.Dois_de_Espadas);cards.Add(Card.Tres_de_Espadas);//..restante de Espadas

    cards.Add(Card.Dois_de_Paus);cards.Add(Card.Tres_de_Paus);//..restante de paus

    //Coringacards.Add(Card.Coringa);}

  • @ribeirord

    60

    BUG DESCOBERTO !BUG DESCOBERTO !BUG DESCOBERTO !BUG DESCOBERTO !

    No existe CoringaCoringaCoringaCoringa no Black Jack

    Como testar automaticamente em cada novo incremento para que problemas assim no ocorram ?

    http://junit.sourceforge.net/doc/testinfected/testing.htm

    public class DeckTest{

    public void Verify_Deck_contains_52_cards( ){

    var deck = new Deck( );Assert.AreEqual(52,deck.Count( ) );

    }}

  • @ribeirord

    61

    Criar Baralho de Cartas ....

    Critrios de Teste .52 cartas no Baralho.13 Cartas de Cada Naipe.No pode existir carta Coringa.Uma carta de Cada Tipo

    Critrios de Teste .52 cartas no Baralho.13 Cartas de Cada Naipe.No pode existir carta Coringa.Uma carta de Cada Tipo

  • @ribeirord

    62

    Critrios de Teste .52 cartas no Baralho. OKOKOKOK13 Cartas de Cada Naipe.No pode existir carta Coringa.Uma carta de Cada Tipo

    public class DeckTest2{

    public void Verify_Deck_contains_52_cards( ){

    var deck = new Deck( );Assert.AreEqual(52,deck.Count( ) );

    }}

    Critrios de Teste .52 cartas no Baralho. OKOKOKOK13 Cartas de Cada Naipe. OKOKOKOKNo pode existir carta Coringa.Uma carta de Cada Tipo

    public class DeckTest2{

    public void Verify_Deck_contains_52_cards( ){

    var deck = new Deck( );Assert.AreEqual(52,deck.Count( ) );

    }

    public void Verify_Deck_contains_13_cards_for_each_suit( ){

    var deck = new Deck( );Assert.AreEqual(13,deck.NumberofCopas( ) );Assert.AreEqual(13,deck.NumberofEspadas( ) );Assert.AreEqual(13,deck.NumberofOuros( ) );Assert.AreEqual(13,deck.NumberofPaus( ) );

    }}

  • @ribeirord

    63

    Critrios de Teste .52 cartas no Baralho. OKOKOKOK13 Cartas de Cada Naipe. OKOKOKOKNo pode existir carta Coringa. OKOKOKOKUma carta de Cada Tipo

    public class DeckTest2{

    //..Continuao

    public void Verify_Deck_contains_no_joker( ){

    var deck = new Deck( );Assert.IsFalse(deck.Contains(Card.Coringa ) );

    }

    }

    Critrios de Teste .52 cartas no Baralho. OKOKOKOK13 Cartas de Cada Naipe. OKOKOKOKNo pode existir carta Coringa. OKOKOKOKUma carta de Cada Tipo OKOKOKOK

    public class DeckTest2{

    //..Continuao

    public void Verify_Every_Card_in_the_Deck ( ){

    var deck = new Deck( );Assert.IsTrue(deck.Contains(Card. Dois_de_Copas ) );Assert.IsTrue(deck.Contains(Card. Tres_de_Copas ) );

    //...Testar todas as cartas vlidas para cada naipe

    }

    }

  • @ribeirord

    64

    Planning Planning Planning Planning PokerPokerPokerPokerA ideia principal por traz do Planning Poker permitir que todos osmembros do time de desenvolvimento que esto comprometidos naimplementao do Sprint participem colocando a sua viso decomplexidade para que juntos possam chegar a um indicador decomplexidade comum para o time.

    A escala de complexidade baseada na sequncia de Fibonacci ( 1, 2, 3,

    5, 8, 13,21, ), ou em outra escala definida pela equipe...

    0000 1/21/21/21/2 1111

    2222 3333 5555

    8888 13131313 20202020

    40404040 100100100100

    ????

  • @ribeirord

    65

    Planning Planning Planning Planning PokerPokerPokerPoker

    Cada participante do time que estiver comprometido recebe um conjunto de cartas sendo cada uma com o nmero de complexidade.

    O grupe se rene geralmente na reunio Sprint Planning e esclarece as histrias com o PO (Product Owner) para depois estimar uma a uma.

    Seguindo a ordem de sequencia das s histrias j priorizadas pelo PO.

    Ento o time conta at trs e cada um apresenta uma das cartas ao mesmo tempo. Esse um momento importante, pois nenhum membro pode influenciar o outro na hora de mostrar as cartas.

    Planning Planning Planning Planning PokerPokerPokerPoker

    Aps apresentada as cartas confere-se os nmeros das mesmas para verse deu tudo igual ou ocorreu divergncias. Em caso de divergncia cadamembro pode argumentar o que o levou a pensar diferente dos demais enesse momento pode usar os argumentos que justifique aquele item sermais complexo ou mais simples.

    Com o tempo voc vai observar opinies do tipo Eu j implementei umarotina parecida em um projeto anterior que trazem a tona o grande valordessa tcnica que justamente fazer as pessoas serem ouvidas.

    Aps a apresentao dos argumentos cada pessoa que ficou na dvidapode propor uma nova votao e mudar o seu voto para mais ou paramenos conforme o novo entendimento da questo. Por isso um item queestava complexo pode ser finalizado com mais simples ou vice-versaprevalecendo o entendimento do time sobre a questo.

  • @ribeirord

    66

    Leitura ComplementarLeitura ComplementarLeitura ComplementarLeitura Complementar

    Dvidas ou Sugestes de Melhorias, entre Dvidas ou Sugestes de Melhorias, entre Dvidas ou Sugestes de Melhorias, entre Dvidas ou Sugestes de Melhorias, entre em contato: [email protected] contato: [email protected] contato: [email protected] contato: [email protected]