Everything should be made as simple as possible, but no simpler. Albert Einstein.
This set is not complete, but is easy to learn and will help anyone attempting to do Agile. These concepts are sometimes self-evident, often counter-intuitive and easy to learn. References will be provided for further study. It is unfortunate that many Agile practitioners tend to ignore that there is a model underneath Agile that can be of great assistance and helps you avoid framework prison.
Note that many of links here are not part of the minimal set but are included in case you want to go further. These are marked with “go here for more” or “suggest you watch…”.
This set is divided into 8 sections:
- Theory of Constraints
- Organizational Development
- Human Behavior
- For Coaches
- Specific to Scrum
There is considerable overlap between these. In these cases the concept is put in the section where it is deemed more relevant.
The first thing to know is that there are laws underneath knowledge work and that ignoring them is like driving backwards against traffic. It’s possible but there are better ways.
“If you quantify only one thing, quantify the cost of delay.” Don Reinertsen
- Understanding our Inherent Problem
- The waste from multi-tasking is not as bad as the waste from delays.
- Keep all work and workflow visible to enhance collaboration.
- Create a focus on finishing . Some people attempt to manage WIP via WIP limits. It is usually easier and more effective to create a focus on finishing. Completion exists at many levels: tasks, stories, features, and MBIs.
- When done with a task, look to finish another task in the same story.
- When done with a story, look to finish another story within the same feature.
- When done with a feature, look to finish a feature within the same MBI. This focus quickens the rate of feedback, both increasing quality and efficiency.
- Use the “Borrow Team Member” pattern when appropriate.
Systems thinking: People are already doing their best, the problems are with the system. Edwards Deming
- Think in terms of systems. Systems thinking is considering a system to be an interrelated and interdependent set of parts which is defined by its boundaries and is more than the sum of its parts (subsystems). Changing one part of the system affects other parts and the whole system, with predictable patterns of behavior. Positive growth and adaptation of a system depend upon how well the system is adjusted with its environment, and systems often exist to accomplish a common purpose (a work function) that also aids in the maintenance of the system or the operations may result in system failure. The goal of systems thinking is systematically discovering a system’s dynamics, constraints, conditions and elucidating principles (purpose, measure, methods, tools, etc.) that can be discerned and applied to systems at every level of nesting, and in every field for achieving an optimized end state through various means. Suggest watching the 12 minute video What if Russ Ackoff Had Given a Ted Talk?
- Attend to delays in your system (“Just in time”)
- Focus on removing delays in your workflow more than on speeding up the steps in your workflow.
- Eliminate handoffs, handbacks and interruptions as they cause loss of knowledge and create waste.
“Often reducing batch size is all it takes to bring a system back into control” Eli Goldratt.
“It is easier to work your way into a new way of thinking than think your way into a new way of working. “Millard Fuller, often attributed to Jerry Sternin.
- Successful Pilots Can Hurt Going Agile. Merely getting a single team working with Scrum is not hard. If you cherry pick the people in it expect success while likely damaging your Agile transition longer term.
To go deeper – book recommendations
- Organize for Complexity: How to Get Life Back Into Work to Build the High-Performance Organization , Niels Pflaeging
- Managing Transitions: Making the Most of Change. William Bridges
“It is difficult to get a man to understand something when his salary depends upon his not understanding it.” Upton Sinclair.
- Resistance is not to change, it is to change being imposed on them.
- When given a requirement, always ask “how will I know that?” See ATDD for more.
- When considering writing a function, ask yourself “how will I test this?” before writing any code. See 8 page chapter Define Tests Up-Front for more.
- Double-Loop Learning. We must not just inspect and adapt within our assumptions, we must challenge the assumptions.
- What to Say When Someone Just Doesn’t Get It
- Understand what trim tabs are.
For more, see the following reading paths:
“The difference between science and religion is religion can’t abide being wrong science seeks to be wrong.” Neil deGrasse Tyson –
- If you start with Scrum, consider it to be an example of what you can do, not the end game. See Scrum as Example.
- How to improve or change your practices
- Improving Scrum by Attending to Flow, not Merely Using It