![]() |
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. |
![]() |
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 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. |
![]() |
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. |
![]() |
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. |
![]() |
Extreme Programming (XP): |
![]() |
Extreme programming is an adaptive approach to solve software development problems that focuses on communication, collaboration, delivery and change. |
![]() |
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. |