SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Desenvolvimento Ágil de Software
         Inovador com



              José A. S. Alegria
               PT Comunicações
           <jose.alegria@telecom.pt>



         Lisboa, 14 de Novembro de 2007
Sinopse
 Cada vez mais o desenvolvimento de produtos inovadores tem de ser feito de
   forma rápida e envolvendo o desenvolvimento concorrente de todas suas
  componentes, e, muito em particular, do software que muitas vezes é o seu
factor principal de diferenciação. As metodologias preconizadas pela engenharia
   de software clássica mostram-se demasiado inflexíveis para satisfazer os
    requisitos de agilidade que a inovação rápida de produtos intensivos em
 software exige. Nesta workshop iremos apresentar uma nova via, já utilizada
   internamente no nosso grupo na PT, baseada nos princípios por detrás do
   movimento pró agilidade de desenvolvimento de software e, em particular,
  aqueles defendidos pela metodologia Scrum hoje usada por empresas com
       ciclos rápidos de inovação como a Yahoo, a Google, a Nokia, etc
Personal Foundations
Ao nível tecnológico, a
“agilidade” no desenvolvimento
de software já me acompanha há
        mais de 30 anos!
“Old” Personal Foundations
1. Fui pioneiro (1977) na utilização de “programação orientada a objectos” na
   construção de todas as fases de um compilador. Introduzi a nível
   universitário (Eng.ª Informática) o ensino desta tecnologia de construção de
   compiladores.

2. Desenvolvi a primeira implementação de uma DDSL (Declarative Domain
   Specific Language) em Portugal (linguagem declarativa de especificação e
   simulação de múltiplas carreiras militares) utilizada pelo Departamento de
   Investigação Operacional do EMGFA para planear a reestruturação das
   carreiras militares no pós guerra colonial.

        Projecto que mereceu a uma carta de louvor do EMGFA (Chefe do Estado-
        Maior-General das Forças Armadas) em 1979

3. Desenvolvi a primeira aplicação “100% Orientada a Objectos” em Portugal
   (1979), integralmente desenvolvida em Simula 67.
1977
1977
                           The Xerox Star 9010
                              “Dandelion”




Simula-67   Smalltalk 80
…
1977       2001
1977       2001
Como profissional a experiência
confirmou-me vezes sem conta
            que…
A
A
B
                             B




Source: Strategic Management and
Organizational Dynamics by Ralph
Stacey in Agile Software Development
with Scrum by Ken Schwaber and Mike
Beedle.
C
                              C

A produtividade da maioria dos
    “knowledge workers” é
significativamente reduzida por
     “problemas (GAP) de
        comunicação”…
D
                                                   D
  Esse “gap” de comunicação é
sempre mais grave em ambientes
em que o “objecto alvo” é de uma
  diferente cultura empresarial,
   evolui ou muda rapidamente
   Exemplo: ambientes com desenvolvimento rápido
       e concorrente de produtos inovadores
The New New Product
The New New Product
 Development Game
 Development Game
Hirotaka Takeuchi and Ikujiro Nonaka
Hirotaka Takeuchi and Ikujiro Nonaka
      Harvard Business Review
      Harvard Business Review

           January 1986
           January 1986
A forma como a
Eng.ª Química
lida com
processos
“instáveis”…
Tal como eu, muitos estão convencidos
        que o rápido e concorrente
desenvolvimento de produtos inovadores
      (mas não “life critical”) exige dos
“Software Developers” métodos, técnicas
        e tecnologias mais ágeis…
The Manifesto for Agile Software Development
                                    Kent Beck         James Grenning
                                  Mike Beedle          Jim Highsmith
www.agilealliance.org          Arie van Bennekum        Andrew Hunt
                                Alistair Cockburn       Ron Jeffries
                               Ward Cunningham            Jon Kern
                                                        Brian Marick
                                 Martin Fowler

 “We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we have
                       come to value”:

•   Individuals and interactions over processes and tools
•   Working software over comprehensive documentation
•   Customer collaboration over contract negotiation
•   Responding to change over following a plan
        That is, while there is value in the items on the right,
                  we value the items on the left more.
SCRUM




(www.controlchaos.com)
SCRUM




(www.controlchaos.com)
SCRUM: Origem

 • “The New New Product Development Game” in
   Harvard Business Review, 1986.

   – “The… ‘relay race’ approach to product development…may
     conflict with the goals of maximum speed and flexibility.
     Instead a holistic or ‘rugby’ approach—where a team tries to
     go the distance as a unit, passing the ball back and forth—may
     better serve today’s competitive requirements.”
SCRUM: Principais Características

     É um das principais metodologias pró agilidade

     Requer / necessita de equipas com “capacidade” de se auto
     organizarem

     Os seus “outputs” evoluem de forma incremental numa série de
     releases “mensais”

     Os requisitos são mantidos como elementos de uma lista que
     constitui o “product backlog”

     Não impõe nenhuma prática especial ao nível de engenharia de
     software  mas o recurso competente a tecnologias ágeis
     ajuda ☺
SCRUM: Sumário
SCRUM “Master”

    Representa a “gestão” no projecto

    Tipicamente é um gestor sénior de projecto ou o chefe
    de equipa

    É responsável por garantir conformidade das práticas
    e valores do “Scrum”

    A sua principal tarefa é REMOVER OBSTÁCULOS
SCRUM “Team”

    Tipicamente 5-10 pessoas

    Cross-functional
    – QA, Programadores, Designers de Interfaces, etc.

    Membros devem, em princípio, ser full-time !

    As equipes devem ter capacidade para se auto-
    organizarem

    Alterações à estrutura da equipe só pode
    acontecer entre “sprints”
SCRUM “Sprints”

    Os projectos Scrum avançam por séries discretas de
    “sprints”
      Semelhante às iterações do XP

    Normalmente a duração de um “sprint” deve ser de um
    mês (+/- uma semana ou duas)
      • Contudo, uma duração constante induz um melhor ritmo!


    O “produto” é concebido, desenhado, programado e
    testado durante o “sprint”
SCRUM “No changes during Sprints” !!!




        A duração dos “sprints” deve ser planeada de forma
                a garantir evitar alterações a meio


                     “TIME BOXED”
SCRUM “Product Backlog”

    “A lista” com todas as “features” desejadas /
    requeridas
      Normalmente é uma combinação de…
      • story-based work (“let user search and replace”)
      • task-based work (“improve exception handling”)


    “A lista” é prioritizada pelo “Product Owner”
      Tipicamente o Gestor de Produto, Marketing, um responsável
      pelo negócio, etc. Normalmente não é um “informático”!
SCRUM “No changes during Sprints”
SCRUM: do “Sprint Goal” ao “Sprint Backlog”

     A equipa “Scrum” pega no “Sprint Goal” e decide
     que tarefas são necessárias para o concretizar

     A equipa auto-organiza-se à volta da forma como
     pretendem atingir o “Sprint Goal”
       Não é o Project Manager que paternalistamente atribui
       tarefas aos seus subordinados…

     Os “chefes hierárquicos” não impõem decisões à
     equipa

     O “Sprint Backlog” é criado
SCRUM: Gestão do “Sprint Backlog” durante o “Sprint”

     Alterações ao “Sprint Backlog”
     – A equipa adiciona novas tarefas / acções sempre que delas
       precisem (e só nesse caso) para atingirem o “Sprint Goal”
     – A equipa pode e deve eliminar tarefas / acções
       desnecessárias
     – Mas…: Só a equipa pode alterar o “Sprint Backlog”

     Estimativas / projecções são actualizadas sempre que
     houver informação nova
SCRUM: Sprint “Burndown Chart”
SCRUM: Daily Scrum Meetings
      Parâmetros
      –   Diário
      –   15-minutos
      –   Em pé !
      –   Não são para resolver problemas (“problem solving”)

      3 simples perguntas a cada elemento:
      1. O que é fizeste ontem?
      2. O que vais fazer hoje?
      3. Que obstáculos tens ao teu progresso?

      “Chickens” and “Pigs” are invited
          Evitar sempre outro tipo de convidados…

      Só os “Pigs” é que podem intervir. “Chickens” só
      observam ☺
SCRUM: Sprint Review Meeting

     A equipa apresenta o que realizou no “Sprint”

     Tipicamente apresenta demonstrando a execução
     das novas “features” implementadas ou, por exemplo,
     algo que demonstre a arquitectura técnica

     Informal
       Com tempo mínimo de preparação (max. 2 ou 3 horas)

     Participantes
       “Clientes” do produto
       Gestão
       Product Owner
       Outros engenheiros / técnicos
SCRUM
Bibliografia Recomendada
SCRUM




1º          2º                3º


     (www.controlchaos.com)
eXtreme Programming
Balancing Agility and Discipline
Fred Brooks versus Linus Torvalds
Bom “Hacking”!

Mais conteúdo relacionado

Mais procurados

Participação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumParticipação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos Scrum
Gustavo Quezada
 
Scrum - Conceitos, Práticas e Experiências - Manoel Pimentel
Scrum - Conceitos, Práticas e Experiências - Manoel PimentelScrum - Conceitos, Práticas e Experiências - Manoel Pimentel
Scrum - Conceitos, Práticas e Experiências - Manoel Pimentel
Manoel Pimentel Medeiros
 
Palestra de SCRUM em Juazeiro
Palestra de SCRUM em JuazeiroPalestra de SCRUM em Juazeiro
Palestra de SCRUM em Juazeiro
Paulo Furtado
 
Uma introdução ao SCRUM
Uma introdução ao SCRUMUma introdução ao SCRUM
Uma introdução ao SCRUM
elliando dias
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
alexandre_malaquias
 

Mais procurados (20)

Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
 
Minicurso Aplicando Scrum em projetos de software (2010)
Minicurso Aplicando Scrum em projetos de software (2010)Minicurso Aplicando Scrum em projetos de software (2010)
Minicurso Aplicando Scrum em projetos de software (2010)
 
Treinamento de Scrum
Treinamento de ScrumTreinamento de Scrum
Treinamento de Scrum
 
Palestra sobre metodologia Scrum
Palestra sobre metodologia ScrumPalestra sobre metodologia Scrum
Palestra sobre metodologia Scrum
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Scrum
ScrumScrum
Scrum
 
Métodos Ágeis - Manifesto Ágil, Scrum e XP
Métodos Ágeis - Manifesto Ágil, Scrum e XPMétodos Ágeis - Manifesto Ágil, Scrum e XP
Métodos Ágeis - Manifesto Ágil, Scrum e XP
 
Participação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumParticipação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos Scrum
 
Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
 
O que é SCRUM
O que é SCRUMO que é SCRUM
O que é SCRUM
 
Scrum - Conceitos, Práticas e Experiências - Manoel Pimentel
Scrum - Conceitos, Práticas e Experiências - Manoel PimentelScrum - Conceitos, Práticas e Experiências - Manoel Pimentel
Scrum - Conceitos, Práticas e Experiências - Manoel Pimentel
 
Aula03 04 agile_scrum_xp
Aula03 04 agile_scrum_xpAula03 04 agile_scrum_xp
Aula03 04 agile_scrum_xp
 
Palestra de SCRUM em Juazeiro
Palestra de SCRUM em JuazeiroPalestra de SCRUM em Juazeiro
Palestra de SCRUM em Juazeiro
 
Uma introdução ao SCRUM
Uma introdução ao SCRUMUma introdução ao SCRUM
Uma introdução ao SCRUM
 
Scrum - Framework, Competências e Valores (versão community)
Scrum -  Framework, Competências e Valores (versão community)Scrum -  Framework, Competências e Valores (versão community)
Scrum - Framework, Competências e Valores (versão community)
 
Scrum
ScrumScrum
Scrum
 
Métodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de SoftwareMétodos Ágeis para Desenvolvimento de Software
Métodos Ágeis para Desenvolvimento de Software
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de Projetos
 

Destaque

Business Process Management in Sports Organizations: A case study in the Euro...
Business Process Management in Sports Organizations: A case study in the Euro...Business Process Management in Sports Organizations: A case study in the Euro...
Business Process Management in Sports Organizations: A case study in the Euro...
Pedro Sobreiro
 
Workshop "Business Plan x Business Model"
Workshop "Business Plan x Business Model"Workshop "Business Plan x Business Model"
Workshop "Business Plan x Business Model"
Renato J Cecchettini
 
Why Use Master Slides? Our Webinar with Presentation Expert
Why Use Master Slides? Our Webinar with Presentation ExpertWhy Use Master Slides? Our Webinar with Presentation Expert
Why Use Master Slides? Our Webinar with Presentation Expert
SlideRabbit
 
Introdução às metodologias ágeis de desenvolvimento de software
Introdução às metodologias ágeis de desenvolvimento de softwareIntrodução às metodologias ágeis de desenvolvimento de software
Introdução às metodologias ágeis de desenvolvimento de software
Jaime Schettini
 

Destaque (20)

Design Thinking - Alinhada a uma estratégia de concepção de produtos
Design Thinking - Alinhada a uma estratégia de concepção de produtosDesign Thinking - Alinhada a uma estratégia de concepção de produtos
Design Thinking - Alinhada a uma estratégia de concepção de produtos
 
Portfolio Slideshow
Portfolio SlideshowPortfolio Slideshow
Portfolio Slideshow
 
Business Process Management in Sports Organizations: A case study in the Euro...
Business Process Management in Sports Organizations: A case study in the Euro...Business Process Management in Sports Organizations: A case study in the Euro...
Business Process Management in Sports Organizations: A case study in the Euro...
 
Dia dos pais
Dia dos paisDia dos pais
Dia dos pais
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Fashion.me - Festival de Empreendedorismo - Setembro/2013
Fashion.me - Festival de Empreendedorismo - Setembro/2013Fashion.me - Festival de Empreendedorismo - Setembro/2013
Fashion.me - Festival de Empreendedorismo - Setembro/2013
 
Round 2: Fight! 2º Debate Presidenciáveis Eleições 2014
Round 2: Fight! 2º Debate Presidenciáveis Eleições 2014Round 2: Fight! 2º Debate Presidenciáveis Eleições 2014
Round 2: Fight! 2º Debate Presidenciáveis Eleições 2014
 
Pumpkin Kibbeh Balls Infographic
Pumpkin Kibbeh Balls InfographicPumpkin Kibbeh Balls Infographic
Pumpkin Kibbeh Balls Infographic
 
Development proposal for the personal health record ‘portal do utente’
Development proposal for the personal health record ‘portal do utente’Development proposal for the personal health record ‘portal do utente’
Development proposal for the personal health record ‘portal do utente’
 
Um Serviço de Saúde centrado no cidadão
Um Serviço de Saúde centrado no cidadãoUm Serviço de Saúde centrado no cidadão
Um Serviço de Saúde centrado no cidadão
 
Workshop "Business Plan x Business Model"
Workshop "Business Plan x Business Model"Workshop "Business Plan x Business Model"
Workshop "Business Plan x Business Model"
 
A Era da Experiência do Usuário
A Era da Experiência do UsuárioA Era da Experiência do Usuário
A Era da Experiência do Usuário
 
Why Use Master Slides? Our Webinar with Presentation Expert
Why Use Master Slides? Our Webinar with Presentation ExpertWhy Use Master Slides? Our Webinar with Presentation Expert
Why Use Master Slides? Our Webinar with Presentation Expert
 
Meet our 15 hydropower and geotechnical experts | Rencontrez nos quinze expe...
Meet our 15 hydropower and geotechnical experts  | Rencontrez nos quinze expe...Meet our 15 hydropower and geotechnical experts  | Rencontrez nos quinze expe...
Meet our 15 hydropower and geotechnical experts | Rencontrez nos quinze expe...
 
Introdução às metodologias ágeis de desenvolvimento de software
Introdução às metodologias ágeis de desenvolvimento de softwareIntrodução às metodologias ágeis de desenvolvimento de software
Introdução às metodologias ágeis de desenvolvimento de software
 
Infographie - Gestion de projet par SNC-Lavalin pour la mine aurifère Éléonore
Infographie - Gestion de projet par SNC-Lavalin pour la mine aurifère ÉléonoreInfographie - Gestion de projet par SNC-Lavalin pour la mine aurifère Éléonore
Infographie - Gestion de projet par SNC-Lavalin pour la mine aurifère Éléonore
 
SNC-Lavalin Ian Edwards' speech
SNC-Lavalin Ian Edwards' speechSNC-Lavalin Ian Edwards' speech
SNC-Lavalin Ian Edwards' speech
 
Digital Revolution - Driving Construction Excellence
Digital Revolution -  Driving Construction ExcellenceDigital Revolution -  Driving Construction Excellence
Digital Revolution - Driving Construction Excellence
 
Adopting a value mindset to drive productivity in Mining and Metallurgy
Adopting a value mindset to drive productivity in Mining and MetallurgyAdopting a value mindset to drive productivity in Mining and Metallurgy
Adopting a value mindset to drive productivity in Mining and Metallurgy
 
[IP] Apresentação Institucional
[IP] Apresentação Institucional[IP] Apresentação Institucional
[IP] Apresentação Institucional
 

Semelhante a Desenvolvimento Ágil de Software com SCRUM

Redistributable Intro To Scrum
Redistributable Intro To ScrumRedistributable Intro To Scrum
Redistributable Intro To Scrum
Juan Bernabó
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP
Frank Coelho
 

Semelhante a Desenvolvimento Ágil de Software com SCRUM (20)

Redistributable Intro To Scrum
Redistributable Intro To ScrumRedistributable Intro To Scrum
Redistributable Intro To Scrum
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcp
 
Seminario Scrum
Seminario ScrumSeminario Scrum
Seminario Scrum
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias Ágeis
 
Workshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMWorkshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUM
 
Scrum 8
Scrum 8Scrum 8
Scrum 8
 
Scrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimentoScrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimento
 
Moving to Scrum
Moving to ScrumMoving to Scrum
Moving to Scrum
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Lista de Práticas Ágeis
Lista de Práticas ÁgeisLista de Práticas Ágeis
Lista de Práticas Ágeis
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
Apresentação Metodologias Ágeis de desenvolvimento
Apresentação Metodologias Ágeis de desenvolvimento Apresentação Metodologias Ágeis de desenvolvimento
Apresentação Metodologias Ágeis de desenvolvimento
 
Scrum
ScrumScrum
Scrum
 
Método Ágil Scrum
Método Ágil ScrumMétodo Ágil Scrum
Método Ágil Scrum
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
 
Scrum - características e aplicações.pdf
Scrum - características e aplicações.pdfScrum - características e aplicações.pdf
Scrum - características e aplicações.pdf
 
Entregando Software com Valor
Entregando Software com ValorEntregando Software com Valor
Entregando Software com Valor
 
Minicurso SCRUM
Minicurso SCRUMMinicurso SCRUM
Minicurso SCRUM
 

Mais de codebits

Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands On
codebits
 
Aplicações Web TV no Meo
Aplicações Web TV no MeoAplicações Web TV no Meo
Aplicações Web TV no Meo
codebits
 
Forms Usability 101
Forms Usability 101Forms Usability 101
Forms Usability 101
codebits
 
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based appsSpeak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
codebits
 
XMPP Hands-On
XMPP Hands-OnXMPP Hands-On
XMPP Hands-On
codebits
 
Mitos da Acessibilidade Web
Mitos da Acessibilidade WebMitos da Acessibilidade Web
Mitos da Acessibilidade Web
codebits
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
codebits
 
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
codebits
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
codebits
 
Exploring XMPP
Exploring XMPPExploring XMPP
Exploring XMPP
codebits
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-On
codebits
 
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencerQtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
codebits
 
Making the Chumby
Making the ChumbyMaking the Chumby
Making the Chumby
codebits
 
Globs - Gestão de Glossários
Globs - Gestão de GlossáriosGlobs - Gestão de Glossários
Globs - Gestão de Glossários
codebits
 
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de TraduçõesATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
codebits
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
codebits
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-On
codebits
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
codebits
 

Mais de codebits (20)

Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands On
 
Aplicações Web TV no Meo
Aplicações Web TV no MeoAplicações Web TV no Meo
Aplicações Web TV no Meo
 
Forms Usability 101
Forms Usability 101Forms Usability 101
Forms Usability 101
 
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based appsSpeak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
 
XMPP Hands-On
XMPP Hands-OnXMPP Hands-On
XMPP Hands-On
 
Mitos da Acessibilidade Web
Mitos da Acessibilidade WebMitos da Acessibilidade Web
Mitos da Acessibilidade Web
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
 
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
 
CouchDB
CouchDBCouchDB
CouchDB
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
 
Exploring XMPP
Exploring XMPPExploring XMPP
Exploring XMPP
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-On
 
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencerQtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
 
Making the Chumby
Making the ChumbyMaking the Chumby
Making the Chumby
 
Globs - Gestão de Glossários
Globs - Gestão de GlossáriosGlobs - Gestão de Glossários
Globs - Gestão de Glossários
 
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de TraduçõesATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-On
 
Gis@sapo
Gis@sapoGis@sapo
Gis@sapo
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
 

Último

Último (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Desenvolvimento Ágil de Software com SCRUM

  • 1. Desenvolvimento Ágil de Software Inovador com José A. S. Alegria PT Comunicações <jose.alegria@telecom.pt> Lisboa, 14 de Novembro de 2007
  • 2. Sinopse Cada vez mais o desenvolvimento de produtos inovadores tem de ser feito de forma rápida e envolvendo o desenvolvimento concorrente de todas suas componentes, e, muito em particular, do software que muitas vezes é o seu factor principal de diferenciação. As metodologias preconizadas pela engenharia de software clássica mostram-se demasiado inflexíveis para satisfazer os requisitos de agilidade que a inovação rápida de produtos intensivos em software exige. Nesta workshop iremos apresentar uma nova via, já utilizada internamente no nosso grupo na PT, baseada nos princípios por detrás do movimento pró agilidade de desenvolvimento de software e, em particular, aqueles defendidos pela metodologia Scrum hoje usada por empresas com ciclos rápidos de inovação como a Yahoo, a Google, a Nokia, etc
  • 4. Ao nível tecnológico, a “agilidade” no desenvolvimento de software já me acompanha há mais de 30 anos!
  • 5. “Old” Personal Foundations 1. Fui pioneiro (1977) na utilização de “programação orientada a objectos” na construção de todas as fases de um compilador. Introduzi a nível universitário (Eng.ª Informática) o ensino desta tecnologia de construção de compiladores. 2. Desenvolvi a primeira implementação de uma DDSL (Declarative Domain Specific Language) em Portugal (linguagem declarativa de especificação e simulação de múltiplas carreiras militares) utilizada pelo Departamento de Investigação Operacional do EMGFA para planear a reestruturação das carreiras militares no pós guerra colonial. Projecto que mereceu a uma carta de louvor do EMGFA (Chefe do Estado- Maior-General das Forças Armadas) em 1979 3. Desenvolvi a primeira aplicação “100% Orientada a Objectos” em Portugal (1979), integralmente desenvolvida em Simula 67.
  • 6. 1977 1977 The Xerox Star 9010 “Dandelion” Simula-67 Smalltalk 80
  • 7.
  • 8. … 1977 2001 1977 2001
  • 9. Como profissional a experiência confirmou-me vezes sem conta que…
  • 10. A A
  • 11. B B Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.
  • 12. C C A produtividade da maioria dos “knowledge workers” é significativamente reduzida por “problemas (GAP) de comunicação”…
  • 13. D D Esse “gap” de comunicação é sempre mais grave em ambientes em que o “objecto alvo” é de uma diferente cultura empresarial, evolui ou muda rapidamente Exemplo: ambientes com desenvolvimento rápido e concorrente de produtos inovadores
  • 14. The New New Product The New New Product Development Game Development Game Hirotaka Takeuchi and Ikujiro Nonaka Hirotaka Takeuchi and Ikujiro Nonaka Harvard Business Review Harvard Business Review January 1986 January 1986
  • 15.
  • 16. A forma como a Eng.ª Química lida com processos “instáveis”…
  • 17. Tal como eu, muitos estão convencidos que o rápido e concorrente desenvolvimento de produtos inovadores (mas não “life critical”) exige dos “Software Developers” métodos, técnicas e tecnologias mais ágeis…
  • 18. The Manifesto for Agile Software Development Kent Beck James Grenning Mike Beedle Jim Highsmith www.agilealliance.org Arie van Bennekum Andrew Hunt Alistair Cockburn Ron Jeffries Ward Cunningham Jon Kern Brian Marick Martin Fowler “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value”: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 21. SCRUM: Origem • “The New New Product Development Game” in Harvard Business Review, 1986. – “The… ‘relay race’ approach to product development…may conflict with the goals of maximum speed and flexibility. Instead a holistic or ‘rugby’ approach—where a team tries to go the distance as a unit, passing the ball back and forth—may better serve today’s competitive requirements.”
  • 22. SCRUM: Principais Características É um das principais metodologias pró agilidade Requer / necessita de equipas com “capacidade” de se auto organizarem Os seus “outputs” evoluem de forma incremental numa série de releases “mensais” Os requisitos são mantidos como elementos de uma lista que constitui o “product backlog” Não impõe nenhuma prática especial ao nível de engenharia de software mas o recurso competente a tecnologias ágeis ajuda ☺
  • 24. SCRUM “Master” Representa a “gestão” no projecto Tipicamente é um gestor sénior de projecto ou o chefe de equipa É responsável por garantir conformidade das práticas e valores do “Scrum” A sua principal tarefa é REMOVER OBSTÁCULOS
  • 25. SCRUM “Team” Tipicamente 5-10 pessoas Cross-functional – QA, Programadores, Designers de Interfaces, etc. Membros devem, em princípio, ser full-time ! As equipes devem ter capacidade para se auto- organizarem Alterações à estrutura da equipe só pode acontecer entre “sprints”
  • 26. SCRUM “Sprints” Os projectos Scrum avançam por séries discretas de “sprints” Semelhante às iterações do XP Normalmente a duração de um “sprint” deve ser de um mês (+/- uma semana ou duas) • Contudo, uma duração constante induz um melhor ritmo! O “produto” é concebido, desenhado, programado e testado durante o “sprint”
  • 27. SCRUM “No changes during Sprints” !!! A duração dos “sprints” deve ser planeada de forma a garantir evitar alterações a meio “TIME BOXED”
  • 28. SCRUM “Product Backlog” “A lista” com todas as “features” desejadas / requeridas Normalmente é uma combinação de… • story-based work (“let user search and replace”) • task-based work (“improve exception handling”) “A lista” é prioritizada pelo “Product Owner” Tipicamente o Gestor de Produto, Marketing, um responsável pelo negócio, etc. Normalmente não é um “informático”!
  • 29. SCRUM “No changes during Sprints”
  • 30. SCRUM: do “Sprint Goal” ao “Sprint Backlog” A equipa “Scrum” pega no “Sprint Goal” e decide que tarefas são necessárias para o concretizar A equipa auto-organiza-se à volta da forma como pretendem atingir o “Sprint Goal” Não é o Project Manager que paternalistamente atribui tarefas aos seus subordinados… Os “chefes hierárquicos” não impõem decisões à equipa O “Sprint Backlog” é criado
  • 31. SCRUM: Gestão do “Sprint Backlog” durante o “Sprint” Alterações ao “Sprint Backlog” – A equipa adiciona novas tarefas / acções sempre que delas precisem (e só nesse caso) para atingirem o “Sprint Goal” – A equipa pode e deve eliminar tarefas / acções desnecessárias – Mas…: Só a equipa pode alterar o “Sprint Backlog” Estimativas / projecções são actualizadas sempre que houver informação nova
  • 33. SCRUM: Daily Scrum Meetings Parâmetros – Diário – 15-minutos – Em pé ! – Não são para resolver problemas (“problem solving”) 3 simples perguntas a cada elemento: 1. O que é fizeste ontem? 2. O que vais fazer hoje? 3. Que obstáculos tens ao teu progresso? “Chickens” and “Pigs” are invited Evitar sempre outro tipo de convidados… Só os “Pigs” é que podem intervir. “Chickens” só observam ☺
  • 34. SCRUM: Sprint Review Meeting A equipa apresenta o que realizou no “Sprint” Tipicamente apresenta demonstrando a execução das novas “features” implementadas ou, por exemplo, algo que demonstre a arquitectura técnica Informal Com tempo mínimo de preparação (max. 2 ou 3 horas) Participantes “Clientes” do produto Gestão Product Owner Outros engenheiros / técnicos
  • 35. SCRUM
  • 37. SCRUM 1º 2º 3º (www.controlchaos.com)
  • 40. Fred Brooks versus Linus Torvalds