PM Quote of the Day — Tacitus

All enterprises that are entered into with indiscreet zeal may be pursued with great vigor at first, but are sure to collapse in the end.

Keep this quote in mind when trying agile or iterative development for the first time. There’s a great temptation to be all “gung-ho” during the first sprints of one’s first projects. But agile puts more of a premium on consistent, repeatable execution than one might first imagine.

Because the idea is to go through repeated iterations, agile approaches can burn out teams if a team starts with and tries to sustain a “heroic” pace. Select and work your sprint backlog judiciously!

Planning and flexibility aren’t mutually exclusive

Excellent post by Craig (here) which gets to the way we need to be thinking about our projects and programs these days.  Our methodological ideologies can get in the way of using the appropriate approach for what we’re building, implementing, or upgrading. 

What is presented as an either/or choice, isn’t.  The answer is “both”.  A plan is not “that which is carved in stone just after the project is chartered” (and shall not be deviated from save for acts of one God as one understands God).  And agile isn’t “doing whatever the heck we think should be done as quickly as possible” (and the product owner be damned). 

The post comes with some great comments as well. 

Finally, nice graph.  I would go with “rigid” vs. “stubborn”.

How much complexity theory can we apply in IT?

I’m fascinated by complexity theory and attempts to apply its insights to the software business.  If you’re interested in those topics you could do worse that to add two bloggers — Jurgen and Bas — to your newsreader (don’t forget about Crossderry). 

Both touch on complexity regularly (Jurgen’s latest here, Bas’s latest here) and they’re clearly big fans of the theory and its implications.  I agree there’s much that’s applicable, especially the concepts of iteration and feedback, which can even be used in “waterfall” approaches (here and here).  My academic background makes me especially sympathetic to the limits of central planning (start here re: Hayek).

That said, I’m not sure we can rely on self-organization for everything.  The most effective models of complex adaptive systems are derived from simple rules that generate complex phenomena.  This approach is mimicked effectively in agile, iterative, and other rapid development techniques (list of SW methodologies here).  Simple feature lists, regular interactions with stakeholders, short cycles, many versions of usable work product, etc. can generate feature-rich and useful applications.

However, the scalability and stability of these applications is often problematic.  IMO, this result is to be expected given the evolution of complexity among living things.  We like to point to complex creatures and structures — e.g., human brains — to support applications of complexity theory. 

But do we remember that most life is still very simple (about half of the biomass is microscopic)?  Also, aren’t complex creatures the ones that have had the spectacular denouements over the eons?  Betting on self-organization isn’t always a winning bet.  As I said, I instinctively like leveraging complexity concepts, but we must remember that they cut both ways.

%d bloggers like this: