A software project is concerned not only with the actual writing of software. In fact, where a software application is bought in 'off-the-shelf, there might be no software writing as such. This is still fundamentally a software project because so many of the other elements associated with this type of project are present. Usually, there are three successive processes that bring a new system into being:
I. The feasibility study This is an investigation to decide whether a prospective project is worth starting. Infonnation will be gathered about the general requirements of the proposed system. The probable developmental
Chapter 4 on project analysis and technical planning looks at some alternative life cycles.
and operational costs, along with the value of the benefits of the new system arc estimated. With a large system, the feasibility study could be treated as a project in its own right. This evaluation may be done as part of a strategic planning exercise where a whole range of potential software developments are evaluated and put into an order of priority. Sometimes an organization has a policy where a scries of projects is planned as a programme of development.
Figure I.I A typical project life-cycle.
The PRINCE 2 method, which is described in Appendix A takes this planning by stages approach.
3. Project execution The project can now be executed. Individual projects arc likely to differ considerably but a classic project life-cycle is shown in Figure I.I.
The stages in the life-cycle illustrated in Figure I.I above are described in a little more detail below:
Requirements analysis This is finding out in detail what the users require of the system that the project is to implement. Some work along these lines will almost
2. Planning If the feasibility study produces results that indicate that the prospective project appears v iable, then planning of the project can take place. In fact, for a large project, we would not do all our detailed planning right at the beginning. We would formulate an outline plan for the whole project and a detailed one for the first stage. More detailed planning of the later stages would be done as they approached. This is because we would have more detailed and accurate information upon which to base our plans nearer to the start of the later stages.
certainly have been carried out when the project was evaluated but now the original information obtained needs to be updated and supplemented. Several different approaches to the users' requirements may be explored. For example, a small system that satisfies some, but not all. of the users' needs at a low price may be compared to a system w ith more functions but at a higher price.
Specification Detailed documentation of what the proposed system is to do.
Design A design that meets the specification has to be drawn up. This design activity will be in two stages. One will be the external or user design. This lays down what the system is to look like to the users in terms of menus, screen and report layouts and so on. The next stage produces the physical design, which tackles the way in which the data and software procedures are be structured internally.
Coding This might refer to writing code in a procedural language such as C or Ada. or might refer to the use of a high level application builder. Even where software is not being built from scratch, some modification to the base application might be required to meet the needs of the new application.
Verification and validation Whether software is developed specially for the current application or not. careful testing will be needed to check that the proposed system meets its requirements.
Implementation/installation Some system development practitioners refer to the whole of the project after design as 'implementation' (that is, the implementation of the design) while others insist that the term refers to the installation of the system after the software has been developed. In this case it encompasses such things as setting up data files and system parameters, writing user manuals and training users of the new system.
Maintenance and support Once the system has been implemented there will be a continuing need for the correction of any errors that may have crept into the system and for extensions and improvements to the system. Maintenance and support activities may be seen as a series of minor software projects. In many environments, most software development is in fact maintenance.
Brightmouth College is a higher education institution vshich used to be managed Exercise 1.2
by the local government authority but has now become autonomous. Its payroll is still administered by the local authority and pay slips and other output are produced in the local authority's computer centre. The authority now charges the college for this service. The college management arc of the opinion that it would be cheaper to obtain an 'ofT-the-shelf payroll application and do the payroll processing themselves.
What would be the main stages of the project to convert to independent payroll processing by the college? Bearing in mind that an off-the-shelf application is to be used, how would this project differ from one where the software was to be written from scratch?
Embedded systems are also called real-time or industrial systems.
It is important to distinguish between the main types of software project because what is appropriate in one context might not be so in another, l or example. SSADM, the Structured Systems Analysis and Design Method, is suitable for developing information systems but not necessarily other types of system.
A distinction may be made between information systems and embedded systems. Very crudely, the difference is that in the former case the system interfaces with the organization, whereas in the latter case the system interfaces with a machine! A stock control system would be an information system that controls when the organization reorders slock. An embedded, or process control, system might control the air conditioning equipment in a building. Some systems may have elements of both so that the stock control system might also control an automated warehouse.
Would an operating system on a computer be an information system or an embedded system?
Service level agreements are becoming increasingly important as organizations contract out functions to external service suppliers.
Objectives versus products
Projects may be distinguished by whether their aim is to produce a product or to meet certain objectives.
A project might be to create a product the details of which have been specified by the client. The client has the responsibility for justifying the product.
On the other hand, the project might he required to meet certain objectives. There might be several ways of achieving these objectives in contrast to the constraints of the product-driven project. One example of this is where a new information system is implemented to improve some service to users inside or outside an organization. The subject of an agreement would be the level of service rather than the characteristics of a particular information system.
Many software projects have two stages. The first stage is an objectives-driven project, which results in a recommended course of action and may even specify a new software application to meet identified requirements. The next stage is a project actually to create the software product.
Would the project to implement an independent payroll system at the Brightmouth Exercise 1.4 College described in Exercise 1.2 above be an objectives-driven project or a product-driven project?
Was this article helpful?
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.