DZone
Agile Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Agile Zone > It Takes Complexity to Handle Complexity

It Takes Complexity to Handle Complexity

Jurgen Appelo user avatar by
Jurgen Appelo
·
Apr. 05, 11 · Agile Zone · News
Like (0)
Save
Tweet
1.84K Views

Join the DZone community and get the full member experience.

Join For Free

 A software project is a network of people, interacting together for their own purposes. We can see part of that network as the system of team members producing value, and another part of it is the environment of stakeholders consuming that value.

W. Ross Ashby, one of the fathers of General Systems Theory, came up with one of the basic principles for systems, called Ashby’s Law, or the Law of Requisite Variety:

“If a system is to be stable the number of states of its control mechanism must be greater than or equal to the number of states in the system being controlled.”

In other words, in order to survive a system must have an internal model that reflects the variety it encounters in the world outside.

Nobel-prize winner Murray Gell-Mann, founder of the famous complexity institute in Santa Fe, wrote it like this in The Quark and the Jaguar:

“The genotype of each organism, or else the cluster of genotypes that characterizes each species, can be regarded as a schema that includes a description of many of the other species and how they are likely to react to different forms of behavior. An ecological community consists, then, of a great many species all evolving models of other species’ habits and how to cope with them.”

Not being a founder of any scientific field or institute, I have my own simplistic version of the same idea:

“It takes complexity to handle complexity.”

Software teams have three options when dealing with a troublesome environment:

  1. Reduce the complexity in the environment;
  2. Increase the complexity inside the system;
  3. Ignore complexity (survival is not mandatory).

The first is rarely possible. The third is rarely smart.

That leaves software teams with the second option: try to match the ever-changing complexity of the environment with social complexity (people & interactions) and continuous improvement (embracing change).

This is, I believe, the core of Agile and Lean thinking...

Published at DZone with permission of Jurgen Appelo. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • What Is Cloud-Native Architecture?
  • An Overview of Key Components of a Data Pipeline
  • How to Design a CRUD Web Service for Inheritable Entity
  • Applying Kappa Architecture to Make Data Available Where It Matters

Comments

Agile Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo