InfoQ

News

The Trouble With Systems

Posted by Kurt Christensen on Dec 27, 2006 08:00 PM

Community
Agile
Topics
Methodologies
Tags
Value & Metrics
Matt Heusser has written a new piece about the problems inherent with excessively detailed systems and processes, and how this relates to agile software development. According to Matt, the trouble with rigid systems is threefold:
  1. Modeling system effects is hard
  2. The more complex the system, the more variables
  3. The more variables, the more interactions, reactions, and unintended consequences
The result, says Matt, is that in trying to specify everything, overly-complicated systems aren't able to meaningfully specify anything. So how does this apply to agile software development? Matt offers CMM as an example of the overly-specified system:
This is a huge part of the problem that CMM(I) and ISO 9000 have. They want to be one-page descriptions that say "Do the Right Thing" or "Do Good Work", but you need to define "Good" and "Right", and to try to do that... while dealing with all of the variables in software development is, well ... hard.
Agile has been criticized for not being sufficiently prescriptive, but many agile methods - Scrum in particular - assert that rigid definitions are the problem and not the solution. From "The Philosophy of Scrum":
Scrum states that the systems development process is an unpredictable, complicated process that can only be roughly described as an overall progression. Cookbook, step-by-step approaches do not work because they aren't adequately defined and don't cope with the unpredictability of systems development.
To summarize, Matt quotes from software testing expert Michael Bolton:
If your project has dug itself a hole, your process ain't gonna pick up the shovel.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

No comments

Reply

Exclusive Content

Dan Farino About MySpace’s Architecture

Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.

The Maxine VM

Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.

Joe Armstrong About Erlang

Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.

The Limits of Code Optimization: a new Singleton Pattern Implementation

The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.

Pressure and Performance – The CTO's Dilemma

Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.

Biztalk Services in the Cloud

Cloud computing feels like a tomorrow technology. Simon Thurman shows how developers can use Biztalk to create an Internet Service Bus which can be deployed locally or in the cloud.

Java FX Technology Preview

InfoQ takes a look at the JavaFX preview build and talks to Sun Staff Engineer Joshua Marinacci about the upcoming version 1 release expected this autumn.

Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams

Jeff Sutherland, co-creator of Scrum, and Guido Schoonheim, CTO of Xebia, present an actual case of reaching hyper-productivity with a large distributed team using XP and Scrum.