I recently went to the Agile Australia conference in Sydney and had an opportunity to attend a complexity theory workshop by knowledge management expert David Snowden. Even though the complexity theory is not a new concept, people are still grappling to imbibe this into management and software development.
Here are a few things that I learned during the workshop.
Most of our view about the world is based on cause and effect, which in turn is a linear way of thinking. However, the world works in a non-linear fashion with multiple agents acting in parallel. System thinking addresses this non-linearity by considering different parts of the system, their relationships with one another, and the entire system itself to solve a problem or create a future state. Some of the tenets include holism and reductionism.
The complexity theory, based on the premise of non-linearity, is the study of complex systems. Complex science embraces life as unpredictable, adaptable, and evolving. The key difference to systems thinking is that the complexity theory tends to solve a problem or build the future state with the assumption of uncertainty. Patterns and abstractions are used to understand complex systems.
Another key concept discussed focused on innovation. Chaos and randomness are the foundations for all innovations. It is proven that a detailed plan with a highly structured process won’t help in building a radical, innovative product.
Constraints emerge from the system to manage chaos and randomness, and the right level of constraint leads to self-organization. However, an over- or under-constrained system is not good for agility. There seems to be myth for agile teams regarding self-organization. Many professionals believe that just allowing the team to function on its own will lead to self-organization. In reality this is partially true; the leaders need to guide and ensure that there is the appropriate level of constraint emerging from the system.
During the earlier era, it was widely believed that the world takes place in the mind, where all decisions happen independently. With the advancement of systems and complexity thinking, it is proven now that cognition lies in the interaction between humans, technologies, and rest of the world. Distributed cognition, as opposed to centralized cognition, fits well with complexity theory.
We go through several ups and downs each day. When you are returning home at the end of the day, do you remember the good events or the bad ones? Several researchers have proven that humans tend to remember the bad feelings more than the good ones.
If you intend to bring a behavioral change in your team, try using a “worst practices list” rather than one that focuses on “best practices.”
Venkatesh Krishnamurthy is an author, speaker and a coach. In his 15+ years of career in the software industry, he has played different roles as a developer, architect and an Agile coach.