“como escalar práticas Ágeis em equipes de desenvolvimento médias e grandes”
DESCRIPTION
Este é o material da palestra “Como Escalar Práticas Ágeis em Equipes de Desenvolvimento Médias e Grandes” realizada no dia 11 de junho de 2013, na FESP em Curitiba. O objetivo foi fornecer uma visão da abordagem disciplinada para práticas ágeis: Disciplined Agile Delivery dentro de um contexto de técnicas de desenvolvimento ágil como Scrum e Lean, introduzindo o conceito de Agility@Scale© que prevê a adoção das práticas ágeis de uma forma escalável de acordo com as necessidades da organização.TRANSCRIPT
®
IBM Software Group
© 2013 IBM Corporation
Como Escalar Práticas Ágeis em Equipes de Desenvolvimento Médias e Grandes
Andrea Rodacki
Siga-me no Twitter e LinkedIn (arodacki)
IBM Software Group | Rational software
Innovation for a smarter planet
A Fábula dos Lenhadores
2
https://www.ibm.com/developerworks/community/blogs/rationalbrasil/entry/a_f_c3_a1bula_dos_lenhadores10?lang=em
IBM Software Group | Rational software
Innovation for a smarter planet
Base do Desenvolvimento de Software
3
PessoasProcessos
Ferramentas
IBM Software Group | Rational software
Innovation for a smarter planet
What is agile?
Agile is a highly collaborative, evolutionary, quality focused
approach to software development.
IBM Software Group | Rational software
Innovation for a smarter planet 5
Agile values
WorkingSoftwareWorkingSoftware
Individuals InteractionsIndividuals Interactions
CustomerCollaboration
CustomerCollaboration
Source: www.agilemanifesto.org
ComprehensiveDocumentationComprehensiveDocumentation
Processes and ToolsProcesses and Tools
Following a Plan
Following a Plan
ContractNegotiation
ContractNegotiation
overWe value
While there is value in the items on the right, we value the items on the left more.
Responding to Change
Responding to Change
IBM Software Group | Rational software
Innovation for a smarter planet
Waterfall X Agile
6
IBM Software Group | Rational software
Innovation for a smarter planet
Why Agile Rocks (1/2)
� Speed to market�Agile lets you get your concept to your users as quickly as possible. During every
sprint an agile project delivers something of value. At any point, you may determine you want to launch what has been delivered and start building a user base or testing your hypothesis.
� Flexible�Agile is based on accommodating change. Software projects consistently change. As a
product comes to life or the market expands, you should be able to react and update the product accordingly. Agile also realizes that great ideas are bound to come mid-project and being locked into a scope doesn’t let you take advantage of these realizations.
� Risk Management� Incremental releases means that the product can be used early in the process by
stakeholders and users. This lets you identify issues and feature deficits early in the process. Being adaptable to change means it isn’t a problem to change the scope midway through the project, something that would be impossible in a waterfall style project.
7
IBM Software Group | Rational software
Innovation for a smarter planet
Why Agile Rocks (2/2)� Cost Control
�Unlike a fixed budget project, agile is flexible with regard to scope. More often than not, our clients realize features they originally requested are no longer necessary. This allows them to launch sooner and pay less. Agile isn’t about paying a lot with uncertainty, it’s about paying for only what you need. Need to stick within a budget? No problem! We can rearrange the product backlog so that critical new features are implemented at the expense of less important features, not your budget.
� Quality�Agile integrates testing throughout the process. Consistently delivering tested software
means higher overall quality and less time spent on QAing the full application.
� Right Product� Incremental releases let you test your product early and often. Even if you don’t release it
to the public, it’s much easier to locate flaws and things that can be improved when you have an actual product to play with vs a series of designs.
� Transparency�Agile lets you see, feel and use a project consistently throughout the project. You don’t
see things in compartmentalized silos; you see how things work together.
8
IBM Software Group | Rational software
Innovation for a smarter planet
Os Diversos “Sabores” Ágeis
9
IBM Software Group | Rational software
Innovation for a smarter planet
Agile Umbrella
10
LEAN
Agile Modeling (AM) OpenUP
Agile Data (AD)
IBM Software Group | Rational software
Innovation for a smarter planet 11
IBM Software Group | Rational software
Innovation for a smarter planet
Is it enough?
� It works for small, collocated teams, but does it work for bigger, geographically distributed teams?
� Does it work for outsourcing scenarios?
� Does it work in highly regulated or complex business domains (e.g., financial, medical, air traffic control, ..)?
� Does it work for enterprise aware organizations?
� Does it cover the entire delivery lifecycle?
12
IBM Software Group | Rational software
Innovation for a smarter planet 13
Agile Scaling Model (ASM)
Core Agile Development� Focus is on construction� Goal is to develop a high-quality system in an evolutionary,
collaborative, and self-organizing manner� Value-driven lifecycle with regular production of working
software� Small, co-located team developing straightforward software
Disciplined Agile Delivery� Extends agile development to address full system lifecycle� Risk and value-driven lifecycle� Self organization within an appropriate governance
framework� Small, co-located team delivering a straightforward solution
Agility at Scale
� Disciplined agile delivery and one or more scaling factors applies
IBM Software Group | Rational software
Innovation for a smarter planet
Agile Scaling Model (ASM) – simplified view
14
Core Agile Development
Disciplined Agile Delivery
Agility at Scale
Core Agile Development
� Value driven lifecycle
� Self organizing teams
� Focus on construction
Disciplined Agile Delivery
� Risk + value driven lifecycle
� Self organizing within appropriate governance framework
� Full delivery lifecycle
Agility at ScaleDAD when one or more scaling factors apply:
� Large team size
� Geographic distribution
� Regulatory compliance
� Domain complexity
� Organization distribution
� Technical complexity
� Organizational complexity
� Enterprise discipline
IBM Software Group | Rational software
Innovation for a smarter planet
What is disciplined agile delivery?
15
“The Disciplined Agile Delivery (DAD) process framework is a people-first, learning-orientedhybrid agile approach to IT solution delivery. It
has a risk-value life cycle, is goal-driven, and is enterprise aware.”
DAD is NOT prescriptive nor a “one sizefits all” approach
IBM Software Group | Rational software
Innovation for a smarter planet
Agile e Lean
16
• Agile – Entregue VALOR– Uma abordagem que foca em entregar elementos de valor para o
cliente– Evite tudo que não traz valor– Descrença em planos detalhados logo no início do projeto
• Lean – Evite DESPERDÍCIO– Inicialmente, uma iniciativa gerencial para agilizar
a produção– Elimine todos os desperdícios– Inventário reduzido
http://www.rallydev.com/community/agile-blog/agile-and-lean-software-development---oxymoron
IBM Software Group | Rational software
Innovation for a smarter planet
Disciplined Agile Delivery (DAD): A Hybrid Framework
Unified Process
(UP)
Extreme
Programming (XP)
ScrumAgile
Modeling
Disciplined Agile
Delivery (DAD)
DAD is a hybrid process framework adopt best practices
and philosophies from several methodologies
IBM Software Group | Rational software
Innovation for a smarter planet
DAD & AM, UP, AD� Agile Modeling (AM)
�DAD models its documentation practices after requirements envisioning, architecture envisioning, iteration modeling, continuous documentation, and just-in-time (JIT) model storming.
� Unified Process (UP)�DAD adopts several governance strategies from UP: having lightweight
milestones and explicit phases and focusing on the importance of proving out the architecture in the early iterations and reducing all types of risk early in the life cycle.
� Agile Data (AD) �DAD adopts several agile database practices from AD: database refactoring,
database test-in, and agile data modeling. It is also an important source of agile enterprise strategies, such as how agile teams can work effectively with enterprise architects and enterprise data administrators.
18
IBM Software Group | Rational software
Innovation for a smarter planet
DAD e Extreme Programming
19
DAD XP
Abordagem gerencial Técnicas de engenharia
Foco no ciclo de vida e nos objetivos
Foco nas práticas
Inclui princípios do XP(CI, refactoring, TDD, collective ownership)
Primeira abordagem ágil a ganhar espaço
Abrange todo o ciclo de vida Foco na construção
IBM Software Group | Rational software
Innovation for a smarter planet
DAD e Kanban
20
DAD Kanban
Agrega práticas de diversos processos ágeis
Poucos princípios/objetivos/práticas
Fala especificamente de governança
Depende de governança adequada a Kanban
Framework de processo específico para desenvolvimento de software
Abordagem evolutiva de melhoria de processos
Práticas definidas Kaizen
DAD adopts two critical concepts from Kanban: limiting work in progress and visualizing work.
IBM Software Group | Rational software
Innovation for a smarter planet
DAD e SCRUM
21
DAD Scrum
Ciclo de vida completo Focado em construção
Enterprise aware No vácuo
Arquitetura como mitigadora de riscos
Arquitetura emergente
Implantação evolutiva Implantação monolítica (mais ou menos...)
? Evangelistas revolucionários
IBM Software Group | Rational software
Innovation for a smarter planet
The Scrum construction lifecycle
Operate inProduction?
EnterpriseDisciplines?
ProjectSelection?
IBM Software Group | Rational software
Innovation for a smarter planet
The Disciplined Agile Delivery (DAD) life cycle
Operate inProduction
EnterpriseDisciplines
ProjectSelection
IBM Software Group | Rational software
Innovation for a smarter planet
Agile Scaling Factors
� Checklist of issues that you should consider and will affect
significantly your project
� Not every project team faces all of these scaling factors, nor do
they face each scaling factor to the same extent
� These issues add complexity to your situation and you must find
strategies to overcome these challenges
IBM Software Group | Rational software
Innovation for a smarter planet
Agile scaling factors
Domain Complexity
Straight-forward
Intricate,emerging
Compliance requirement
Low risk Critical,audited
Team size
Under 10developers
1000’s ofdevelopers
Co-located
Geographical distribution
Global
Enterprise discipline
Projectfocus
Enterprisefocus
Technical complexity
HomogenousHeterogeneous,
legacy
Organization distribution(outsourcing, partnerships)
Collaborative Contractual
Disciplined Agile
Delivery
Flexible Rigid
Organizational complexity
IBM Software Group | Rational software
Innovation for a smarter planet
How IBM saved $300 million by going agile
“Who Says Elephants Can’t Dance” is the title of former IBM CEO Lou Gerstner’s
book on IBM’s dramatic transformation in the 1990s.
Sure, everyone used to think of IBM as the “elephant” (large and powerful, but also
sluggish and slow) of the computing industry.
But as software gained a larger share of IBM’s focus, the business became much
more agile, capable of growing along with the expanding ecosystems of the Internet
and worldwide commerce.
I think the SWG move to agile methods makes a nice addendum to that ongoing
success story!
Gina Poole
VP of Marketing, IBM Rational
26ASSISTA O VIDEO EM http://bit.ly/IBM-agile-legendado
IBM Software Group | Rational software
Innovation for a smarter planet
Esclarecendo alguns mitos sobre Ágil
27
� Equipes ágeis escrevem documentação
� Equipes ágeis fazem modelagem
� Equipes ágeis (e não só gerentes) planejam tanto quanto equipes tradicionais (just-in-time) ou mais
� Projetos ágeis são mais previsíveis do que projetos tradicionais
� Ágil escala
� Ágil não é moda, nem revolução do proletariado
� Ágil pode trabalhar com projetos de preço fixo
� Ágil está sendo usado “criativamente”
IBM Software Group | Rational software
Innovation for a smarter planet
Conclusion
� There is more to agile than software development
� Disciplined Agile Delivery (DAD) is a hybrid process framework adopt context-driven practices and philosophies from several methodologies
�Full lifecycle
� Includes supporting practices
�Focused on solutions, not just software
�Self organizing with appropriate governance
� First step to scaling agile is to have a viable delivery process
IBM Software Group | Rational software
Innovation for a smarter planet
DAD - Disciplined Agile Delivery
� Released June 2012
� Discount code: IBM0135 for 35% off!
29
IBM Software Group | Rational software
Innovation for a smarter planet
� www.iset.srv.br/iset/curso_agil.html
� 80 horas (sábados: 9h às 12h e 13h às 18h)
� Início 3/ago - Fim 19/out
� Módulos:�O Desenvolvimento Ágil – 24 horas/aulas
�Desenvolvendo Software com IBM Rational Team Concert – 8 horas/aulas
� Iniciando um Projeto Ágil com IBM Rational Team Concert – 24 horas/aulas
�Simular um Projeto Ágil no IBM Rational Team Concert – 24 horas/aulas
� Material oficial IBM
� Prova de Certificação IBM/Prometric
"Test 53: Rational Team Concert V3"
incluída no valor do curso
CURSODESENVOLVIMENTO ÁGIL E COLABORATIVO COM CERTIFICAÇÃO IBM RATIONAL TEAM CONCERT
30
IBM Software Group | Rational software
Innovation for a smarter planet 31
Siga-me no Twitter e LinkedIn (arodacki)
IBM Software Group | Rational software
Innovation for a smarter planet
Referências (1/2)� Canal IBM Rational Brasil no YouTube bit.ly/RationalBrasil-YouTube
� Canal Plafaforma Jazz no YouTube bit.ly/PlataformaJazz-YouTube
� Blog da Rational Brasil - O Mundo depende de software ibm.co/blogRationalBrasil
� Grupo Rational Brasil no LinkedIn http://www.linkedin.com/groups/Rational-Brasil-3679473?trk=myg_ugrp_ovr
� Livro Agile for Dummies http://www-01.ibm.com/software/rational/agile/
� DAD – Discipline Agile Delivery�Pagina principal http://disciplinedagiledelivery.wordpress.com/introduction-to-dad/
�Blog https://www.ibm.com/developerworks/mydeveloperworks/blogs/ambler/entry/disciplined_agile_delivery_dad_lifecycle14?lang=en
�Paper http://public.dhe.ibm.com/common/ssi/ecm/en/raw14261usen/RAW14261USEN.PDF
�Process Templates for use with Rational Team Concert http://www-01.ibm.com/support/docview.wss?uid=swg24028581
�Certificações http://disciplinedagileconsortium.org/directory
32
IBM Software Group | Rational software
Innovation for a smarter planet
Referências (2/2)� Rational Team Concert
�Conheça a Solução Rational Team Concert: http://www.youtube.com/watch?v=dg9e4mk6nGs
�Rational Team Concert e Plataforma Jazz https://jazz.net/products/rational-team-concert/
�Vídeo de Instalação do RTC http://www.youtube.com/watch?v=VNJUi6PYSIQ
�Webcast Replay (em português): Desenvolvimento Ágil e Rational Team Concert https://www.ibm.com/developerworks/mydeveloperworks/blogs/rationalbrasil/entry/webcast_replay_desenvolvimento__c3_a1gil_e_rational_team_concert3?lang=en ou http://www.youtube.com/watch?v=tJZvDPqocpw
�SCRUM no RTC http://www.ibm.com/developerworks/rational/library/scrum-methods-rational-team-concert-v4-1/ e http://www.ibm.com/developerworks/rational/library/scrum-methods-rational-team-concert-v4-2/
�Recursos Técnicos http://www.ibm.com/developerworks/rational/products/rtc/
� Sandboxes: Try now in a web-based trial environment https://jazz.net/products/sandbox/
33
IBM Software Group | Rational software
Innovation for a smarter planet
© Copyright IBM Corporation 2010. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way.IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
www.ibm.com/rational/agile/www.jazz.net
Siga-me no Twitter e LinkedIn (arodacki)
IBM Software Group | Rational software
Innovation for a smarter planet
BACKUP
35
IBM Software Group | Rational software
Innovation for a smarter planet 36
Agile principles1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity – the art of maximizing the amount of work not done – is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Source: www.agilemanifesto.org/principles.html
IBM Software Group | Rational software
Innovation for a smarter planet
Agile X Traditional Waterfall
37
IBM Software Group | Rational software
Innovation for a smarter planet
Criteria to determine if a team is agile
38
1. Working software• Agile teams produce working software on a regular basis, typically in the
context of short, stable, time-boxed iterations.
2. Active stakeholder participation• Agile teams work closely with their stakeholders, ideally on a daily basis.
3. Regression testing• Agile teams do, at a minimum, continuous developer regression testing.
Disciplined agile teams take a Test-Driven Development (TDD) approach.
4. Organization • Agile teams are self-organizing, and disciplined agile teams work within an
appropriate governance framework at a sustainable pace. Agile teams are also cross-functional “whole teams,” with enough people with the appropriate skills to address the goals of the team.
5. Improvement• Agile teams regularly reflect on, and disciplined teams also measure, how they
work together and then act to improve on their findings in a timely manner.