Companies and organizations big or small, rely on information technology for their continual survival. Consider such organizations as power and water companies that have to calculate millions of customer bills every month. The clerical effort needed is simply enormous. Consequently, without a proper and effective information system, it is hard for the companies to achieve their strategic business plans. This is where system development comes in. Simply defined, system development is a conceptual method used in project management. It describes the stages involved in an information system development project right from the initial feasibility study stage through to the maintenance of the complete application. The stages involved in the development of an information system constitute the system development process.
System development process
According to Green & DiCaterino, the system development process is used to guide the study, design, development, and maintenance of information systems. The process gives rise to the system development life cycle (SDLC). A systems development lifecycle also referred to as the SDLC, is a theoretical method that is used in project development. The cycle is used in the definition of stages involved in the development of an information system development project. According to Green & DiCaterino, these stages include system conceptualization, software integration, testing, implementation, and maintenance (1998). The SDLC is by far the oldest formalized methodology used for constructing information systems. While there are many different methods and techniques that a CIO may use to direct the life cycle of a development project, it is important to note that they all have similar goals and share many tasks (1998). Professional system developers and also the customers that they serve to share the common goal of creating information systems that effectively support business process goals. To guarantee that lucrative quality systems that address an organization’s business needs are developed, people employ a model for system development processes in order to direct the project’s lifecycle.
Methodologies and techniques
Different methodologies are used in the system development process. The purpose of the methodologies is to guide the system development process. The most common methodology in SDLC is the waterfall model. Others include the spiral model, Rapid Application Development (RAD), Joint Application Development (JAD), the fountain model, the build and fix, and finally the synchronize and stabilize. According to Green & Dicateroni, most system development process models have evolved from the waterfall model (1998). The waterfall model comprises such steps as system conceptualization, system analysis, system design, coding, and testing.
Moreover, there are also such methodologies as object-oriented programming, unified modeling language, computer-assisted software engineering, participatory design, and structured systems analysis and design that are used for specific activities such as software development. Software development methodology to the layman is the framework used for purposes of structuring, planning, and controlling the processes used in the development of an information system (Green and Dicateroni, 1998).
Object-oriented programming also referred to as OOP, is a programming prototype that commonly makes use of objects and their interactions with the idea of designing applications and computer programs. Object-oriented programming makes use of the information hiding programming techniques. Information hiding is the process through which planning decisions are hidden. In most instances, the decisions often hidden are those that may potentially affect other computer programs. Information hiding is applied when information may want to protect computer programs from changing in the event that they do change the system plan. This particular methodology focuses on data rather than processes. Accordingly, programs are composed of self-sufficient modules which contain the necessary information vital for data manipulation). Other techniques may include data abstraction, encapsulation, and modularity. The unified modeling language (UML), is a regular general-purpose modeling language commonly used in software engineering. It is used for purposes of specifying, visualizing, constructing, and documenting the artifacts of an object-oriented software-intensive system under development (Bezivin & Muller, 1998). Structured systems analysis and design (SSADM), is another methodology commonly used in software development. It is described as a systems method that is used for purposes of study and design of information systems. The three most important techniques used in this methodology are, logical data modeling, data flow modeling, and entity behavior modeling. Logical data modeling involves the classification, representation, and documentation of the data needs of the information system under planning. This data is then separated into entities and relationships. The same process of data classification, modeling, and documentation also applies in the data flowing modeling technique. The information officer records how data moves through an information system. As opposed to the logical data modeling technique, the data flow modeling technique is more concerned with the examination of processes, data storage, and flow. On the other hand, the entity behavior modeling technique involves the identification, modeling, and documentation of all events affecting entities (things about which a business needs to record information) and the sequence in which these events occur (Hutchings, 1996). Participatory design. In this approach, information officers take it upon themselves to actively involve the would-be end-users in the planning process. This then helps to ensure that the system that is designed is up to the user’s needs and is functional. This approach is more common in the system development model referred to as iterative. Computer-assisted software engineering is a method commonly used in the development, management, and maintenance of software applications using computer-aided software tools (Hutchings, 1996).
System development is associated with certain problems. For companies that may be applying the waterfall model, it should be noted that one of the major problems associated with the model is that the real projects rarely follow the chronological flow that the model suggests. It is possible that even after implementation, problems may arise with the system. as a result, it may be necessary for system design to be carried out again. Moreover, at the beginning of most projects using the waterfall model, there is a lot of uncertainty about the requirements and goals. it then becomes difficult for customers to identify these criteria on a detailed level. This is because the model does not accommodate natural uncertainty well (Green & DiCaterino, 1998). However, the biggest problem associated with the waterfall problem is the fact that it is a very long and painstaking process where the working version of the system is not forthcoming until the very last stages.
The reason why system development is applied is cost saving. Programs and procedures relating to application areas selected for computer support are designed so as to minimize the cost of such applications. Nevertheless, as the system evolves a company may realize that the design may need to be overhauled meaning a change in the procedures and programs. Sometimes, there are no foolproof ways of avoiding this but preplanning and exploration of growth options before carrying through with the system development process are advised (Burrows, 1970). For instance in the waterfall model, unless everything is clearly thought out at the concept stage it is considered hard to change or revise even though it may be important to do at a later stage. These problems associated with the waterfall model lead to the demand for a new way of developing a system that could potentially yield faster results and that offer greater flexibility. Thus, many companies would opt for the iterative development model. In this model where tasks are divided into smaller parts making it easier to produce results earlier (Green & DiCaterino, 1998).
System development is a conceptual method used in project management that describes the stages involved in an information system development project. The most common system development model is the waterfall model. Other models which are specific in nature are object-oriented programming and structured systems analysis and design. The two are used in software development. System development has gained prominence from the changing needs of the customers. Customers not only demand faster results and they also want to be more involved in the development process.
Green, D. & DiCaterino, A. (1998). A survey of system development process models. Center for Technology in Government. Web.
Burrows, J. (1970). Persistent problems in system development. The Mitre corporation: Bedford, Massachusetts.
Hutchings, T. (1996). Information Systems. Web.
Bezivin, J. & Muller, Pierre-Alain. (1998). The unified modeling language. Mulhouse: France.