Agile in non-software development

This blog collects a number of sources on the subject of applying Agile methods to areas other than software development.

The Agile Manifesto

"The Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan


That is, while there is value in the items on the right, we value the items on the left more."

I like to think the popup tent was agile

Musings after Agile on the Beach

This post gathers together some of the strongest impressions made on me by the recent   Agile on the Beach conference in Cornwall.

Agile is a mindset, a collection of methodologies and tools put together by people, predominantly involved in software production.  It is strongly influenced by Lean Manufacturing methods and what Toyota did in developing their production systems, starting with Kanban.

Although Agile was developed in the software industry, its methods and lessons can be applied in any activity where there are customers, developers and producers, and deliverers.

Agile is also relevant to new activities and to those which are already established.

Since people and their relationships are more important than the processes and tools when being agile, personal experience, character and aspirations will influence what one finds rings true and makes sense. Each person following the Agile path will make their own journey, collect their own bits of wisdom, have their own favourites.

Product development

"Instead of “we can build it” we start with:
• Do customers have this problem?
• If we solved it, would they pay for it?
• Would they buy it?
Then:
• Can we build it?"
Benjamin Mitchell


"Innovation Accounting
The Three Learning Milestones
1. Establish the baseline
- Build a Minimum Viable Product (MVP)
- Measure how customers behave right now
2. Tune the engine
- Experiment to see if we can improve metrics from the baseline towards the ideal
3. Pivot or Persevere
- When experiments reach diminishing returns, it’s time to pivot

Pivots
• A pivot is a change designed to test a new fundamental hypothesis about the product,
business model or engine of growth
• A startup’s runway is the number of pivots it can still make
• Pivots take courage"
Benjamin Mitchell

Innovation

"Successful Innovation:
Make a little.
Sell a little.
Learn a little.


Innovation = 1% Inspiration + 99% Perspiration
1. Significant, focused technical expertise
 A decade of deliberate practice.
2. Deep understanding of an important problem
 What annoys people?
3. Passion, engagement, dedication
 Obsessed with growing the idea.
4. Experimental approach
 Build to learn. Learn to Pivot."

Mary Poppendieck

Value Stream Mapping

"Map End-to-End Flow
Value Stream -  The flow of activities that starts with a customer in need, and ends when that customer’s need is satisfied."
Mary Poppendieck - Value Stream Mapping

Stories

"Format of a Story
As a <role, beneficiary> I want
<capability> so that <benefit>


+ <role> is the customer of the Story
+ <capability> is what
+ <benefit> is why



Conditions of Satisfaction
<Facts that would demonstrate ‘capability’ exists>"
Nancy Van Schooenderwoert

Agile in non-software development

Declaration of Interdependence
"Agile and adaptive approaches for linking people, projects and value..."


Agile Software Qualities
"Not long after I encountered the Agile Manifesto, it struck me that the Values and Principles could be applied to work other than software development." Scott Duncan


Ten Practices for Applying Agile/Lean Software Management Principles to Other Knowledge Work
Dean Leffingwell, author of Scaling Software Agility: Best Practices for Large Enterprises, suggests that other types of knowledge work can apply useful principles learned from Agile, Lean, Scrum, and XP software development.


What is the Scrum method?
Scrum is one of several light-weight agile methods that use an iterative and incremental approach for the development of information systems.  The Scrum method brings a small team together to work on a specified set of features over a period of 30-days (called a sprint).


Agile Work Uses Lean Thinking
Lean and Agile are both methods of improving the effectiveness and performance of
work processes. Lean comes primarily from manufacturing and in particular the Toyota
Production System. Agile comes primarily from Agile Software Development and
Project Management. Agile Work has borrowed heavily from Lean thinking and
practices. There are three important connections between Lean and Agile: queueing
theory, empirical process control, and team self-management.

PODSI and PDCA

Plan, Orientate, Design, Select, & Iterate (PODSI)
Plan by identifying the potential target, vision, and feasibility of the project that will ensure the active participation of all stakeholders. Determine if the managers are indeed going to collaborate or are willing to learn to collaborate. If they simply want you to be an order-taker then, “run my friend run, run as fast as you can!” Find a project with people who desire to collaborate.
Orientate in order to recognize the level of the complexity of the environment (Cynefin) so that the initial learning architecture can be started to solve the problem. Use Exemplary Performers and/or Subject Matter Experts to help identify the complexity of the environment.
Design by using a collaborative approach or model so that only the minimum required knowledge and skills are taught that will resolve the problem. Build other useful benefits into the learning process during the final iterations.
Select the correct learning objects, processes, and tools that will provide the needed knowledge and skills that support both formal and informal learning — the use of small learning objects will increase the speed of iterations and allow you to more easily transform parts of the instruction into informal and nonformal learning.
Iterate by prototyping the initial design and to determine what other performance support technologies are required that will fully support the learners' quest to better performance. Use After Action Reviews to transform deficiencies into actionable items. Transform the formal learning objects to informal or nonformal learning as possible.
Don Clark - Agile Design


Plan-Do-Check-Adjust
Plan-Do-Check-Adjust (PDCA) is known as the model for continuous improvement. The four-phase approach provides a simplified sequence to carrying out change. And, it is so much more: it is a cycle that doesn't necessarily end. Instead, the cycle charts a course for follow-through and allows for true continuous improvement as work and processes evolve to meet the constantly changing needs and expectations of customers.

PDCA encourages us to constantly strive for a "perfect" process, with the understanding that as our customers change, so, too do their needs change. And so by constantly Checking and Adjusting, we can keep pace with our customers' needs and provide products and services that are of value to them.

PDCA Definitions
Plan: Recognize an opportunity and plan a change. Obtain baseline metrics and gather information.

Do: Observe and analyze the current process, design an improved process, test the change.

Check: Review the change, monitor and evaluate the results. (What is working? What have you learned?)

Adjust: Modify and make improvements as needed. If the change didn't work out, begin the cycle again.

CONTINUOUS IMPROVEMENT

Agile questions

As A:    I need to:               So that:              This means:         What I find difficult now:

*************************************


For <type of person> who <has a particular need>,  <product name>  is a <class of product> that <primary value proposition> Unlike <competitor>, <differentiator>
 
(from Crossing  the Chasm, by Geoffrey A. Moore)

*************************************
 

10 Ways Agile Improves Your Quality of Life


From a Non-Techie: 10 Ways Agile Improves Your Quality of Life


1.  Every team member contributes.
Since Agile empowers the delivery team, nobody can be a weak link.  They’d get exposed immediately, and they’d get left behind.  By definition, everyone has to produce strong work that contributes to project success.  And it is fun to work with people you can count on.
2.  Servant-Leadership teaches us better skills.
There is no time or place for micro-management or Command and Control in Agile.  Sinceservant-leadership is the goal, managers are responsible for removing roadblocks to their teams’ success.  Planning sessions prioritize the “what”, and team members are responsible for the “how”.   Do we still get lots of feedback?  Yes.  But are we told how to do our jobs?  No way.  As a bonus, you’ll learn how to be a coach and mentor for your own teams.
3.  Meetings have purpose.
We don’t meet unless we have to.  Our daily standups typically last 10 minutes.  Our planning meetings are tightly timeboxed, so we have to focus and then move on.
4.  Decisions are based on data.
We measure everything that is important to the business.   How else can you make smart decisions on where to spend your time and energy?  Rather than succumbing to the whims and opinions of a few squeaky wheels, by measuring important factors, we have the knowledge we need to back up our decisions  and stay the course, as long as it makes sense.  Therefore…
5.  Whiplash is minimal.
Have you ever worked with someone whose great ideas wagged your entire team back and forth until you could never complete a full project?  If an excited, charismatic tail wags the dog, then chaos, frustration and anger result.
In an Agile environment, you put the great project idea in the backlog, prioritize it against other initiatives, and choose whether and when to work on that project.  And you use your capacity and story sizing to manage expectations.  Which leads us to benefit #6:
6.  Politics are absent.
If you are making decisions based on quantitative results and you have a prioritized backlog, then there is no reason to make political decisions.  What’s the point?  You have the numbers, now go do your job.
7.  The bar is high.
You know how one mediocre project can take you forever to finish, but three challenging projects can sometimes energize you?  Agile sprints are more like the latter.  Sprints can be intense and challenging, and also satisfying.  Sometimes you can even point proudly to your results.  Why waste your days doing boring, mediocre work?
8.  The workday is intense and fast.
With all of that challenge, the Agile workday is short and intense.  Do you want to feel like you are always working, or like you have to hang out at work to show face time?  Work hard, play hard.
9.  Change is frequent.
We hold retrospectives frequently (timeboxed, of course).  With a commitment to changing what doesn’t work, we find ourselves altering our plans regularly, including deciding what tostop doing.  This is refreshing.  In Agile, you go along with the ride and breathe a lot, which is probably good practice for life.
10.  You’ll be smarter.
Future colleagues and partners will want to learn from you.  Your Agile skills will turn up in some unusual places.  You might start timeboxing how long you clean your kitchen.  You may choose to include words like ‘epic’ and ‘backlog’ in your everyday vocabulary.
But you also might do what I did and let go of some of your perfectionism, which has no place in Agile.  And, like me, you might pick up some better ways of structuring your work.
Most of all, you might really enjoy your days more.