|
||||||||||||||||||||||||||
|
The Attraction of Complexity |
|||||||||||||||||||||||||
|
An alarming number of software project fail. This article offers the tendency towards over-complication as a major reason why. Over the years, I've seen quite a few projects with large requirements and specification phases. A number of these projects eventually either had a drastic reduction in scope or were simply never released at all. I shudder to think of how much time and money these projects have wasted. Most computer professionals have had similar experiences. Of course, this dirty little industry secret is not very secret. The Standish Group's CHAOS project reports in one survey that "only 16.2% (of) software projects (were) completed on-time and on-budget." …(A) staggering 31.1% of projects (were) canceled before they (were) ever completed." The Standish report and other IT pundits offer a number of reasons for this distressing fact of life: lack of user involvement, the relative youth of the software industry, lack of executive support, poor project management, etc. I'll add another reason why projects fail: the attraction to complexity. Complexity is like kudzu; it will only grow unless you persistently fight it. This article offers some reasons why complexity attracts people involved with all software projects. If it must be coded, it must be spelled out. Most computer professionals have instinctively asked their clients to spell out everything in as much detail as possible. Unfortunately, people don't necessarily do a great job articulating what they want, especially when they are trying to describe the details of their future work on a new system. After all, their future work practice and the new system itself are primarily abstractions. Like any story, what clients say they will do in their future work becomes more elaborate over time. However, the essential, important work is often simple and will continue to be simple. But during the development process, everyone, including clients, loses track of the fundamental job they wanted the new system to support in the first place. Those in command of the detail command the conversation. Many side trips on the road to confusion. Get everything you can while you can get it. The situation may even be worse for projects using an internal IT department. Unlike outside consultants, the people working on an internal project may be pulled away when top management feels another need arises with more urgency or importance. Sign-offs are meant to be broken. Most of the fault goes in the first place to asking clients to articulate their future task behavior in detail. Again, clients don't have more than abstractions to work from. This process is difficult for clients to do, and it is prone to inaccuracies, imprecision, missing information, and over-complication. The weight test. Though I've exaggerated this point a bit, there is little doubt that the sheer volume of detail that computer professionals handle adds to their perceived value. If months of project work had not produced a stack of documents, both clients and computer professionals would feel something is horribly wrong. Of course, this more-is-better attitude is yet another reason why projects become too complex. Conclusion.
*Kudzu is a vine that "literally attacks and covers all objects in its path" The Tangled Story of Kudzu, by Kurt E. Kinbacher. A picture of kudzu can be found on the cover of R.E.M.'s Murmur album. Written by Joe GrantPosted on October 24, 2000
|
||||||||||||||||||||||||||