In-house software development is a complex and time consuming task. It requires detailed planning and teamwork. Careful consideration of time and proper staff training is vital for a successful development and implementation. This report will look in to the many steps in software development and how modern day computer aided techniques have made the development process easier than it was a decade ago.
Systems development life-cycle
The systems development process is treated as a life-cycle. It is a part of a bigger discipline called ‘software engineering’. Thus, the SDLC is the creating or modifying of information systems and the different models and methods used to develop the systems. There are many different types of SDLC models depending on the type of development process and the system being developed. These models include mainly ‘the water fall model’, ‘the incremental/iterative model’, ‘the prototype model’, and the ‘the spiral model’. (Dystems Development Lifecycle)
The Water fall model
This model is the most commonly used model and is popular because of its ‘step by step’ nature much like a water fall. It is the most widely used model and has been used in NASA and US Government projects as well.
The Iterative/incremental Model
This development model is cyclic and was developed to cover the short-falls of the waterfall model.
The Prototype Model
This model revolves around the development of prototypes, incomplete functional system software versions that lead to the final development and implementation of the actual systems software.
The Spiral Model
The spiral model uses techniques from both prototyping and waterfall and is intended for large, complex and expensive software/systems projects A prototype is created which is revised again to develop updated prototypes that finally lead to the system.
We will look at a generalized waterfall model in detail for this report.
The Waterfall Model
The waterfall model is a step by step systems development process. The development process starts of with the formation of a project team. The team consists of a project manager who is responsible of leading the project team, setting deadlines and managing the work breakdown. Systems analysts who gather requirements, analyze the current business processes to understand and come up with a proposed IS example. Then there are developers who actually code and design the system software. Testers are the experts who test the developed system for bugs and errors and report them to the developers who correct and prevent these errors and bugs. The model includes the concept of ‘Structured System Analysis and Design’. (what is SSADM?, 2009) The steps involved in the process include:
Planning and Feasibility Study: an important part in which the business is analyzed to determine if an information system will be feasible and will result in a positive ROI.
Requirements Analysis and specification: gathering and analysis of system requirements from employees, managers, end users and software developers. The requirements are broadly divided into functional and non-functional. The key is to involve all people including managers and users in the software development processes. This ensures that there is no resistance to change and all employees are comfortable with the project. Training is another essential part of this exercise and ensures that the system developed will be sued properly by the end users, without which the system is useless. This approach is called participatory design.
Development: this step involves the developers to actually code the systems software. Nowadays, developers use object oriented programming that divides the code into objects that are pieces of code made to interact with each other. This approach makes the code easy to debug, modify, understand and maintain.
Testing and Implementation: testers continuously test the code for any bugs and errors that are reported to the developers for fixing. After the software is almost free of bugs, the system is implemented. There can be many types of implementation including the big bang; a direct sudden implementation or the phased rollout; in which the new system is implemented department by department and then integrated. (What is CASE?, 2005)
Computer programs and applications can be used along the way to accomplish the above tasks without any extra effort. This is called computer-aided software engineering. A number of software applications are available to aid the project time during the development process.
A number of problems can arise during the development lifecycle. These problems include missed deadlines, delays, failure of a particular component or mismanagement. Most of the problems in systems development are caused by lack of initial planning and failure to understand system/user requirements. Most system implementations have failed because the organization failed to plan properly and analyze its current business processes. Therefore training and involvement of people, planning and requirements understanding are they keys to a successful systems implementation.
The systems development lifecycle is a ‘step by step’ process. The steps that make up the process broadly include: Planning of the development process and analysis of the need for an information system. Requirements and Design, which is the analysis and gathering of requirements of the new system to be developed. Implementation and training, which is the deployment of the developed system and the training of the end users. Verification and Maintenance; which is the testing and care taking of the implanted system to ensure proper functioning in the long run.