Ken Orr wrote ( in Cutter IT Journal Vol.3, No. 7 ):

Agile . since Jun 23 . Index . DOCs TOP TOC

The Pluses of Agile Development


To begin with, agile development is all about the end product. In an agile development project, the product is always the clear focus -- not the requirements, nor the design, but the final, delivered product. Having the product as its main focus makes up for a lot in the real world of project management.

A second major advance that agile development brings to software is institutionalizing the process of incremental product releases, while, at the same time, challenging the time involved to produce them. Most nontechnical people respond best to something they can see and touch.

Another plus is the focus on integrating many programming best practices into basic principles that all work together. The agile development folks have done an admirable job of taking a lot of things that have been known for a long time -- how programmers work best and how to produce quality software -- and blended them together into a single coherent whole. After studying it for a while, it strikes me that agile development is quite a lot more than the sum of its parts.

Agile . since Jun 23 . Index . DOCs TOP TOC

The Minuses of Agile Development


Right up front, agile development presents a number of hurdles for many organizations. One such hurdle is that unless you're already committed to OO design, you may have to start there. Most of the agile development gurus start out assuming that OO development is the basic platform.

Next, there are a number of organizational issues. Many organizations have trouble with activities where the team, not the individual, is the key. Personally, I find this refreshing, but for many hard-line managers, it may be difficult. And then there is the issue of the full-time user. In many organizations, it is simply impossible to get the full time of many of the key people. I know that some in agile development shrug and say, well that's tough, no full-time user, no product or system; however, the issue of user involvement can be a deal breaker.

It would seem to me that working on an agile development team would not be everyone's cup of tea.15 In most North American organizations, programmers are brought up to be responsible for their individual activities. Many programmers went into programming because they like to work alone -- just them and the machine. Agile development calls for a very socialized individual. It may be a lot better; it's just not the way that many people have been brought up.

A more significant issue for agile development is the concept of the user. All large systems have many users, not just one. Getting to the requirements with many users is not a simple task. When I see people talk about the user or the customer, I'm always somewhat amused because it shows that there is a fundamental problem understanding the nature of the problem. If you have a customer, then there is some chance you will have a unified set of requirements. If you have customers, you will always have conflicts and ambiguity because multiple people will always have different viewpoints. And having a single person stand in for the customer doesn't necessarily solve your problems; you're still one level removed from the real customers.

Agile . Index . DOCs . TOC