1. 1
Enterprise Agile
Hybrid of Methodologies
Maris Prabhakaran M
PMP,PMI-ACP,CSM,CSP,TOGAF9,PRINCE2 ,SPC,PMOC,ITIL,SCEA
2. 2
Why hybrid of Methodologies
Scrum + XP + Kanban
Lean + Agile Synergies
Appendix
Agenda
Lean + Agile
3. 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. 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. 5
Where Does Agile fit into an IT Organization
Storage
Mainframes
Servers
Middleware
IT 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
Infrastructure
and
Operations
Application
devp.&
maintenanceGovernance
and
Compliance
ITStrategy
formulation
Kanban + XP
+ Scrum
XP + Scrum
Lean + Scrum
Selecting Right tools to improve Enterprise Agility
IncreasingEnterpriseAgility
Lean + Scrum
7. 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 readiness
Agile Umbrella
Scrum simplified roles + XP Engineering Principles + Kanban board
KANBAN
8. 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. 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-functionalteam, 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
Optimal
use of
Resources
Efficiency
and
Capability,
Speed
Cycle Time
Cost
Quality
10. 10
Waste elimination using Agile
Waste Category Application to SW How Scrum/XP Resolves
Inventory Partially Done Work Shorter iteration cycles
Smaller 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. 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
14. 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
17. 17
ProductProduct
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
ScrumScrum
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
21. 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. 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
23. 23
23
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
25. 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. 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. 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
29. 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.