The main title of this blog is "creative chaos." What exactly does that mean?
First of all, it is what I came up with after about fifteen seconds of thinking, so it is hard to claim that it's the result of deep thought about the nature of
software development and our need to change.
And yet, that is exactly what I am going to claim. Well, er ... sorta. "Creative Chaos" is not just a silly name; no, it symbolizes what I believe we are
missing from the world of software development, and what we need more of. It is Gestalt.
In North American Culture (and many other cultures) we tend to associate Order with Creation and Chaos with Destruction. The Middle Ages, for example, happened when Rome Fell, and that was destructive and Chaotic. Not only did technology stop advancing, it went backwards, and the world "forgot" about little things like engineering and indoor plumbing.
Again, in this worldview, "Order" is good. The modern military, with its focus on command and control, is what won us two World Wars.
The problem is that those are only half the picture. It is possible to have destructive order - consider the gardener who pulls up carrots not because they are mal-formed, but only in order to make his garden line up in perfect rows.
In business, destructive order is the Micro-Manager who has to direct every decision, while sapping the life-blood out of the workers.
Destructive Order is bad.
The problem is the logical fallacy causes blindness - we fail to recognize destructive order or creative chaos. This means rooting out destructive order (for example, time-wasting and mind-numbing templates and process) can be really hard - and encouraging creative chaos can also be hard.
Yet creative chaos is important for software development!
Here's a few of my favorite quotes:
"Tom Peters's, Thriving on Chaos amounts to a manifesto for Silicon Valley. It
places innovation, non-linearity, ongoing revolution at the center of its world view. Here in the Valley, innovation reigns supreme ..." - James Bach, 1994
"Suppose you have a software development project to do. For each traditional phase, you can draw from a pool of experienced people. Rather than have several designers do the design phase and have several coders do the construction phase, etc, you form a team by carefully selecting on person from each pool. During a team meeting, you will tell them that they have each been carefully chosen to do a project that is very important to the company, country, organization, or whatever. This unsettles them somewhat. You then give them a description of the problem to be solved, the figures for how much it cost in time and money to do similar projects, and what the performance figures for those systems are. Then, after you have gotten them used to the idea that they are special, having been specifically chosen to do an important job, you further unsettle the team by saying that their job is to produce the system in, say, half the time and money and it must have twice the performance of other systems. Next, you say that how they do it is their business. Your business is to support them in getting resources. Then, you leave them alone.
You stand by to give them advice if you are asked. You get their reports, which come regularly but not as often nor as voluminously as the waterfall model. But, mostly you wait. In something like the appointed time, out pops the system with the performance and cost figures you want.
Sounds like a fairy tale, doesn’t it?" - Wicked Problems, Righteous Solutions, Pg. 155
"I think probably there are a lot of workaday programmers working on upgrades to Enterprise Java (now I've insulted all the Java programmers) who never achieve flow. To them, it's just kind of engineering step by step; it's never the magic of creation." - Joel Spolsky
When I've seen the "Magic of Creation" on projects, it didn't come from order - it was spontaneous innovation. It happens when two engineers where chatting while playing foosball. It happened when some guy who reads my blog chatted me up at a conference - it happened at the coffee machine. I can't define it, can't describe it, can't write it down - but I can pursue it - and that can make all the difference.
Schedule and Events
March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com