Category Archives: Agile Principles and Practices

What is Systems Thinking and Why is it Important?

Understanding “what is systems thinking” is important to developing a deeper understanding of Agile. I’m an engineer at heart. I’ve been trained to analyze problems objectively and come up with well-thought-out solutions. That approach comes naturally to me but it is something that needs to be learned and reinforced. Here’s a dialog I had with my wife that illustrates this:

Wife: I will never buy another *Brand X* washing machine again!

Me: Why is that?

Wife: The clothes don’t smell fresh!

What’s wrong with that picture? People often rush to judgment like that without fully analyzing a situation and/or make a hasty assessment based on some kind of personal bias that’s not very objective. Think about it – in this situation, there are many things that might cause the clothes to not smell fresh so it’s probably premature to blame the washing machine and all models of washing machines built by *Brand X* so quickly but people do that all the time.

“Systems Thinking” is a framework for looking at something as a “system” and understanding how all the components of that system contribute to achieving whatever result it is supposed to accomplish. For example, the process of washing clothes in a washing machine depends on the type of detergent, type of fabric softener, the need to operate the washing machine properly, and the need to clean the washing machine drum periodically, etc. to achieve the desired result of having fresh-smelling clothes. For a more detailed definition of what “Systems Thinking” is, check out this blog post I wrote some time ago:

Systems Thinking

“Systems Thinking” is a powerful tool I learned a long time ago when I first read Peter Senge’s book: “The Fifth Discipline – The Art and Practice of the Learning Organization” in the 1990’s. That has been a very powerful tool for me that I’ve used over-and-over again in many situations.

The practice of systems thinking can be complex – you can use the phrase to refer to a set of tools – such as causal loop diagrams, stock and flow diagrams and simulation models – that help us map and explore dynamic complexity. “For example, systems thinkers often describe the world in terms of reinforcing and balancing processes, limits, delays, patterns of behavior over time, and so forth.” – Barry Richmond, isee systems, inc.

However, Without adding a lot of complexity, a lot can be gained from simply developing a unique perspective on reality – a perspective that sharpens our awareness of the whole and of how the parts within those wholes interrelate. The biggest obstacle to systems thinking; however, is our tendency to over-simplify something that is complex to force-fit it into binary, black-and-white terms rather than trying to understand the complexity of it at a deeper level. My wife’s emotional reaction to the washing machine is an example of that. Her instant reaction was that it must be that *@!# washing machine and I’ll never buy another washing machine like that again!

Here’s an example from a LinkedIn discussion I recently participated in that is more directly relevant to the subject of Agile Project Management:

“Ultimately Project Management is a type X/violent approach to delivery. Where Lean/Agile is a type Y/non-violent approach to delivery”

What’s wrong with that statement? It makes a very broad-based assessment of what “project management is based on some very biased opinions of what project management is and attempts to characterize the whole practice of project management that way. It’s equivalent to my wife’s statement that “I will never buy another *Brand X* washing machine again!”. Anyone who thinks that way will have a very difficult time adopting a true systems thinking approach just as my wife had to adjust her thinking to think about the problem with the washing machine in a broader and more objective perspective. There’s a saying that I think is very relevant to this that says:

“It’s easier to accept a simple myth and move on than it is to take the time to understand complex reality”

As long as people cling on to some of the simply myths and stereotypes that exist about what “project management” is, it will be difficult for them to see “Project Management” and, more specifically, “Agile Project Management” in a fresh new perspective. Another statement made by the same person in the LinkedIn discussion was:

“The term Agile PM is as disconcerting as a Scrum Project Manager”

People like to see things in binary, black-and-white terms and have difficulty seeing the possibility that all project managers might not fit into that stereotype.

I’ve just finished developing a new online training course on “Understanding Agile at a Deeper Level” that includes a module on “Systems Thinking” because I believe it is very important to Agile Project Management. The new course also has a lot of material on the principles and values behind both Agile and Scrum that I think will help people see things in a fresh new perspective based on a deeper understanding of Agile and Scrum beyond just the “mechanics” of basic Scrum practices. This new course will help people take a systems thinking approach to understand Agile and Scrum at a deeper level and see it in a broader perspective of how it fits within a business enterprise as a whole. This new course is in final review now and should be released within the next week. You can view a brief video summary of the course here:

Understanding Agile at a Deeper Level – Video Course Summary

I am offering this new course for a limited amount of time for only $10. You can find information on this offer at the following location:

http://managedagile.com/training-courses/

Is Agile Like the Steam Engine?

Is Agile Like the Steam Engine? I recently participated in a LinkedIn discussion in which the author of the discussion made a statement that “Agile is by definition a software development methodology”. I didn’t agree with that statement at all…Its unfortunate that the word “Agile” has acquired that connotation in actual usage by a number of people but that’s just sloppy use of terminology (similar to the sloppy use of the word “Waterfall” that I’ve talked about) and its also somewhat narrow thinking.

The author of that discussion defended his statement that “Agile is by definition a software development methodology” by saying that “The Agile Manifesto starts with these words ‘We are uncovering better ways of developing software'”. That statement doesn’t work either in my opinion – I’m sure that was a key motivator behind creating the Agile Manifesto but that was in 2001 which was 12-13 years ago and our concept of what Agile is has grown significantly since that time.

I was trying to think of a good analogy to illustrate this point and somehow I thought of the steam engine. The steam engine was originally invented in 1698 by Thomas Savery who was working on the problem of how to pump water out of coal mines. Thomas Newcomen improved on the design but it wasn’t until Scotsman James Watt improved on the steam engine in the second half of the 18th century that it became truly a viable piece of machinery that helped start the industrial revolution. Even though that started the industrial revolution across the whole world, very few people in the 1700’s would likely imagine that that was only the beginning and the same principles originally used to use to pump water out of coal mines would have a much broader usage in the future including powering nuclear power plants.

(Source: http://americanhistory.about.com/od/industrialrev/p/steamengine.htm)

I think Agile is very similar…

  • The roots of Agile go back a lot further than 2001 – you can very easily trace the roots of Agile to TQM and Lean Manufacturing long before 2001 and the evolution of iterative methodologies like RUP certainly also had an influence. The period prior to 2001 was probably equivalent to pumping water out of coal mines
  • Learning to apply The Agile principles to software development in the Agile Manifesto in 2001 was a real breakthrough that is probably similar to James Watt learning how to apply steam to operate industrial machinery that started the industrial revolution across the world. It had major impact, but that was only the beginning
  • Just as James Watt probably never envisioned the use of steam power in nuclear power plants, the signers of the Agile Manifesto probably never fully envisioned widespread implementation of those principles in many other areas beyond software development

In common usage, some people think that the word “Agile” only applies to software development; to other people, the definition is even narrower and you’re only truly Agile if you’re doing Scrum and doing it strictly by the book with no variation. in my opinion, this really is just sloppy use of terminology and narrow thinking in how the word “Agile” is being used. Our understanding of what “Agile” is is still at a very early stage probably very similar to when James Watt learned how to apply steam technology to operate industrial machinery and limiting our thinking about what “Agile” is may prevent us from imagining new applications and ways of using Agile principles and practices that no one has even dreamed of yet.

The Importance of Systems Thinking and Agile

Understanding the importance of systems thinking and Agile is critical in order to gain a deeper understanding of Agile. Wikipedia defines “Systems Thinking as follows:

“Systems thinking is the process of understanding how things, regarded as systems, influence one another within a whole. In nature, systems thinking examples include ecosystems in which various elements such as air, water, movement, plants, and animals work together to survive or perish. In organizations, systems consist of people, structures, and processes that work together to make an organization “healthy” or “unhealthy”.”

Why is “Systems Thinking” important? It allows you to see things in an entirely different perspective:

  • You see the “whole” rather than the “pieces” and understand their relationship. In an agile implementation you see the business as a large ecosystem and see the development process as only one component of that ecosystem and you begin to better understand how the two are interrelated to each other.
  • Within an Agile development process, you begin to better understand how all the components of that process work together to make the overall process more effective and instead of following the process rigidly and mechanically, you see it as a much more dynamic process where each component of the process may need to be adjusted to fit the situation.

“Binary Thinking” is the antithesis of Systems Thinking. Instead of seeing the real complexity that is inherent in many situations, people who engage in binary thinking are sometimes looking for a simple, cause-effect explanation for something that isn’t really very simple at all. They:

  • Tend to see the Agile values and principles in “black-and-white” terms as absolute statements rather than relative statements that need to be interpreted in the context of the situation as they were intended to be.
  • See the relationship of Agile and more traditional plan-driven approaches as “either-or”, mutually exclusive choices (Either you’re Agile or you’re not) and they may see these approaches as competitive with each other rather than seeing them as potentially complementary.

That sort of narrow thinking has led to many stereotypes, myths, and misconceptions about what Agile is and also about what traditional Project Management is. We need to rethink what Agile is as well as rethink what traditional Project Management is to see them in a new light as potentially complementary rather than competitive approaches and “systems thinking” is the key to that. It is also the key to becoming a “learning organization”. Wikipedia defines a “learning organization as follows:

“A learning organization is the term given to a company that facilitates the learning of its members and continuously transforms itself. Learning organizations develop as a result of the pressures facing modern organizations and enables them to remain competitive in the business environment. A learning organization has five main features; systems thinking, personal mastery, mental models, shared vision and team learning. The Learning organization concept was coined through the work and research of Peter Senge and his colleagues (Senge, 1994). It encourages organizations to shift to a more interconnected way of thinking.”

Adopting a “systems thinking” approach and becoming a learning organization are two of the most important aspects of enterprise-level agility.