The basic goal of any IT project manager is to complete a project on time and within budget to the satisfaction of the client. An IT project is an undertaking that involves a number of phases of activities from conception to delivery of the end product to the client. The project lifecycle model is a process model that consists of steps that transform the project proposal into the end product. The choice of lifecycle model is important as it determines the approach and the activities the project team performs. Different lifecycle models have different components but the basic four stages –analysis, design, construction and implementation are part and parcel of the models.
As more businesses scramble to go online to avoid losing customers to competitors, Web-based application development projects are increasing. What lifecycle model should a project manager adopt? This article examines a few lifecycle models and discusses the choice of the appropriate model for Web application development.
For years, large application development projects have been using the Waterfall Model which is the ‘classical’ model. The flow of the waterfall is uni-directional, mainly downwards with a little splashing here and there.
The Waterfall Model
In this model, each phase will begin after the preceding phase has been completed. The design of the system will be completed before the program development phase begins. Using this model allows the IT project leader to schedule the different phases and their activities more confidently as there is little iteration and rework allowed. The client and the end-users will have the chance to experience the final working system only when the product is delivered. However, for Web-based applications, a more iterative and flexible development model is essential so that the client and users can have a feel and look of the end product earlier in the project.
A prototype is a working model of some aspects of the project product. It can be constructed quickly and cheaply to be shown to end-users and clients to ascertain their requirements. A prototyping life cycle consists of the following main phases:
- Perform an initial requirement analysis
- Define prototype objectives
- Specify prototype
- Build prototype
- Evaluate prototype and suggest changes
The prototypes developed could be throw-away or evolutionary. Using the throw-away prototyping approach, the final product will be produced using a different platform as the prototypes are used to test out some ideas and discarded after use. An evolutionary prototype can be modified until it becomes the final working system.
The Spiral Model, introduced by Barry Boehm in 1988, uses prototyping to overcome the weakness of the Waterfall Model.
The Spiral Model
This model provides a number of iterations which allow the client to look at the design of the system and gather feedback before the client experiences final product. The first cut would be a prototype of the system. Each cycle consists of requirements analysis, design and development activities, and ends with some deliverables to be shown to the client to help them gain a better idea of the working system.
With each progressive iteration, the client would get to see finer details of the system, and evaluate the prototype. The looping would result in the final working system. The spiral may continue indefinitely, and the phases of activities are repeated. This incremental release model is rather elaborate and expensive to implement. From the viewpoint of project costing, a more controlled spiral model would be preferred.
The Unified Software Development Process is an object-oriented lifecycle model advocated by Jacobson, Booch and Rumbaugh. It comprises four phases:
- Inception – understanding and agreeing the project scope and requirements, identifying project risks.
- Elaboration – developing the design architecture and agreeing on the system’s detailed design.
- Construction – developing the initial fully functional system, ensuring that the product can be transitioned to the client.
- Transition – ensuring that the product is ready to be released to the user community and delivery of the final system.
It emphasises on iterative and incremental development approach and incorporates the Unified Modelling Language (UML) which is used to specify the blueprint of an application. The model does not assume that the system requirements are complete and unchangeable from the beginning. Changes in requirements are allowed. The goal of the elaboration phase is to have an adequate design to start building the system. The construction phase includes incremental integration testings so that when the project is in the final phase of transition, there will be no surprises when the system is finally delivered to the client.
Importance of selecting an appropriate lifecycle model
Developing systems involves many risks such as late delivery and failure to deliver what the client wants and expects. As there is a need for Web applications to be developed quickly, a shorter development process and user-centric approach will be more appropriate for Web application development. Hence, the Unified Process model will be more appropriate as the client and potential users could experience the application earlier and during the transition phase, system could be fine-tuned.
Using the Waterfall Model, there is little room to schedule reworks, and hence any design faults and misunderstanding of requirements will cause project delays. The success of a project is a shared responsibility between the client and the project team. User or client involvement is critical in the development process, particularly for Web applications which are highly interactive systems. The traditional waterfall model is less amenable to user involvement.
Lim Gek Kheng (Ms), is a Senior Lecturer at Ngee Ann Polytechnic. She lectures at the School of Information & Communications Technology (ICT).