Extreme Programming (XP)
Extreme Programming (XP)
Extreme Programming (XP)
Extreme Programming technique is very helpful when there is constantly changing demands or requirements from the
customers or when they are not sure about the functionality of the system. It advocates frequent "releases" of the
product in short development cycles, which inherently improves the productivity of the system and also introduces a
checkpoint where any customer requirements can be easily implemented. The XP develops software keeping
customer in the target.
Business requirements are gathered in terms of stories. All those stories are stored in a place called the parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with span of 14 days time
period. Each iteration includes phases like coding, unit testing and system testing where at each phase some minor or
major functionality will be built in the application.
There are 6 phases available in Agile XP method, and those are explained as follows:
Planning
Analysis
Design
Execution
Coding
Unit Testing
Execution of Manual test scenarios
Defect Report generation
Conversion of Manual to Automation regression test cases
Mid Iteration review
End of Iteration review
Wrapping
Small Releases
Regression Testing
Demos and reviews
Develop new stories based on the need
Process Improvements based on end of iteration review comments
Closure
Pilot Launch
Training
Production Launch
SLA Guarantee assurance
Review SOA strategy
Production Support
There are two storyboards available to track the work on a daily basis, and those are listed below for reference.
Story Cardboard
o This is a traditional way of collecting all the stories in a board in the form of stick notes to track daily
XP activities. As this manual activity involves more effort and time, it is better to switch to an online
form.
Online Storyboard
o Online tool Storyboard can be used to store the stories. Several teams can use it for different
purposes.
Crystal Methodologies
1. Chartering: Various activities involved in this phase are creating a development team, performing a
preliminary feasibility analysis, developing an initial plan and fine-tuning the development methodology
2. Cyclic delivery: The main development phase consists of two or more delivery cycles, during which the
1. Team updates and refines the release plan
2. Implements a subset of the requirements through one or more program test integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted development methodology
3. Wrap Up: The activities performed in this phase are deployment into the user environment, post- deployment
reviews and reflections are performed.
DSDM is a Rapid Application Development (RAD) approach to software development and provides an agile project
delivery framework. The important aspect of DSDM is that the users are required to be involved actively, and the
teams are given the power to make decisions. Frequent delivery of product becomes the active focus with DSDM. The
techniques used in DSDM are
1. Time Boxing
2. MoSCoW Rules
3. Prototyping
1. Pre-project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design and build Iteration
6. Implementation
7. Post-project
This method is focused around "designing & building" features. Unlike other agile methods, FDD describes very
specific and short phases of work that has to be accomplished separately per feature. It includes domain walkthrough,
design inspection, promote to build, code inspection and design. FDD develops product keeping following things in the
target
Lean software development method is based on the principle "Just in time production". It aims at increasing speed of
software development and decreasing cost. Lean development can be summarized in seven steps.
1. Eliminating Waste
2. Amplifying learning
3. Defer commitment (deciding as late as possible)
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole
Kanban
Kanban originally emerged from Japanese word that means, a card containing all the information needed to be done
on the product at each stage along its path to completion. This framework or method is quite adopted in software
testing method especially in agile testing.
Scrum Vs Kanban
Scrum Kanban
In scrum technique, test must be broken down so No particular item size is prescribed
that they can be completed within one sprint
It cannot add items to ongoing iteration It can add items whenever capacity is
available
Agile metrics:
Drag Factor
o Effort in hours which do not contribute to sprint goal
o Drag factor can be improved by reducing number of shared resources, reducing the amount of non-
contributing work
o New estimates can be increased by percentage of drag factor -New estimate = (Old estimate+drag
factor)
Velocity
o Amount of backlog(user stories) converted to shippable functionality of sprint
No of Unit Tests added
Time interval taken to complete daily build
Bugs detected in an iteration or in previous iterations
Production defect leakage
Scaled Agile Framework SAFe, is a freely available online knowledge base that allows you to apply lean-agile
practices at the enterprise level. It provides a simple, lightweight experience for the software development team. The
whole framework is divided into three segments Team, Program and Portfolio. We will see this in detail later on.
SAFe allows team for,
SAFe was first developed in the field and was elaborated in Dean Leffingwell's books and blog. Version 1.0 is the
first official release in 2011. The latest version is 4.6, was released in October 2018. It provides guidance to work at
enterprise Portfolio, Value Stream, Program, and Team levels.
It is simpler and lighter in weight, yet it expands to handle the needs of large value streams and complex system
development. By implementing an Agile Framework, you will have following benefits,
The detailed framework diagram is available on the website. It shows all of the key roles, Activities, deliverables, and
flows. It also serves as a navigational aid to the rest of the site.
The below image explains how agile process works. Epics are a large body of work, which is further broken down into
a number of smaller stories or sub-epics. These sub-epics are allocated to the team as a story. Each team then work
on these stories or software features accordingly.
When a team is interested to implement an agile approach consistently across larger, multi-team programs
and portfolios.
When multiple teams are running their own way of Agile implementation but regularly facing obstacles, delays,
and failures.
When teams want to work independently.
When you want to scale Agile across the organization but not sure what new roles may be needed or what
existing roles (i.e., management) need to change and how.
When you have attempted to scale the Agile across your organization but struggling in alignment to achieve
uniform or consistent strategy across business departments from portfolio to program and team levels.
When an organization needs to improve its product development lead time and want to know how other
companies have succeeded in scaling Agile with SAFe.
Let's see how Scaled Agile framework is different from other agile practices,
1. Lean-Agile Principles
2. Core Values,
3. Lean-Agile Leadership
4. Lean-Agile Mind-set,
5. Communities of Practice(Group of people who are constantly working on SAFe practices)
6. Implementing 1-2-3
These basic principles and values for SAFe must be understood, exhibited and continued in order to get the desired
results.
Alignment:
Built-in Quality:
Transparency:
Program Execution:
SAFe places great focus on working systems and resultant business outcomes.
SAFe is not useful if teams can't execute and continuously deliver value.
The Lean-Agile Leaders are lifelong learners and teachers. It helps teams to build better systems through
understanding and exhibiting the Lean-Agile SAFe Principles.
As an enabler for the teams, the ultimate responsibility is adoption, success and ongoing improvement of Lean-Agile
developments. For the change and continuous improvement, leaders must be trained.
Leaders need to adopt a new style of leadership. One that truly empowers and engages individuals and teams to
reach their highest potential.
The Goal of lean is unbeatable: To deliver maximum customer value in the shortest lead time with the highest possible
quality to customer
Below figure explains the Goal, Pillars, and Foundation of "SAFe House of Lean."
Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have
come to value:
That' why, while there is a value in the items on the right, we value the items on the left more.
Agile Manifesto
1. The highest priority is to satisfy the customer through continuous and early delivery of valuable software.
2. Embrace the changing requirements, even late in development. Agile processes harness change for the
customer's benefit.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the
shorter timescale.
4. Developers and business people must work together daily throughout the project.
5. Build projects around motivated individuals. Give them support and the environment they need, and trust them
to get the job done.
6. The most efficient method for communication with a development team is a 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.
Different Levels in SAFE
In SAFe 4.0 implementation we have 4-Levels: Portfolio, Value Stream, Program, and Team.
In SAFe 3.0 implementation we have 3-Levels: Portfolio, Program, and Team
3-Level SAFe is for smaller implementations with 100 or fewer people. Programs that do not require
significant collaboration.
4-Level SAFe is for solutions that typically require many hundreds of practitioners to develop deploy and
maintain software.
Team Level
* Execution * Iterations
* Spikes
* Team Kanban
All SAFe teams are part of one or other Agile Release Train (ART).
SAFe teams are empowered, self-organizing, self-managing, cross-functional teams
Each team is equally responsible for defining, building and testing stories from their Team Backlog in a fixed-
length Iterations
Teams plan and execute two-week time-boxed iterations in accordance with agreed-to Iteration Goals.
Teams will use ScrumXP/Team Kanban routine to deliver high-quality systems to produce a System Demo on
every two weeks.
All different teams in the ART (Agile Release Trains) will create an integrated and tested system.
Stakeholders will evaluate and respond with fast feedback
They apply Built-in Quality practices.
Each ScrumXP team will have 5-9 team members, which includes all the roles necessary to build a quality
incremental value in each Iteration.
ScrumXP roles includes:
o Team(Dev+QA)
o Scrum Master
o Product Owner. Etc..
SAFe divides the development timeline into a set of iterations within a PI (Program Increment).
PI duration is between 8 -12 weeks.
The team will use stories to deliver the value. The Product Owner will have content authority over their
creation and acceptance of the stories.
Stories contain Customer's requirements.
Team Backlog includes user and enabler stories, which are identified during PI planning. When the Product
Management presents the Roadmap, Vision, and Program Backlog.
Identifying, elaborating, prioritizing, scheduling, implementing, testing, and accepting the stories are the
primary requirements of management work in team level.
Each iteration provides:
o A valuable increment of new functionality
o Accomplish via constantly repeating pattern
o Plan the iteration
o Commit to some functionality
o Execute the iteration by building and testing Stories
o Demo the new functionality
o Retrospective
o Repeat for the next iteration
Teams also support the System Demo at the end of each Iteration. which is the critical integration point for the
ART.
Larger Value Streams will have multiple ARTs.
The Innovation and Planning (IP) Iterations leverage the teams with an opportunity for innovation and
exploration.
Program Level
* Customer * Feature
* Enabler
* Solution
In Program level, Value of SAFe is delivered by long-lived Agile Release Trains (ART). Iteration is for team
and train is for the program.
Agile Release Trains (ART) is the primary vehicle for value delivery at the program level. It delivers a value
stream to the organization.
The Program Increments (PIs) duration is of 8 to 12 weeks.
ART is of 5 - 12 Agile Teams (~50 – 125+ people) which includes all the roles and infrastructure needed to
deliver fully tested, working, system-level software.
Each PI is a multiple-Iteration time box. During which a significant, valuable increment of the system is
developed and delivered.
In each PI a "demo" and "Inspect and adapt" sessions will happen, and Planning begins for the next PSI.
At the Program level, SAFe emphasis on the principle of alignment. This is because multiple agile team efforts
are integrated to create customer value.
SAFe artifact hierarchy is Epics->features->user stories.
At a Program level, Product Manager/Program Manager has content authority. He defines and prioritizes the
program backlog.
Program backlog is a prioritized list of features.
At the program level, features can be originated, or they can derive from epics defined at the portfolio level.
Features decompose to user stories and flow into team-level backlogs.
Product Manager or the Release Train Engineer role could be handled by the Program Manager/Senior
Project Manager
System Architect role at the program level is to collaborate day to day work with the teams. It ensures that
non-functional requirements are met. Also, they work with the enterprise architect at the portfolio level to make
sure there is sufficient architectural runway to support upcoming user and business needs.
Interface design, user experience guidelines and design elements for the teams are provided by UX
Designers.
Chief-Scrum Master role is played by 'Release Train Engineer'.
Various team (from marketing, development, quality, operations, and deployment) forms 'Release
Management Team'. They will approve routine releases of quality solutions to customers.
Deployment of software into customer environments and successful delivery is taken care of by DevOps
team.
Portfolio Level
* Portfolio Kanban
* Non-Functional Requirements
* Value Stream
* Customer * Non-Functional
Requirements
* Capability
* Enabler
* Solution Context
* Economic Framework
* Solution Intent
* MBSE
* Set Based
* Agile Architecture
1. Large in size
2. Independent
3. Have complex solutions
4. Their solutions typically require multiple ARTs
5. They have Suppliers contribution.
6. They face the largest systems challenges
7. For cyber-physical systems
8. For software, hardware, electrical and electronics, optics, mechanics, fluidics and more.
Building this kind of systems often takes hundreds, even thousands of practitioners, external and internal
suppliers.
If the systems are mission crucial. Failure of the Solution, or even a subsystem, has unacceptable economic
and social consequences.
If the Enterprises can be built with a few hundred practitioners, it may not need the constructs of this level. In
that case, they can use from the 'collapsed view' which is 3-level SAFe.
Building value stream solutions in a Lean-Agile pattern requires additional artifacts, coordination, and
constructs. So this level contains an Economic Framework to provide financial boundaries for Value Stream
It supports cadence and synchronization for multiple ARTs and Suppliers. It includes Pre-and Post-PI
Planning meetings and Solution Demo.
It gives additional roles which are: Value Stream Engineer, Solution Architect/Engineering, and Solution
Management.
Summary:
SAFe is an industry-proven, value-focused method for scaling Agile at the Enterprise level.
It answers the questions like "How do we plan?", "How do we budget?", and "How do we become cross-
functional in architecture and DevOps?"
SAFe helps large organization teams to meet an organization's strategic goals, not just individual project
goals.
The framework offers the ability to maintain and create a centralized strategy to deliver value.
The SAFe model has three/four levels that centralize the strategic themes of an organization.
Centralized strategy, combined with the de-centralized agile development execution.