Case Study: The 7 Steps of Software Development – An un-"Real World" Case Study

Chapter I: Introduction

Many computer science courses and textbooks break down the software development process into 7 or so distinct steps. This outline usually consists of the following:

1.  Preliminary Investigation or Analysis - This is the task of extracting the requirements from users and gauging the feasibility of the project. Project sponsors usually know what they want but often have incomplete, ambiguous or contradictory requirements. It is the job of software developers and project managers to steer them in the right direction and to clarify the requirements. Upper management, both in IT and the sponsoring department, should determine if the project has business value to the organization and if there are sufficient resources to complete the project as requested.

2.  Specification and Requirement Analysis - This step can vary a lot depending on the formality, size, and scope of the project and the methodology used in an organization. In general, it involves taking the requirements and describing them in a way meaningful to programmers. In your average business application this usually is a mapping between the user requirements and a description of the functionality to be coded into a program, such as a screen that displays current inventory or a report that has this month's sales figures.

3.  Design or Architecture - This step can also vary according to the project and organization. This step gets into more low level details than the previous step. For example, the specs say to develop a sales report while the design says to use VB.NET, Crystal Reports with an option to export to Excel and to query the data warehouse DB and not the main production DB.

4.  Development or Coding - This is pretty obvious, this is where the rubber meets the road and the program is built.

5.  Testing and Documentation - This is, of course, making sure the program functions as required and that the program's functionality is described fully to allow for easier maintenance in the future. This is probably one of the least favorite areas among software developers.

6.  Implementation or Deployment - This is process of getting the program into the hands of users. This usually includes more than just the act of distributing the software but also providing training to users.

7.  Maintenance - This step is concerned with maintaining the existing program by fixing any bugs and enhancing the software. With a well written system most of the actual maintenance is for small, incremental, improvements rather than actual bug fixes.

These steps are what happen under ideal circumstances, but what happens in the real world of software development can be quite different. In this 10 part article/story, I'll be describing a fictional development project that went wrong. It is based on my own experiences and that of other programmers. Some of it is drawn from the experiences I described in my earlier When Projects Go Wrong article.

We will begin with a look at the company and people involved

Following Chapters
» Chapter II: Cast of Characters
» Chapter III: Preliminary Investigation and Analysis
» Chapter IV: Specification and Requirement Analysis
» Chapter V: Design
» Chapter VI: Coding
» Chapter VII: Testing
» Chapter VII: Deployment
» Chapter IX: Maintenance
» Chapter X: Aftermath and Comments

   Save to del.icio.us

Published on Friday, May 18, 2007   |   © 1999-2007 J. Frank Carr, All Rights Reserved