Monday, May 31, 2010

Agile is a Great Answer to an Important Question Never Asked

Sometimes I think agile software development is a really good answer to a question that has never been asked.

There are plenty of good reasons for bottom-up agile initiatives in companies. If implemented correctly, agile is great for software developers. If software development is a company bottleneck, a bottom up agile initiative can be great for the company too.

You may feel there is a "but" coming, and there is:

But in the long run, agile initiatives are unlikely to succeed unless managers at all levels buy into it. That is unlikely to happen with a bottom-up initiative, because agile methods are practical implementations of a management paradigm that is very different from what most companies have. Bottom up agile initiatives have to fight the system. In most cases the system will win.

Agile has a much better chance of succeeding when going agile is the response to a management initiative. Top-down initiatives make agile a natural part of a new system. It is still difficult to win, but the agile effort can have support from many other similar initiatives all over the organization.

What are the questions from management that could prompt software developers to reply "we could use [insert favorite agile method]."

Let's begin by listing a few problems management might have, that an agile method might help solve:

  • Software development takes too long
  • Software maintenance costs too much
  • There are too many defects in the software
  • The software we build does not excite the users.
  • We do not see any revenue until at the end of the projects
  • Staff turnover is too high
  • Departmental silos make it difficult to work together
  • Our business strategy and what the IT department delivers don't match
  • Our budget planning is killing us. We want to switch to a budgetless financial system. (You may have to think about that one a bit.)
  • We want to democratize the company (Like Gore & Associates, or Semco)
  • We want to redesign the company into a network structure (Like Gore & Associates, Semco, BNI, VISA or Virgin.)
  • We need to reduce strategic cycle time and need to shorten software development cycles to match
  • We need to improve the quality of strategic and tactical decision making throughout the company

All are valid objectives. (Technically, they are intermediate objectives, not end goals. I'll let you reverse engineer suitable end goals yourself.) The last four are the real winners, and of course they are linked together with each other, and with the other questions. I haven't heard about  a company where management has asked one of those questions though. (If you have, please tell me about it.)

The problem with agile is that agile offers excellent solutions to problems that managers should ask, but don't. Today there is plenty of hard evidence that:

  • Democratized companies are more innovative than others. Companies like Gore and Semco have a history of leaving their competitors their wake.
  • Network organizations are faster, more innovative and more resilient than hierarchical organizations.
  • Cycle time is a key differentiator in strategic planning. Having the same strategic cycle time as your competitors because nobody thought about it is downright embarrassing.
  • Decentralized organizations can make better decisions faster than hierarchical command & control organizations.
If you use Systems Thinking (in one form or another) to design a company that does software development, agile (in one form or another) will almost inevitably pop out as the solution to several common problems, except perhaps the most common problem of all: Lack of interest in solving systemic problems.


Bob Marshall said...

Shame there's no "tweet this" button!

Henrik said...

Now there is!

Thank you for pointing it out.