Information System (IS) refers to the relations that exist between people, processes, information, data and technology in a business environment. It simply forms a link between businesses and the computer world in the enhancement of business processes (Curtis & Cobham, 2005). Information System Development (ISD) therefore is the process through which change is taken in accordance to object systems in a given set up by a group of developers through the application of necessary tools and techniques to meet a desired end. I.S applications can be done through different ways, which have been developed to comply with the diversity that Information Technology (IT) applications present. Hence, different methodologies and approaches are used.
In-House development is one of the methodologies used in IS development and it refers to the development of the programs through internal organizational means. A second approach to the development of I.S is through buying or leasing. Both methods are efficient in the sense that they help in time and cost saving when compared to the in-house option. Buying involves the purchasing of application software while leasing entails subscription to an application service provider (ASP) that supports the given program in its data center. Outsourcing acts as the last option available and it entails the acquisition of a third-party service in the development process. Just like the buying/leasing options, it provides cost reduction if implemented in the right way (Jessup & Valacich, 2003).
System Development Life Cycle (SDLC) is one of the methods used in the in-house development methodology. SDLC is a theoretical model that is used to break down the system of project management in small stages that can be easily worked on and it begins with a feasibility study and ends with the maintenance of the finished product. All the processes involved in the development of the IS are split in phases. SDLC has a number of methodologies that are used and they include the waterfall model, joint application development, fountain model, rapid application model and spiral model. The waterfall model was the original concept that was developed making it be the most widely known and used. The feasibility phase as mentioned is the initial step of the process and it is used to define and assess whether the given project is viable for development. If so, the plan and budgetary requirements are generated for use at the subsequent stages (Kirikova & Grundspenkis, 2002).
System analysis is the next stage, which is responsible for the identification of the problems, finding the solutions to them and the establishment of information requirements. The systems design phase then comes up with the design stipulations needed to make the project a success. The next stage that is known as programming/implementation deals with the encoding of the design ideas into program codes. The testing stage involves the integration of the individual components into a whole product that is then tested as a whole. Unit, system and acceptance tests are run in this stage. These tests ensure that the system is working properly and that it is performing the intended user requirements. The second last stage known as the conversion is where the old system is switched with the new one and the users and technical crew are given training on how to work with the new IS. Finally, the production and maintenance stage is put in place to deal with the regular check up of the system to ensure that it is working properly. Evaluation and modification of the system are done on this stage (Stair, Reynolds & Reynolds, 2009).
Prototyping is another method of the in-house methodology that is iterative (repetitive) in nature as it involves the dedicated utilization of end users to test and suggest modifications of given system prototype before subsequent components, prototypes and IS are built. The prototype here can be a part or full IS that the users are required to review. The process of prototyping is a rapid one encompassing a lot of user analysis and ideas hence requiring a lot of reviewing and testing. Just like SDLC, the first step involves the identification of the basic requirements of the proposed system, which is then followed by the second step that involves the development of a working prototype that is in conformity to the summarized requirements in the former stage. The third stage involves actual usage of the prototype in the bid to find out how the users view the system. If the reaction is positive, an operational prototype is developed as the final product but if the reaction is negative, the product is reverted to the third step for modifications and refinements before the user can review it once more. This process is carried out repeatedly until a satisfactory model is achieved for the operational phase (Liou, 2007).
Prototyping is useful for projects that are small in nature. This is attributed to the iterative nature of the process, which would prove to be costly with the case of huge projects. Systems solving structured problems involve the use of complex processes that may be quite a handful. Repeating and modifying these processes over end over would be very tiring and hard, making it better to use prototyping method for unstructured problems. The dynamism of the system would be useful in projects that are flexible in nature and those whose specification requirements are difficult to formulate. As we have noted the system involves many user reviews, it would be better to use prototyping in the designing of end-user systems. To avoid the wasteful usage of finances in ISD, it would pay to use prototyping in projects whose budget is tight so that the budget constraint would help check the costs and soberness of the project.
A number of advantages are accorded to the SDLC method. The method is highly structured insinuating the point that the user requirements are collected at the initial stage and the subsequent definition of the stages that follow give out a clear outline of what is required. This saves on resources to be used. Since the users are not allowed to use the system until it has been released after completion, the team ensures that the required user desires are met. This calls for a well-defined user input. The team that is allocated to work on the ISD is usually a fixed number with the specifications and job descriptions of each individual or group laid out. This allows for maximum management control in all the departments since the authority is well defined and it allows for the review and evaluation of important components like costs and targets. Development and design standards maintained in SDLC is high and with less risks because they encourage the use of methods that have already been tested and implemented to ascertain their levels of success in the real set up (Avison & Shah, 2007).
With the rigid and highly structured nature of the method, system documentations are created at frequent intervals providing a reliable and efficient accountability and monitoring system. The application is easy to maintain, as it only requires regular check ups and updates of the system, which can only be made by the developers. SDLC is able to cope with the changing of staff attributed to the high definition and standards maintained in the stages of development. This means that any new member can work comfortably in the new environment with minimal or no guidance since everything is defined and clearly stated at each stage. Advantages of prototyping include cost reduction since the process is well able to capture the necessary requirements of the IS at an initial point of the implementation phase. With the nature of the projects that are recommended for prototyping, the time taken to complete a prototype is as little as weeks making it a quicker method. The dedicated process made possible by the collaborating of the users and developers in the creation of the IS help promote a healthy relationship between the two groups and reduces the gap that is often felt in other systems.
Time and cost saving attributed to the possible detection of errors and omissions in the development process at an early stage. The system is highly flexible implying that the systems requirements do not necessarily have to be frozen at the early stages. The development of prototypes is usually a fast process and only few adjustments need to be made after implementation. In addition, the users have a clue of what they expect as the end product making the process of switching easy. The iterative nature of the process reduces backlog reducing the costs of production and the project as a whole. The determination of the user needs is easy to identify and so is the process of end-user learning. Organization of the prototyping process is quick due to the nature of the small-scale projects that are undertaken. Prototyping is best applied in systems that require much user interactions like on-line systems and human-computer interaction that involve a dedicated use of screen dialogues. This is because, the more the interaction that the user has with the computer, the more the benefits that the system can reap. ATM machines, which involve user interaction, are a good example of an application area for prototyping (Liou, 2007).
SDLC on the other hand due to its high structured nature in time aspects would be best used to develop software languages like C++ and Java. This is because, the developer knows what is needed and after the project has been completed; the refinements of the system can easily be done through regular updates on the system. Both systems have a number of risks associated with them. SDLC has a number of methods, which may lead to the inappropriate one being applied. End-user requirements and objectives may not be met, as the system is reviewed by the developers. The system has inadequate involvement of stakeholders and internal auditors to act as system checks. Cost and time overruns due to the colossal amount of resources that the structured projects require and the amount of time too. As the process uses methods that have been tested for some time, risk arises in the sense that the technology and architecture that may be used at the given timings may be out dated or inappropriate altogether. Documentation process is very requiring which may lead to inadequacy of the documentation process. With the fixated curriculum, little or no attention may be given to the interdependency that may be needed between the system and the other applications (Dupont, 2008).
In prototyping, working prototypes may wrongly lead the consumers and management to suppose that the finished product is almost done with. The users may not be able to cope with the amount and level of feedbacks that the developers require of them (Bocij, Chaffey, Greasley & Hickie, 2008). The flexibility of the system may give rise to little control over the system and the workers giving rise to lack of discipline in the development process. The iterative process, which is pegged on customer satisfaction, may lead to the absolute change of a system in the area of design leading to the emergence of a completely new idea and design for the matter. Time may be wasted in cases where the affiliates of the development team do not have adequate administrative and managerial authority. There is no certification that the development team will be able to have a healthy relationship with the users in the iterative patterns of ISD. The situation in which a prototype may be tested for during the development process may emerge to be different with the final system in which the program is being designed for.
In conclusion, SDLC and prototyping are both methodologies used for in-house development methodologies and they all have weaknesses and strengths attached to them. Therefore, as we have discussed, SDLC is best used for large projects while prototyping is best for small initiatives. Before deciding which method to adopt, one should consider the size, time and finances needed to finish the project so that the correct method can be used to ensure the success of the project.
Avison, D. E., & Shah, H. (2007). The information systems development life cycle: a first course in information systems, Sabine TX: McGraw-Hill
Bocij, P., Chaffey, D., Greasley, A., & Hickie, A. (2008). Business Information Systems: Technology, Development and Management, Des Moines IA: Financial Times Prentice Hall
Curtis, G., & Cobham, D. (2005). Business information systems: analysis, design, and practice, Cambridge UK: Pearson
Dupont, A. (2008). Practical Prototype and Script.aculo.us, Berkeley CA: Apress
Jessup, L. M., & Valacich, J. S. (2003). Information systems today, Portage OH: Prentice Hall.
Kirikova, M., & Grundspenkis, J. (2002). Information systems development: advances in methodologies, components, and management, Colfax NM: Springer
Liou, F. L. (2007). Rapid prototyping and engineering applications: a toolbox for prototype development, Boca Raton FL: CRC Press
Stair, R. M., Reynolds, G., & Reynolds, G. W. (2009). Principles of Information Systems, Clifton Park NY: Cengage Learning