Presentation by lavika upadhyay
Transcript of Presentation by lavika upadhyay
SAFE - The Quantitative way of achieving Process Excellence
1
SAFE - The Quantitative way of achieving Process Excellence
SAFE - The Quantitative way of achieving Process Excellence
Paper Abstract ID: PMI-TAG-14-2-209
Authors:
Lavika Upadhyay ([email protected])
Sumedh Yeolekar ([email protected])
Delivery Assurance Group, Cognizant Technology Solutions, India
Office Address:Plot No 26/27 Rajiv Gandhi Infotech Park, MIDC Hinjewadi, Pune IT Park, Pune - 411020.
Paper submitted for
The PMI Project Management National Conference 2014
2
Mantra for Process Excellence
Lavika UpadhyayQuality AnalystCognizant
SAFE - The Quantitative way of achieving Process Excellence
Abstract
Two critical aspects of software system are structure and behavior. Structure describes basic functionality
of software components and behavior describes feature that deliver end user benefit. While agile
development supports both structure and feature based development thereby ensuring on time delivery,
high product quality, improved productivity and employee collaboration, the key challenges in adapting
agile development are: dependencies on external Vendors/organizations that are using waterfall and
Internal culture that requires time to shift to an agile mindset both in terms of people and process and
management feel that they will lose control assuming less planning, discipline and no documentation.
SAFE Agile are specially organized to meet both of these aspects to exhibit highest velocity of value
delivered in short term. This paper describes how a balanced mixture of agile development and Lean
concept enables team to eliminate delay, defects, and variance within business process. The integration
of Agile and Lean Six Sigma is a natural fit. This integrated approach will better define ways to
accomplish product development with transparency, predictability and reliability resulting in Business
Excellence.
Introduction
Agile and Waterfall are two distinct methods of software development. The waterfall model is a sequential
software development process which flows steadily downwards with assumption that the requirements
are available at the start of a project.
In reality, business conditions and requirements change, and generally the business is not particularly
good at requirements definition. The final product is available to business only during verification phase.
Unlike the waterfall approach, the agile development method is based on iterative and incremental
development. Documentation is minimal and customer feedback occurs simultaneously with
development.
Agile offer undeniable benefits: faster time to market, better responsiveness to changing customer
requirements, and higher quality. However, agile practices have been defined and recommended
3
SAFE - The Quantitative way of achieving Process Excellence
primarily to small teams here where SAFe comes to picture. SAFE is a framework which scales
Agilemethodology to meet needs of project execution at enterprise level.
Necessity of Transition: Waterfall to Agile
To overcome the limitations of Waterfall Model, it is necessary to adapt AGILE development to achieve
faster time to market and cope up with rapidly changing requirements.
As mentioned in Figure1, Agile methodology is Value/Vision driven and estimation is done based on the
features to be developed as part of iterations.
Figure 1
Four broad success factors in order to do successful transition
4
SAFE - The Quantitative way of achieving Process Excellence
What is AGILE?
Agile is a time boxed, iterative approach to
software delivery that builds software
incrementally from the start of the project,
instead of trying to deliver it all at once near the
end.
It works by breaking projects down into little bits
of user functionality called user stories,
prioritizing them, and then continuously
delivering them in short two/three week cycles
called iterations.
Bring Agility and Accuracy by integrating Agile and Lean
Agile teams thrive on spotting and removing problems, constraints and waste, they are well prepared for
using DMAIC thinking and tools. While they may not conduct full DMAIC projects, they can use tools such
as causal analysis, mistake proofing and ongoing process controls. Here is a look into some tools of Six
Sigma and how they can be used in Agile software projects
Define:
In an Agile software project, the problem of being disconnected from the customer is largely removed by
having a product master resent at team meetings. However, in a complex project in a large organization,
5
Techology: The tool to be used to
deliver solution like XP,Rally 2.
People:Organization’s employees are responsible for implementing
Agile.Hence people should be enthusiastic
and support team work
Organizational Design:
It refers to organizational and
physical architecture .If
resources are located at remote location then implementing Agile is a challenge
Leadership: Leadership should
actively sponsor and support the transition
efforts
SAFE - The Quantitative way of achieving Process Excellence
it is possible to have many direct and indirect customers, making it impractical to get everyone in a room
for the sprint review meeting. Using VOC ahead of time to prepare for the sprint review meeting will help
make the meeting much more effective
Steps to collect VOC before Scrum Sprint Review:
1. Identify all direct and indirect stakeholders for the upcoming sprint
2. Prepare targeted questionnaires for each user
3. Collect answers for the questions through direct conversation, email, etc.
4. Review any existing forms, issue log, etc. to identify customer pain points
5. Prepare for the sprint review meeting with additional knowledge of all customer needs
Measure:
After receiving requirements from customer critical-to-quality (CTQ) tree helps in translating customer
requirements into measurable characteristics. A CTQ tree takes customer requirements expressed in
non-product terms and extrapolates specific features that can be developed. This can be a useful
exercise in a sprint review meeting. It allows the team, along with the product owner, to brainstorm a
solution from a requirement often expressed in a generalized way
Analyze:
After having information about what is important to address (determined in Define Phase through
VOC) and translating customer requirements into measurable characteristics (Measure), it is time to
prioritize what will be delivered and when. This is the crux of the Scrum product backlog and
planning for a sprint.
The matching of those features or requirements with a sprint and an Agile team still calls for some
estimation using past data regarding team capability (speed and accomplishments of recent sprints).
Attention to measurements and learning from patterns in past sprints are very important to Agile
teams.
Improve & Control:
Agile projects are fundamentally iterative projects that focus on building incremental code complete
in all respects in every iteration. A design decision made in one iteration – based on the
requirements as understood up to that point – may become a risk for a subsequent iteration as new
requirements are gathered.
6
SAFE - The Quantitative way of achieving Process Excellence
By maintaining a FMEA design and evaluating it in each iteration, the development team will be able
to ensure that many potential failure points are analyzed ahead of time. Team can evaluate the
defect, impact on the project, the possibility of occurrence and the risk. This can lead to a cost-
benefit discussion with the customer and potentially avoid costly implementations with little value.
OPE can be maintained and analyzed during retrospection meeting which will help the team to
identify efforts spent on core, non-core and non-value added activities. This will enable them to
focus more on value add activities resulting in further cost saving and productivity improvement,
Benefits by implementing Lean in Agile Projects
#1: Customer and Vendor tightly coupled:
Agile methodologies combined with Lean principles demands vendor to work closely with Business Users.
Voice of Customer is converted to CTQ and the same is verified during review/demo, hence end product
is a lot more likely to meet users’ real needs.
#2: Risks are uncovered and mitigated on time:
Lean software development enhances problem solving attitude and Agile promotes Time box activities
which will help developers to anticipate issues/risks that otherwise could be detected only a few days prior
to final product deployment.This way problem, issues and risks will not have major impact as they would if
accumulated until the end of the project - when a solution may even be impossible to find and which will
also reduce reprioritization of story points
#3: More Value Sooner:
The combination of Lean and Agile will help the team to deliver most prioritized features decided by
business within stipulated time by removing waste and unwanted activities which reduces pressure of
delivery by 2/3 weeks.
#4: Confidence booster:
One of the advantages of combining Lean to Agile is that the team constantly identifies opportunities for
improvement that they can implement themselves that allows talented and intrinsically motivated people
to shine.
7
SAFE - The Quantitative way of achieving Process Excellence
Constraints:
Agile development practices offer undeniable benefits: faster time to market, better responsiveness to
changing customer requirements, and higher quality. However, agile practices have been defined and
recommended primarily to small teams. Solution to this is to use Scaled Agile Framework which is a
combination of Agile and Lean. Subsequent section of the paper describes how Agile can be scaled at
enterprise level.
SAFe framework
The Scaled Agile Framework provides a recipe for adopting Agile at enterprise scale.SAFe tackles the
tough issues – architecture, integration, funding, governance and roles at scale.There are three levels in
SAFe: A. Team B. Program C. Portfolio
The Team Layer
At the Team level, SAFe recommends use of Scrum plus eXtreme Programming technical practices to
ensure high quality.
Primary responsibilities –
Each Agile Team has a Product owner and Scrum Master and works in Sprints to deliver new
architecture and User Story functionality.
In addition Agile Teams collaborate in Release Train Planning and each has its own Team
Backlog and PSI Objectives.
8
SAFE - The Quantitative way of achieving Process Excellence
In the SAFe framework are mandated common cadence (all teams within a Program work on the
same 2 week sprint/iteration cycle) and the “Hardening, Innovation and Planning” or HIP sprint
which occurs every 5 Iterations.
The HIP sprint serves several purposes, but primarily aims to provide a bit of a breather for teams
(supporting sustainable pace), permits teams to work on the stories that they believe will add
most value to the platform and provides time for participation in planning for the next release.
Roles at the Team Layer:
Product Owner -The Product Owner is the member of the team responsible for both
defining and prioritizing the Team Backlog
Scrum/Agile Master – Assures that the team follows the rules of Scrum/Agile by :
1. Facilitating the team’s progress toward the goal
2. Leading the team’s efforts in continuous improvement
3. Enforcing the rules of the Agile process
4. Eliminating impediments
Developers and Testers- Everybody tests. Everybody codes.
Program Layer
9
SAFE - The Quantitative way of achieving Process Excellence
The Program level provides the essential glue to ensure that the work of the Agile teams is aligned with
the organization’s strategic Vision and Roadmap for each Investment Theme.
Primary responsibilities –
Program level Product and Release Management is designed to help prevent the work of
multiple Agile teams becoming mis-aligned and difficult to integrate.
At the Program level business and architectural Features are defined and ordered in a
Programmed Backlog.
Release ‘Train’ Planning is performed by teams together on a regular basis, typically every 2-3
months. Potential Shippable Increments (PSIs) of business functionality are used for planning
with Hardening/Innovation/Planning Sprints used as necessary to ensure delivery on demand.
The evolving architecture necessary to support new business functionality is also planned and
developed ahead of the business functionality as an Architecture ‘Runway’ that it can ‘land’ on.
In addition a System Team is often established to create initial infrastructure and then support
and share the Agile teams’ system-level continuous integration and end-to-end testing efforts
Roles at the Program Layer:
Product Manager -The product manager at the program level is analogous to the
product owner at the team level. They have content authority over the program
backlog – deciding and prioritizing what the system will do.
System Architect - The system architect has design authority. There are
architecture-specific backlog items that find their way into the program level
backlog.
Validate user experience via user testing ; Assist in UX system testing ; Share UX
guidelines and best practices across trains ;Participate in program and team level
planning and demos
The Release Train Engineer acts as a Uber-Scrum Master at the program level :
Assist program execution and tracking ; Coordinate all of the train activities
Escalates impediments and helps manage risk; Drives program-level continuous
improvement
Agile Release Trains –These are self-organizing teams of agile teams, reliably
and frequently delivering enterprise value.
Release Management Team - Responsible for scheduling, managing and
governing synchronized release
DevOps Team -Development departments are driven by user needs for frequent
delivery of new features, Operations departments focus more on
10
SAFE - The Quantitative way of achieving Process Excellence
availability, stability of IT services and IT cost efficiency.
These two contradicting goals create a “gap” between Development and IT
Operations, which slows down IT’s delivery of business value DevOps team is to
fix this situation
System Team -Team is responsible for building the development infrastructure
and managing development environments. The System team stages the system
sprint demo which is a compilation of Team efforts and assists with test
automation and continuous integration
11
SAFE - The Quantitative way of achieving Process Excellence
The Portfolio Layer
At the top level in SAFe the Portfolio Management function turns the organization’s strategy into a set of
investment themes, typically for the next 6-12 months. Business and Architectural Epics to support each
Investment Theme are defined on a Portfolio Backlog of large scale development Programs which will
span multiple releases. A Kanban-based pull system is used to manage the flow of epics and ensure that
the economic basis for decision making is quantitative and transparent.
Primary responsibilities-
Need to identify Value Streams that can be initiated as programs for delivery by Agile Release
Trains
Manage the funding of the Release Trains to keep them on the rails
Responsible for definition and management of Business and Architectural Epics that run across
value streams and need to be managed at the Portfolio level
Responsible for collecting Metrics throughout the system that help to inform Portfolio
Management.
Roles at the Portfolio Layer:
Program Portfolio Management- Will be taking care of Strategy& Investment Funding .Also
Program Management will be done at Portfolio Level
Epic Architect - The Enterprise Architect works with business stakeholders and System
Architects to drive holistic technology implementation across programs. Within the context of
the Framework, the enterprise architect is focused primarily on the following responsibilities
Epic Owner - The Epic Owner is responsible for driving individual Epics from identification,
through the analysis process, to the go/no go decision making process of Program Portfolio
Management, and when accepted for implementation, working with the Release Train
development teams and Product Management to initiate the development activities necessary
to realize the business benefits of the epic
12
SAFE - The Quantitative way of achieving Process Excellence
The SAFe Way to Be Lean
13
SAFE - The Quantitative way of achieving Process Excellence
Lean thinking is important for scaling agile:
SAFe synchronizes the alignment, collaboration, and delivery of large numbers of agile teams across
enterprise and employs key Lean principles to underpin it constructs .SAFe is fundamentally based on
five Lean practices
1. The Goal: Value
SAFe inherently supports enterprise value streams which document how value flows through an
organization Value stream represents all the activities that contribute to value delivered to a Customer.
Agile programs also known as Agile Release Trains (ARTs), are the regular, predictable value delivery
mechanisms that realize this value via collaborative program and team objective.
2. Foundation: Leadership
Effective managers must be trained in the principles of Lean Thinking .Managers, in turn primarily develop
people, who ultimately create and deliver solutions.Specifically,Product managers,Product Owners and
Scrum Masters operate as servant leaders and empower their teams to deliver value in the fulfillment of
business objectives.
3. Respect for People
Empowerment of teams to continuously improve the way they work employees are inherently motivated to
solve problems and create quality solutions when empowered to do so.Building employee and business
14
SAFE - The Quantitative way of achieving Process Excellence
partnerships based on transparency,trust and mutual respect at all levels of the organization.
4. Kaizen
Kaizen translates as “Change to become good”. Lean enterprise value that represents driven,
5. Product Development Flow
The principles of product Development Flow created a powerful mental model that SAFe uses to apply
lean flow principles to software development.
A. Take an Economic View
At Portfolio Level, Portfolio Epic Kanban System strategic investments themes and lightweight
business case are used to make economic decisions and impacts visible at the enterprise level.
Weighted Shortest Job First (WSJF) this is economic prioritization tool focuses on the cost of delay
(CoD).WSJF is a key concept to prioritizing flow of work within a 2-3 month time box.
B. Actively Manage Queues
Short queues are good based on Little’s Law; The more items we have queued in a system the
longer the average time each will take .Therefore, the longer the queue, the longer our client must
wait for new value Managing queues is very important for reducing wait time.
C. Understand and Exploit Variability
The Scaled Agile Framework accepts the fact that variability exists and attempts to leverage it by:
Limiting Team, Program and Portfolio to a finite size
Frequently re-planning to adjust and adapt
Using a Hardening Innovation Planning (HIP) sprint to promote innovations events that allow
teams’ freedom to use their experience and domain knowledge to discover and present
innovative ideas to the business.
D. Reduce Batch Sizes
A batch size reduction is achieved by having co-located, cross functional teams that delivers small,
potentially shippable increments of work (PSI)
E. Apply WIP Constraints
The more work in process results in multiplexing overhead, which can often run from 20 to50%.A
common mantra in many agile organization is “stop starting and start finishing” which implies that a
small amount of work should be driven to completion before starting any more work. In SAFe, WIP
is constrained at operational level.
15
SAFE - The Quantitative way of achieving Process Excellence
F. Control Flow Under Uncertainty: Cadence and Synchronization
SAFe uses cadence a regular rhythm to plan and deliver capability at sprint and PSI boundaries to
ensure that frequent and regular adjustments are made to the plan to help deliver predictable,
valuable results.
G. Get Feedback as Fast as Possible
A key lean principle is gathering feedback from all aspects of the software development process as
frequently and as fast as possible
Team level feedback is facilitated by small batch sizes, sprint retrospectives and technical
practices such as pair programming and automation testing.
At program level, feedback is gained from a fortnightly System Demo and the Inspect and
adapt (I& A) Workshop which is a program level retrospective designed to address and remove
systematic impediments.
Case where SAFe will save You:
Program wherein application consisting of multiple modules and technologies needs to be developed.
Each module belong to different subject areas hence developers with different skillset based on domain
would be needed. Delivering such project with multiple modules/technologies using Waterfall/Agile can be
a big challenge.
Major challenges that drove the need for change are:
Schedule slippage due to multiple streams working together
High number of defects due to late integration testing
Longer month release cycle; unable to respond to rapidly changing requirements.
Cross module communication to discuss dependencies and challenges at early stage of development
Continuous interaction with Architects/SMEs for resolving performance related issues
Benefits:
1. Reduce time-to-market
The agile development cycle uses the release train concept from SAFe.
Releases have a fixed date, and scope is selected and adjusted if necessary — in order to meet the
deadline. If a feature misses the train, it has to wait for the next train. Releases have smaller cycles as
product is developed based on prioritized features and exposed to user based on agreed timelines of first
16
SAFE - The Quantitative way of achieving Process Excellence
iteration and probability of changes initiated in final release is very minimal due to continuous feedback
process. Complete product is available in final release
2. Significant Quality improvement:
As a result of earlier and more frequent integration testing (which is fundamental to the agile approach)
defects are uncovered and resolved faster giving customer confidence on final delivery.
3. Risks are uncovered and mitigated at early stages of iterations:
As development is iterative and time box in nature effort and schedule risk is out of question
Continuous testing cycle and involvement of roles like UX; technical architect reduces risk of not
meeting NFRs and performance criteria.
Continuous user reviews/feedback gives confidence that we are building right product
Conclusion:
To build complex software in a large enterprise with multiple teams working across geographies, using
traditional approach of product development might not give desired results like faster time to market, on
time delivery and defect free product. To achieve this all the levels like operations, management and
business should work collaboratively.
Integration of Agile and Lean brings these three levels together to achieve vision, mission and values in
small size projects. For a large scale projects SAFe framework promotes a shift from “command and
control” style of management to leadership which will give confidence to deliver faster and qualitative
results even at large scale.
References:
I. http://en.wikipedia.org/wiki/Agile_software_development
II. http://www.isixsigma.com
III. http://scaledagileframework.com/
IV. http://www.intland.com/solutions/by-discipline/safe/
17