enterprise agile - hybrid of methods
DESCRIPTION
Presented in Agile Tour 2912TRANSCRIPT
1
Enterprise AgileHybrid of Methodologies
Maris Prabhakaran MPMP,PMI-ACP,CSM,CSP,TOGAF9,PRINCE2 ,SPC,PMOC,ITIL,SCEA
2
Why hybrid of Methodologies
Scrum + XP + Kanban
Lean + Agile Synergies
Appendix
Agenda
Lean + Agile
3
Why Hybrid of Methodologies
� Agile implementation is broadening from small development project to larger
projects and scale out to address entire value chain of the organisation.
� In fact Agile is going beyond systems development and address the alignment
between IT and business and the design and operation of entire Enterprise.
� One method will not fit the organisation
� Hybrid of methods are required Do not develop an attachment to
any one weapon or any one
school of fighting.
Miyamoto Musashi a
17th century Samurai
Twin sword
fighting technique
4
What Industry feels about Agile?
4
Are the agile teams distributed?
Reasons for adopting agile
Benefits realized from implementing Agile How many separate locations or sites are using Agile
89% of the surveyed said they saw ≥ 10% ‘Increased Productivity’
56% saw ≥ 25% ‘Increased Productivity”
Early Potentially Shippable product
5
Where Does Agile fit into an IT Organization
Storage
MainframesServers
MiddlewareIT Ops Mgmt Systems
Data Centers
End User
devices
Applications Tools
Projects
Firewall
Goal 1
Objective 1 Objective 2
Goal 2
Objective 3 Objective 4
Programs
Project 1 Project 2
Dashboards
Governance
councils
IT Demand
BU 1
GEO A
BU 2
GEO A
BU 3
GEO B
Infr
ast
ruct
ure
an
d
Op
era
tio
ns
Ap
pli
cati
on
d
ev
p. &
m
ain
ten
an
ceG
ov
ern
an
ce
an
d
Co
mp
lia
nce
IT S
tra
teg
y
form
ula
tio
n
Kanban + XP
+ Scrum
XP + Scrum
Lean + Scrum
Selecting Right tools to improve Enterprise Agility
Incr
ea
sin
g E
nte
rpri
se A
gil
ity
Lean + Scrum
6
GOVERNANCEDEMAND MEASUREMENT
DISTRIBUTIONWORKFLOW
Enterprise Transformation requires Hybrid of Agile
TOOLS CULTURE
Hybrid of Agile
ALIGNMENT
7
Hybrid of Scrum ,XP and Kanban
Agile Framework
+XPXPXPXPSCRUMSCRUMSCRUMSCRUM
� INVEST model to decompose optimal stories
� Story points to task estimation and Velocity
� Deliverables “doneness” criteria
� Vision process and themes approach
� Manage changes actively, using Product Backlog
� Test Driven Development – for quicker debugging
� Pair Programming – high quality code, collective ownership
� Code Refactoring –reduced technical debt
� Continuous Integration – lesser code breaks. painless releases
� Automated testing – test regression and release readinessAgile Umbrella
Scrum simplified roles + XP Engineering Principles + Kanban board
KANBAN
8
Lean + Agile
FLOW
Lean uses special principles & tools to map the value stream, optimize
flow, and remove waste, and solve problems.
Agile uses roles & practices to enable pull based & frequent delivery of
value, collaboration, & continuous improvement.
LEAN
AGILE
Any system is
only as efficient and
capable as the largest
constraint, at any given
time,
will allow.
WASTE
9
Agile Implements Lean Principles
Lean Agile/Scrum/XP
Capacity Planning (Queing Theory) Enterprise Backlogs, Product Backlogs, Prioritization based Biz Value, Release Planning,
Pull (Kanban) Prioritized backlog, Kanban (Scrum board) tracking/status, Feature focused, User Scenarios to Stories, Personas, Iterative and Incremental, User Acceptance Testing, Sprint Goals, Sprint Planning (only 1-2 iterations),
Takt Time (customer to customer) Backlog to Production measurement
Single Piece Flow Small stories, feature based/slicing and swarming, Iterative and Incremental
Waste Elimination Only develop stories that are actionable, only do what’s absolutely necessary, simplicity in all things, automation, excellence in engineering,
Lean Agile/Scrum/XP
Standardization Standard dev practices, framework usage, communications model
Value Threads Story Mapping from Roadmap to Release to MMF to Epic to Story
Automation Automated testing, Continuous Integration, Code Health, Easy Deploy
Line Stop (Jidoka, Poka Yoke, Andon) Refactor, Reuse, Big Visuals, Iterate, Incremental
Fail Fast Iterate, Inspect and Adapt, Retrospectives
No defects No defects, Definition of Done, Test Driven Development, Refactor, Shippable code
Lean Agile/Scrum/XP
Go See Yourself Customer close by, Prototypes, Iterative and Incremental, Early Deploy
Remove Waste Customer close, decisions at lowest level, good estimation, actionable user stories, no goldplating, team instead of cowboy, remove needless metrics, automation of almost all testing, no over-the-wall, biz/IT combined teams, simplify governance, daily standups
Workload Leveling, Concurrent Eng. Small stories, slicing and swarming, cross-functional team, daily standups
Quick Changeover Cross-functional team, simple and repeatable practices, no indiv. Code ownership, consistent build and deploy, team rotations, daily standups
Automation Automated test, integration, build, deploy tools, andon, communication
Orthogonal Arrays OATS Pairing with Dev and QA, Automation
Increased accessibility
to Value
Optimaluse of
Resources
Efficiency and
Capability,Speed
Cycle Time
Cost
Quality
10
Waste elimination using Agile
Waste Category Application to SW How Scrum/XP Resolves
Inventory Partially Done Work Shorter iteration cyclesSmaller inventory of detailed requirements – Product backlog with complete User Stories
Extra Processing Unnecessary docs Focus on the end product and less documentation, simplicity in code, automate everything possible
Over Production Extra Features Prioritization of product backlog helps to do away with nice to have features which are waste
Transportation Building the wrong thing Prioritized and actionable User Stories, Clear Acceptance Criteria, Customer/PO involvement, & Demos
Waiting Waiting for info, Handoffs Product owner exists and is engaged daily, cross functional teams with everyone included to deliver the Sprint, Pair programming
Motion Task Switching Slicing, Swarming, Use of DSM, Co-Located (or using W-GAME),
Defects Defects Definition of Done, TDD, Test first, Defects must be fixed during sprint
11
• Release Planning ensures that real customer needs are pursued.• Prioritized Backlogs ensure that the most important/valuable items are completed first, giving the most value the soonest.• Iterative and incremental sprint cycles ensure that changes can be made to move with the customer and only add what is valuable –removing waste due to delivering something not valuable.• Potentially Shippable Software is released every sprint enabling a clear and early value delivery to the customer. This increases ROI and reduces cost.
Value Flow
• Prioritized backlogs reduce investment on work that is not valuable.• Iterative and incremental cycles enables the business to cease work when enough value has been achieved, reducing wasted time spent creating lower value results.• Planning by sprints allows only the necessary amount of planning to be done, since the true outcome cannot be known until it is being delivered.• Only minimal documentation and other deliverables are created, reducing the wasted time in production, maintenance, and rework when poorly managed.
Eliminate Waste
• Daily scrums increase communication and ensure that the team can be proactive, changing as needed based on the conditions.• Retrospectives enable the teams to learn about one another, their work, and how to get better.• Frequently released software enables more frequent feedback from the customer, enabling more adaptive change to meet their needs.• Product Owners/Customers work directly with the creators of value, providing direct feedback about the outcome.
Increase Feedback
• Iterative and incremental work periods enable the results to be delivered as soon as they are good enough.• Two – Four week iterations is enough time to get work done, but not enough to waste, which ensures that people work to reduce wasted time.• Definition of Done ensures that as the work products are being created, they are completely ready for customers. • Inspect and Adapt allows the organization to change course and still produce results in much less timeframe than normal.
Deliver Fast
• Test Driven Development helps ensure that the software is built to achieve the criteria designed for it.• Testing happens at the beginning, not at the end of development process ensuring that higher quality can be achieved.• Definition of Done specifies specifically all the steps that must be taken to release the software, not just the coding of the software.• Enhanced roles in Scrum/XP ensure that everyone is concerned about and takes ownership of quality. The ScrumMaster helps ensure impediments are removed, thus enabling clearer understanding of the work and higher quality.
Build Integrity In
• Teams are cross-functional, enabling a multi-faceted look at problems and opportunities, ensuring that many angles are thought about during creation – the cheapest time in the lifecycle for fixing errors.• Development selecting items from the backlog to work from• Selection of work Vs assignment of tasks• Product owners working directly with the team reduce wasted due to time delays in communication.
Empower The Team
• Delay requirements that are architecturally not significant till the last responsible moment (AS Late As Possible)
Delay Commitment• Product Owner/Customer collaboration ensures that only what is needed is produced, at the right quality, and in the right time. • Demos show value to the customer early.• The ScrumMaster helps remove impediments in and outside of the team.
Resolve Constraints• Release plan provides the end to end view at a high level• Break functionality into vertical slices to get a end to end view
See the Whole
Lean & Agile Synergies
DSM
VOICE OF THE CUSTOMER
INCREASE FEEDACK
5S
AUTOMATION
VALUE STREAM MAPPING
ANDON VISUAL CONTROL
QUALITY FUNCT. DEPLOYMENT
ROOT CAUSE ANALYSIS
SIPOC ANALYSIS
KANBAN BOARD
CUSTOMER PULL
THEORY OF CONSTRAINTS
KAIZEN
LEAN AGILE FRAMEWORK LEAN TOOLS
13
Appendix
14
Why Lean Agile?
• Better Return on Investment (ROI)
• Short releases will make the product available with high business value features early in the cycle
• Faster Time to Market enables earlier earning and learning
• Doing most important work quickly results in delivery of real customer value
• Productivity and code quality improvements
• Continuous attention to technical simplicity (just-enough/right-size)
• Defect prevention rather than defect verification through practices like continuous integration and Acceptance tests
• High test-coverage – great impact on code quality
• Increasing Probability of Success through close collaboration and reduction of risk
• Business and the IT team collaborate through out the development cycle through creation of requirements, Iteration
Planning, Demo etc
• High technical risk and high business value requirements are implemented early in the cycle
• Flexibility of implementation of requirements
• Iterative delivery of the requirements
• Re-prioritization of requirements is possible at the end of each Iteration
• Better management and Reduction of requirement volatility
• Iterative and Incremental approach with the prioritized backlog of requirements
• Better understanding of requirements by having acceptance tests within it
• Better management of Project Schedule and Cost
• Iterative and Incremental approach with the prioritized backlog of requirements
• Burndowns for Releases and Iterations/Sprint create transparency
• Higher quality due to continuous integration reduces cost of late stage defect rework
15
SCRUM
16
How Scrum works
17
Product Product Owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as needed
• Accept or reject work results
Scrum Scrum Master
• Represents management to the project
• Responsible for enacting Scrum values and practices
• Removes impediments
• Ensure that the team is fully functional and productive
• Enable close cooperation across all roles and functions
Team
• Typically 5-9 people• Cross-functional:• Programmers, testers, user experience designers, etc.• Teams are self-organizing
How Scrum works
18
How scrum works
19
• Reports
Scrum Artifacts
20
XP
21
Essence of XP (eXtreme Programming )
21
• eXtreme Programming is a discipline of software development based on values of simplicity,
communication, feedback, and courage. It works by bringing the whole team together in the presence
of simple practices, with enough feedback to enable the team to see where they are and to tune the
practices to their unique situation.
• It is distinguished from other methodologies by :
• Its early, concrete, and continuing feedback from short cycles.
• Its incremental planning approach, which quickly comes up with an overall plan that is expected to evolve
through the life of the project.
• Its ability to flexibly schedule the implementation of functionality, responding to changing business needs.
• Automated tests written by programmers and customers to monitor the progress of development, to allow
the system to evolve, and to catch defects early.
• Oral communication, tests, and source code to communicate system structure and intent.
• Evolutionary design process that lasts as long as the system lasts.
• Close collaboration of programmers
22
XP - Why is it called eXtreme Programming?
22
Taken known best practices to eXtreme levels
• If code reviews are good, we will review the code all the time
• If testing is good, everybody will test all the time
• If design is good, we will make it part of everyone’s daily business
• If simplicity is good, we will leave the system with the simplest design that supports current
functionality
• If integration testing is important, then we will integrate and test several times a day
• If short Iterations are good, we will make the Iterations very short
2323
Communication
Communication builds a thread of trust
at all levels (customer, end users,
developers, QA) and it improves the
collaboration among the project
stakeholders.
Simplicity
Simplicity stresses to build system in
such a way that is enough to meet the
requirements that are available today.
Feedback
Feedback highlights the opportunities
for improvement. Feedback from
customer and peers plays important
role in refining the system under
development.
Courage
Courage breaks the cultural barriers and
enables higher communication with
constructive feedback. Courage builds
ground for feedback giving and receiving.
Respect
Team members should not feel
unappreciated or ignored. This ensures
high level of motivation and
encourages loyalty toward the team,
and the goal of the project
Values of XP
24
Process Flow for XP
24
25
XP (eXtreme Programming) Practices
25
1. Planning game - Programmers estimate effort of implementing customer stories and
customer decides about scope and timing of releases
2. Metaphor - Guides all development with a simple shared story of how the whole system
works
3. Simple design - The system should be designed as simple as possible at any given moment
4. Test First - Programmers continually write unit tests, which must run flawlessly for
development to continue
26
XP (eXtreme Programming) Practices
26
5. Refactoring - As programmers add new features to the project, the design may start to get messy. If this continues, the design will deteriorate
6. Short/Small releases - Programmers build the system in small releases defined. A Iteration is typically for about two weeks
7. Pair Programming - All production code is written with two programmers at one machine
8. Continuous Integration - Integrate and build the system many times a day, every time a task is completed. New builds as soon as code ready
27
XP (eXtreme Programming) Practices
27
9. Collective ownership - The team owns the code. Programmer pairs modify any piece
of code they need to
10. On-site customer - Include a real, live user on the team, available full-time to answer
questions. customer present and available full-time for team
11. 40 hour week - Work no more than 40 hours a week as a rule. Never work overtime a
second week in a row. maximum 40-hour week
12. Coding standards — Programmers write all code in accordance with rules emphasizing
communication through the code
28
KANBAN
29
KANBAN
29
• Visualize the workflow
• o Split the work into pieces, write each item on a card and
• put on the wall.
• o Use named columns to illustrate where each item is in
• the workflow.
• • Limit Work In Progress (WIP) – assign explicit limits to how
• many items may be in progress at each workflow state.
• Measure the lead time (average time to complete one item,
• sometimes called “cycle time”), optimize the process to make
• lead time as small and predictable as possible.