In broad terms, systems development is the process of designing, implementing and testing a system that fulfils some predetermined set of requirements. Usually, the system in question is a business system that requires the development of a new software application. Typically, the new application is intended to replace an existing application (or in some cases a paper-based system) that is no longer able to meet the demands of the business it was designed to support.
The introduction of a new software system is often accompanied by the introduction of new computer and network hardware. This may be necessary if existing computer hardware is unable to run the new software effectively, or if existing network storage capacity is no longer adequate for the demands of the business, or if current data transfer speeds are causing unacceptable delays at network bottlenecks.
Development of the new system usually starts with a process called systems analysis, during which the existing system is thoroughly investigated in order to determine how the business currently operates, identify business needs, and highlight any shortcomings in the existing system. The new system is then designed, taking into account both the business needs identified during the system investigation and any additional requirements specified by the main stakeholders.
The final phase of the development process is the implementation and testing of the new system, which is often run in tandem with the old system until all of the stakeholders are satisfied that it can fulfil the specified requirements. The program code for the new application is written. The new software is then installed and tested, along with the new hardware. Testing is usually carried out on an ongoing basis during this phase so that any necessary adjustments can be made immediately.
Although we have broadly outlined the activities that take place during the systems development process, there are numerous and often quite diverse techniques that can be used to carry out these activities, especially in the field of systems analysis. In addition, the analysis, design, implementation and testing phases all involve different disciplines. Systems analysts and designers usually collaborate, but are rarely involved in the implementation and testing phases. Code is written and tested by computer programmers, and hardware is installed and tested by technical staff.
Tying all these activities together to ensure that the end result satisfies the needs of the business client is not an easy task. We usually refer to this task as project management. In very broad terms, project management is carried out by a team of individuals who are tasked with coordinating the various activities, allocating resources, monitoring progress, and periodically reporting on all aspects of the project to stakeholders. Project management itself can encompass a broad range of tools and techniques, some of which we will look at in these pages.