4.4 The Context of IT Projects


There is a wide range of Information technology projects.
Some IT projects involve software development which in turn can be simple or complex projects.
Other projects might be hardware-oriented. Project Management is crucial to the successful development of IT systems.
The following statistics show the great need to apply sound project management processes and methodologies in IT system development.
Only 27% of software development projects are delivered on time, within budget, and meet user expectations.
Approximately 67% of all major IT projects are delivered late.
More than 50% of all large software projects exceed their budget.
Cost of system failure in the US is approx. $1bn per year
Average cost of related downtime in the financial sector estimated at $6.45m per hour.
In the last 6 years, over-budget and cancelled UK government's IT projects cost was £1.5bn.

4.4 The Context of IT Projects


A Successful IT project manager must ensure that user requirements are achieved within the delivery time period and within the allocated budget.

A number of system development life cycle models have been devised to manage the development process of an IT project in various phases.
Such models can be divided into two categories, the predictive life cycle and the adaptive software development (ASD).
The predictive life cycle requires that the scope of the project be clearly defined early in the life cycle and therefore schedule and cost can be determined.
The adaptive software development (ASD) life cycle model assumes that software follows an adaptive approach because the requirements cannot be clearly articulated early in the life cycle.

The following are the most popular models of a predictive life cycle:

The waterfall model:
It is traditional model used in software development.
It assumes that phases are organized in a linear order; each phase must be completed before continuing to the next phase.

4.4 The Context of IT Projects


The activities involved in the waterfall model are: requirements analysis, project planning, system design, detailed design, coding and unit testing.
The advantage of this model is that a schedule can be prepared with deadlines for each stage of development.
This model can be applied where the requirements are well defined and understood in advance and unlikely to change during the development stage.
The spiral model:
The spiral model life cycle involves four phases; planning, evaluation, risk analysis and engineering.
These four phases are iterated one by one in order to eliminate all the problems associated with each of them.
This model can be used for large, complicated and expensive projects.
The advantage of this model is that changes and modifications can be applied to the system at any stage.

4.4 The Context of IT Projects


The prototyping model:
In this model, the project requirements are fully and clearly defined by conducting meetings between the developers and customers.
This is followed by building a prototype to represent and understand these requirements.
Finally, the customers review the system and provide feedback.
The prototyping model is proved to be useful in systems with many interactions with users.
The rapid application development model (RAD):
The aim of this model is to develop a system solution in a short period of time without affecting the specified quality.
The advantages of this model are that it is flexible, adaptable to changes and provides a short development life cycle which appeals to the users as the product can be seen quickly.

The following is the most popular model of the Adaptive life cycle:

Extreme Programming (XP):
Extreme programming is an adaptive approach to solve software development problems that focuses on communication, collaboration, delivery and change.

4.4 The Context of IT Projects


Customer involvement and feedback are encouraged from early stages of development.
Moreover, customers are invited to planning meetings at the start of each iteration which helps in defining the requirements.
Then, each task is allocated to a person in the team.
To ensure accuracy and increase productivity, all production code is written by two programmers sitting at one machine.
At the end of the iteration, a working system is delivered to the customer. It emphasizes quality by writing tests before carrying out the programming.