The Agile methodology - Delivering new ways of working, by Sandra Frechette, ...
Single Point Continuous Flo1
1. Company
SINGLE POINT CONTINUOUS FLOW
COMBINING SCRUM AND LEAN TO CREATE AN EFFICIENT PROCESS FOR
EXECUTING SMALL, SELF-CONTAINED PROJECTS AS QUICKLY AS POSSIBLE.
CharlesCooper,MA,MBA,PMP, ACP
LeanSix SigmaMasterBlack Belt
Abstract
Over the past six months in the Branded Card Fulfillment Assurance team,
we have created an evolutionary form of Agile called Single Point Continuous
Flow. The results speak for themselves. After correcting for available work
hours, we have seen our velocity double. Single Point Continuous Flow is
designed specifically for small, self-contained development efforts. Vital
components of its application includes the application of standards and
templates, the synergy of one, and the application of LEAN and AGILE
concepts to achieve maximum throughput through the development value
chain.
INTRODUCTION TO CONTINUOUS FLOW
Lean and Six Sigma have revolutionized manufacturing. By embracing continuous
improvement, manufacturers have seen their production levels skyrocket. Agile has
done the same for software development.
Scrum has been embraced by the industry and ensuing production increases have
justified the decision. As Scrum matured, however, many leaders recognized the
limitations imposed by the formal trappings of the Scrum Methodology. These
leaders have chosen to combine elements of Kanban, a lean methodology, with
Scrum to create a method that embraces the best elements of both. They call it
Scrumban.
Single Point Continuous Flow is a version of Scrumban that takes the best aspects
from Agile, Scrum, and Kanban to create an incredibly efficient process for rapidly
completing short, self-contained development efforts. Like most Scrumban’s, it
imposes WIP limits and visualizes the process in a continuous flow, uninterrupted by
sprints, however, in Single Point Continuous Flow, the element of a small, self-
contained development effort is taken into account and a Work in Process limit of
one is imposed on the developer or team because of the small nature of the work.
Additionally, the project does not need to be subdivided because by its nature it is
self-contained.
2. Company
As with all Agile Methodologies, the Team defines the standards and norms by
which the pod operates. Below is a description of the choices and reasoning that
our team used to create our standards and norms. The resulting process, which
evolved over six months, saw our throughput increase by 60% when adjusted for
available development hours.
The Guidelines of Single Point Continuous Flow
Guiding Principles are shown in Italics for ease of reading.
1. As a rule we follow the agile manifesto and apply lean principles.
2. Maintain a current, prioritized backlog that reflects the Customer’s priorities.
This was achieved by having the product owner meet face to face with the Customer
representatives to balance priorities and align resources.
3. Stories are small, self-contained projects which are able to be completed by a
single person. Having a single person assigned to the story creates an expert on the
content. This can be seen as a drawback when it comes to supporting the report at a
later date, however, it allows the development team to focus on a solution and gain
synergies from a dedicated resource. The trade here is faster development for
limited support. A Story that is ready for development, can be worked from start to
finish with minimal interruption.
Story refinement (formerly grooming) creates two outputs. First, a Story, complete
with Acceptance Criteria and ready to be worked from start to finish with minimal
interruption. Second, as much of the developed product’s documentation as
possible, our estimate is that near 95% complete is possible. We do not believe
100% is possible because of instances that derive from the expected norm, which
occur routinely during development. Time spent documenting is time not
performing development.
4. One Person works one story at a time – Create a natural Work in Process (W.I.P.)
Limit and a single, dedicated owner/team to a single story. Some of the stories were
organized into related clusters and assigned to a single developer based on synergies
between them. For example, if they had the same customer or accessed the same
data. Also referred to as the Synergy of One, this allows the developer to focus on
and become expert in specific subject matters. Since the main focus is on data, a
developer gains inside into how the data elements work together and provides that
expertise to the customer as required.
3. Company
5. The Self Organized team is a critical element of owning the work. Let your team
define its norms, intervals, schedule and so on. Also the direct interface between the
developer and the customer is critical to success. Having instant access to the intent
either through refinement or the Intent Owner, provides dramatic acceleration and
increased quality.
6. Non-developmental roles like meetings should be kept to a minimum. Every non-
developmental role that exists should allow development personnel to focus on
development. Remember the purpose of the team is to develop software. Get rid
of anything and anyone who does not have an equal return as cost.
7. Always maintain a current prioritized backlog so when a story is completed the
next one is ready and available to minimize down time. Continuous Flow is about no
down time. The backlog should always be ready to supply the next story. This was
critical since the Refinement process we adopted made the lead time from submittal
to ready for development more complicated.
What are the factors that dictate the use of this method?
This technique was designed for this team specifically because of the product they
produce. The team uses different Agile Methods in the POD when dealing with
stories that do not meet this criteria. To use Single Point Continuous Flow, the
projects should be:
1. Small Development Projects (Stories not Epics)
2. Limited Resources Assigned to the Projects (e.g. one person available for each
development project)
3. Stories completed in a short time (< 2 Weeks)
What Roles did we find Added to the Process?
The Development Team
The Development Team performs development and provides coordination with the
customers during the development process to ensure the requested intent is
met. This will typically include meeting daily (or as often as is required) with the
customer of a report, providing a status on the story at the Daily Status Meeting,
providing technical expertise, and developing the required report. The development
team will also be involved in the ongoing effort to improve the team in the form of
the retrospective and continuous improvement stories.
4. Company
The Product Owner
A Product Owner Team was created to serve as the businesses point of contact,
which monitored and controlled the product backlog and ensured priorities were
established and deadlines are met. A secondary rol for the Product owner was
introduced, performing Refinement on stories prior to development to ensure they
were ready for development, and completing as much of the documentation as
possible prior to development.
Prioritization
Under normal circumstances the Product Owner is the lead user of the Software.
They hold the priorities of the customer in their head and use this to guide the
development effort. In this case, there were several customers whose
requirements had to be balanced. The Product Owner met with the customers
weekly to insure the product backlog was always up to date with the latest priorities.
Refinement
The process of Refining stories to ensure they are ready to work and as documented
as they be prior to development starting, is a central responsibility of the Product
Owner.
During the Refinement Process, documentation is developed to the maximum
allowable point prior to development taking place. This allows Developers to focus
on development instead of documentation. Acceptance Criteria are created during
refinement to create an indefatigable definition of done. This keeps scope creep
from occurring.
The Agile Coach
The role of Agile coach functions as a Consultant and Trainer for the team. In
addition, the Agile Coach will provide administrative assistance, enforce the team’s
rules, serve as the administrator for Version One, act as a backup for the Product
Owner when required and guide the team’s Agile Journey.
The priorities of the Agile Coach are keeping the team on task, removing any
impediments to project completion, developing team members understanding of
agile through coaching, mentoring, and implementation, and creating continuous
improvement opportunities for the team.
The Customer
The Customer role is to provide a clear concise definition of intent to the
developer. To that end, the customers are required to commit to the following
before their story is ready for development:
5. Company
1. Meet with the Product Owner and participate in the prioritization and
Refinement processes.
2. Spend at least one hour (typically 10-11 AM) daily with the development team
during the development process.
3. It is recommended that the Customer have a back up in case they are
unavailable.
What Ceremonies Add to the Process?
Ceremonies (Agile code word for meetings) should be kept to a minimum. Scrum
tries to limit and time box meetings in order to keep the time spent to a minimum,
but even then, some meetings are still rote and wasteful. The important thing about
a meeting, whether it is your daily scrum or the retrospective, is ensuring that there
is return on investment. What does that mean? Time spent in meetings should
reduce time spent on the project. If it doesn’t do that, don’t waste your time with it.
The point of Single Point Continuous Flow is to develop software. The development
team should be isolated from everything that is not software development.
With that said, the following ceremonies have been found to add value at certain
intervals and the team has elected to keep them.
TEAM CEREMONIES
- Daily Status Meeting (15 Minute Time Block)
The Daily Status meeting, led by the Agile Coach, functions to update the team on
progress and identify issues. Just like the Scrum, each team member addresses what
they did yesterday, what they will do today, and what impediments there are. Keep
this meeting as short as possible. Relegate issue discussion and problem solving to
offline conversations. During this meeting only the team may talk, but anyone may
attend.
- Retrospective
Continuous Improvement is built into all agile project management. This critical
aspect of the process should be maintained no matter if using time boxed scrums or
Kanban methodologies. As part of the Retrospective, it is important that you
address the concerns of the team at a regular interval (most use 2 weeks). These
6. Company
issues tend to be focused around communication from the perspective of the
customer and the developer. Agile focuses on face to face communication wherever
possible because it drives the greatest understanding.
As a group leader, it is important to take a step back at a larger interval and consider
the larger thematic elements of the Group. These process design sessions occur
every six weeks or so. These sessions should be driven by data, experiments, and
results. When you decide to implement something like Continuous Flow, test it first
against your performance in a two week scrum. As the FAV group did this, the
results spoke for themselves. Using Data to drive process change allows the team to
see, participate in, and buy in to the change as it is happening.
Finally, let the team drive the evolution of the group. As a leader you can make
suggestions, but it is up to the team to drive the evolution.