In the Campfire Talks with Herbie No 23 J.B. Rainsberger asked about how eXtreme Programing (XP) relates to the TameFlow Aproach; and in particular which aspects of the TameFlow Approach one might consider as a natural evolution of XPand which aspects come from the “outside.” In this post we will formulate a reply.
XP is one of the oldest Agile methods. When it comes to coding practices, XP is fully compatible with the TameFlow Approach; in fact it is recommended! Furthermore, the early XP literature did have a huge influence on shaping the TameFlow Approach, as we will see here.
XP is typically about producing software, while the TameFlow Approach is about helping organizations to get better, there are surprising overlaps. Let’s see what some of theses commonalities are.
The XP Values
The XP Values are:
Simplicity: The TameFlow Approach might seem overwhelming; but once we wrap our heads around all element we will discover that it is really simple. It takes a lot from Goldratt’s thinking about Inherent Simplicity. Being able to focus on the Constraint allows us to put aside and ignore almost all other factors; that in other approaches would just contribute to the cacophony of noise, hiding the signal(s) that really matter.
Communication and Feedback: The Informational Flow is in fact all about communication and feedback. For example: Work Execution Signals, Full Kitting, Management by Exception all aim at getting the right information, to the right people at the right time. Sensing the signals, getting quick responses to have tight and fast feedback loops.
Respect: Respect is an essential component of the Psychological Flow. At the personal level, the Core Protocols help individuals to entertain more genuine, respectful relationships between them. The TameFlow Approach also fully subsumes the Four Pillars of the Theory of Constraints, two of which state: “People are good” and “Every conflict can be removed”.
Courage: This is probably best represented by the foundational pattern of Inspired Leadership. Especially developing the confidence to delegate critical decision making to those who have the best expertise, is an act of courage. Trusting, at all levels as we do with the Community of Trust patter, means accepting vulnerability: and that needs courage.
The essential ideas, that drive the mindset and attitude of TameFlow practitioners are captured by four metaphors - or “stories” with their narratives:
The Story of Herbie - To understand the essence of the Five Focusing Steps of the Theory of Constraints; but also to highlight that a TameFlow team or organization always stand behind the weakest. It is the essence of Unity of Purpose (we get to basecamp all together) and Community of Trust (we never leave anyone alone in the woods).
The Patient in the Hospital - To foster the mindset and attitude to focus on the one most important thing of the moment, and to get to delivery without interruption. In technical terms, we want to achieve One Piece Flow; but the metaphor makes the idea accessible and tangible.
The Jungle, Jeep and Journey - This illustrates that we need to look for the Constraint in the system from different perspectives. At any one time, there is one - and only one - Constraint; but the dynamic evolving situation can make it move to different places. The metaphor conveys the idea that there are only few places were we need to look.
The McDonald’s tray - Illustrates the concept of the MOVE: a target scope set of work items. When ordering at a McDonald’s counter, you won’t leave until the tray is complete (“fully kitted”) with all the items you ordered. You won’t pay until you get all of that. Likewise we won’t collect the value of our work until the expected value is realized.
The notion of Sustainable Pace is really central to the whole of the TameFlow Approach. For one, by limiting Work in Process by means of Drum-Buffer-Rope Scheduling we ensure that only the Constraint will be fully loaded. All other participants in the Value Stream will necessarily have to work below their full capacity. Thus Sustainable Pace becomes really about not demanding too much out of Herbie. In this way Slack is built-in automatically in the way of working.
XP’s Release Planning maps quite nicely to the TameFlow Approach’s portfolio-level Full-Kitting activity. A “release” corresponds, in practice to a MOVE
XP’s Iteration Planning compares well to the team-level Full-Kitting activity. The major difference is that the iteration is not based on a timebox; but rather on a Target Scope - the part of the MOVE that is assigned to the team. The measuring progress is done via Flow Metrics rather than time-based assessments.
Refactor Mercilessly / Fix XP
Refactoring is part and parcel of the Test-Driven Design. It is an activity that focuses on the code that software engineers produce. As such, it is fully adopted by the TameFlow Approach.
There is another valence for the concept of Refactoring that we fully embrace. Refactoring means “to keep the design simple as you go, and to avoid needless clutter and complexity”. The design of TameFlow as such has been “refactored mercilessly” many times over, in order to “avoid needless clutter and complexity.”
As Sandeep Joshi said in Campfire Talk No. 20, “TameFlow is simple and beautiful.” And that simplicity derives from this incessant refactoring.
This is also reminiscent of the notion of Fix XP When it Breaks. The TameFlow Approach, primarily in virtue of being based on Patterns, has made it possible to re-conceive itself many times over.
Collective Code Ownership
While the TameFlow Approach is not about coding - and delegates the practices to XP - the idea of Collective Ownership is ever present in the form of the Shared Mental Models and the Full Transparency that is advocated at all levels. Collective ownership creates common understanding, and especially shared conceptual integrity of all ideas that come together coherently.
XP’s Project Velocity resembles the TameFlow Approach’s Operational Throughput. Even the iteration planning practice of loading the iteration with the same number of User Stories measured in the previous iteration, is in principle using the measured Operational Throughput for estimation purpose.
Move People Around
In XP the idea of Move People Around has the primary purpose of achieving cross-training. In the TameFlow Approach we achieve similar results via the 5 Focusing Steps, especially when co-workers swarm or use their excess capacity to learn how to do the work the Herbie needs help with.
However, in the TameFlow Approach there is also great awareness that complete cross-functional training is impossible to achieve; especially in large and complex organizations. After all, it is in the highly specialized functions that businesses will have their competitive advantage. And highly specialized functions are also very prone to becoming the Constraint. Hence all of the TameFlow Approach is construed to optimize the use of highly specialized functions, especially in those situations where cross-training cannot be pursued.
The nature of the Stand-up Meeting is similar. Though in the TameFlow Approach it happens only when there are Work Execution Signals that demand it; or on an ad-hoc basis when someone notices a reason for calling it.
Outside of eXtreme Programming
The TameFlow Approach includes many other elements and ideas from other approaches. A short list includes:
- Patterns, Pattern Languages, Pattern Theory.
- Core Protocols; Non-Violent Communication; Right-shifting; Laloux’s Model.
- The Kanban Method.
- Discovery Kanban, Popcorn Flow, Discovery-Driven Planning
- Theory of Constraints, Systems Thinking
- Throughput Accounting, Beyond Budgeting, Incremental Funding
Conclusions about eXtreme Programming and TameFlow
XP is a natural choice for all engineering practices and is fully adopted and supported by the TameFlow Approach in as far as software engineering and coding is concerned. The TameFlow Approach complement in the non-engineering practices, obviously by providing ways to better manage the Four Flows.
In conclusion: eXtreme Programming and the TameFlow Approach work very well together.