The past decade has seen a rapid mushrooming of software development methodologies along with the associated jargon. Gone are the days when you could reasonably expect to know the basic of tenets of all methodologies. Techniques such as Structured Systems Design and Object Oriented Programming now seem obsolete. They have now become part of a more elaborate set of techniques.
The most innovative new kids on the block now are a set of practices known as ASD (Agile Software Development). One of the best introductions to ASD is in the Software Management section of the IEEE Computer issue dated September 2001. Written by Jim Highsmith and Alistair Cockburn it starts with the results of a startling survey. A study of more than 200 software development projects found that in nearly half the cases the researchers could not find the original software development plans. So rapid was the pace of development that the original baseline had long ceased to be relevant.
ASD attempts to get a handle on development by focusing on individuals and interactions, collaborating with customers and iteratively changing the current version of the software. The methodology does not set much store by formal documentation and processes. The methodology suggests that the development team should attempt to produce a simple base product within a few weeks of the start of the project. This base product is shown to customers and a feedback loop started. The base product is refined continuously with design quality being improved in Kaizen-like fashion. Customers get to discuss a product that they can see and experiment with as opposed to long specifications written in terse prose. And the focus is always on a real product as opposed to a virtual product to be shipped in the future.
All this does not mean to say that there should be no formal documentation but the development process should not become a slave to the plan or methodology.
The case concerns the redesign of a large part of the legacy-information system of a medium-sized corporate. The company had a decade old MIS system and the project aimed to shift it to a newer generation RDBMS-based client-server model. The implementation was going according to schedule when the company entered into a collaboration with a giant MNC which had embarked upon a massive program to Web-enable its processes and those of its partners. This resulted in a complete redefinition of the aims of the redesign project. The developers were told to add Web capability as fast as possible. A project management nightmare resulted, rendering all baseline documents totally irrelevant.
The bottom line Software development methodologies should be flexible enough to harness the creative abilities of individuals to deal with turbulent change.
Gautama Ahuja runs a turnkey software company,