IT requirements management is the translation of business requirements to an operational IT system. Where system development is required, your role as the customer is:
This briefing explains your customer role and outlines the development process from a customer perspective.
Whether your IT requirements are to be developed in-house or outsourced, all the activities up to the production of a specification of business requirements are your responsibility as the customer. Many information systems development contracts assume it is possible to know what the requirements are at the start, and that is possible to produce a specification that unambiguously expresses the requirements. For all but the simplest systems this is rarely true. Requirements analysis is an iterative process; the system requirements will change during the period the system is being developed. It will require user involvement throughout the development process. You will also need to be aware of the implications for fixed-price contracts and change control.
System development is complex and subject to rapid change. You must consider the advantages of modular or incremental development, perhaps with more than one provider; you will be responsible for deciding on an appropriate customer/provider interface.
You must also be aware of the implications of the cost of maintenance when the system is in operation. Requirements will change during the life of the system and maintenance costs can be a major component of the total cost of ownership.
Key factors for success are:
You must pay particular attention to ergonomics and human factors; if users do not like the system they will not use it. Usability criteria should be incorporated into requirements and design documentation. You must also consider special user needs, such as disabled users, circumstances of use, novice/expert users.
Business analysts are responsible for identifying and documenting the functional and non-functional requirements for meeting business need. They should have a good understanding of the business area and be able to identify opportunities for effective use of IT.
An acceptance team is responsible (as members or representatives of the user community) for specifying and documenting acceptance test specifications, and for carrying out acceptance tests to ensure that all the specified requirements have been met.
Information systems will not work if end users cannot or will not use them. End users include users within user organisations in public sector, and external users such as the general public - all of these groups must be taken into account.
The requirements of end users must be taken into account in information system design. As they will ultimately be most closely involved with new systems, end users have a useful contribution to make to IS development. They should also be involved in system testing and acceptance (customer satisfaction from the user viewpoint).
You should aim to select standard packaged solutions wherever possible to meet your requirements. If a purpose-built system is the only viable option, ensure that it will meet a real business need.
Users have formally defined roles and activities as user representatives in strategy development, requirements definition, systems testing and acceptance. They should be actively involved in identifying the requirements for:
Effective requirements management ensures that the delivered system meets the customers' expectation on content and costs by maintaining a common understanding of the requirement at each stage of the project, securing a requirements baseline and controlling changes to it, and making the baseline visible to all stakeholders.
You must also take account of requirements for interoperability - that is, the means of ensuring that your systems will be compatible with others across government (see the e-government framework for interoperability). In addition, you will probably have to consider compatibility with existing 'legacy' systems in your organisation (see Infrastructure Management).
You should take an incremental approach to system development, in which the risks are controlled through manageable stages of building up the required functionality.
A typical development process involves, for each increment:
Before commissioning systems development, you should have carried out business analysis as part of strategic thinking about the IS/IT support that your business needs (see Business transformation),
When deciding on the support you need for requirements analysis, consider these questions:
There are a number of different approaches to system development; criteria for selecting an approach depend on critical factors such as time constraints, complexity of requirement and/or uncertainty, with consequent likelihood of the need for an incremental approach. With each approach there will be a series of iterative steps in which the requirements specification is translated from information system requirements into IT requirements, tested for its fitness for purpose and usability and ultimately implemented as an operational system. There may be prototypes and/or pilots; development could be in incremental stages or in discrete components as modules.
A simplified view of the process is shown in Figure 10. It represents a generic framework for development for bespoke information systems and underlies many of the software engineering methods that your provider will be using. The boundary between customer and provider activities will vary depending on your contractual relationship.
The start point, at the top left of the figure, is an initial general and incomplete statement of business activities to be supported by an information system; this is successively refined to form a detailed and complete specification. Development proceeds down the V in a number of phases, each phase delivering a more detailed and precise expression of requirements. The lowest level is capable of being translated into code that the computer system can understand and execute.
The right hand side of the V represents the phases of testing the developed system against the different levels of specification, working from the lowest level back to the top. The final step is for the complete system to be tested against the problem statement to ensure that it meets the business requirements.
Figure 10: A framework for system development
You will need to document your business requirements in a form that:
You should specify whether requirements are mandatory (essential features that must be provided) or desirable (options that would add value but not essential for inclusion in providers' proposals). Your requirements must be described in quantifiable or measurable terms so that you can check that you have got what you asked for. A statement of requirements should be unambiguous in setting out:
You should specify service level requirements (such as service hours, availability), any security restrictions, business continuity issues and usability requirements.
This is the stage of system development that consists of a series of tests designed to demonstrate to the user that all the specified requirements have been satisfied. The purpose of end-user acceptance testing is to confirm that the system is ready for operational use.
In practice, requirements specification may evolve during the process of system development. Some requirements in the original specification may not have been implemented because of cost or time constraints, or because a more efficient solution has been achieved. Refinements to the requirements may have been identified that do not fundamentally alter the scope of the system.
Acceptance tests usually investigate correct function in handling data, resilience of the system to incorrect input, performance, quality attributes such as usability and documentation. You must also build in procedures for dealing with changes during the operational life of the system, to address any residual faults and the need for improvements over time.
Typical approaches to contract for the development of information systems are:
The process model adopted for any system development is determined by the costs and risks of the project. The higher the costs and risks, the more rigorous the techniques used to control the risk. Development projects should always make extensive use of formal methods, expert inspections, prototyping etc to reduce the risks of fundamental errors. (See the Risk Management Guidelines, Managing programme and project risk.)
The estimating process is primarily concerned with project scale; that is, the time and cost involved in specifying, designing, developing, delivering and installing, and sometimes also in operating and maintaining software, hardware, communications and other elements which together make up an IS project. The estimates are derived from the complex relationships which exist between:
Project planners will need to take all these factors into account to achieve the optimum balance of timescales and resources where no simple relationship exists. For example, doubling the size of a programming team does not necessarily halve the time taken to complete a given task.
System development is only one part of the software lifecycle. The IT Infrastructure Library (ITIL) describes a standard set of activities for software lifecycle support. The key processes are:
Quality management activities should take place throughout the system lifecycle - these are built into the design, selection and management of IS products and services.
Security must be considered throughout the system lifecycle. The CCTA Risk Analysis and Management Method (CRAMM) provides a structured approach to the identification of the protective measures required for IT systems. CRAMM should be used:
Detailed step by step guidance can also be found in the Requirements Workbook (PDF).
© Crown Copyright 2008
Page last updated: 2008-10-20