A comparative analysis of traditional software engineering and agile software development
Various industries handled information and data manually until 1960 when the first software development methodology was hinted. Software development methodologies are key steps in development of information system. Different methodologies have different requirements in terms of cost, time frame, expert requirement, size of the business, maintenance cost, and flexibility in case of changes in the future among others. Therefore, organizations evaluate each methodology in order to come up with the most effect one for their information system development. Software methodology involves a structural framework to plan and manage the processes that are involved in development of information system.Prototyping and dynamic system methodology will be critically evaluated to understand the role of software methodologies in information system development.
Dynamic system development methodology
The method ensures frequent delivery of information system in businesses. The methodology is can be reversed during development in case of errors, and the requirement is based on high level and integrated testing throughout lifecycle, which allows collaboration and cooperation between all stakeholders (Association of Modern Technologies, 2014 Software Development Methodologies)
Since this methodology involves end users and teamwork decision, it forms the best choice for information system development. Future changes can be accommodated since changes are reversible. This methodology follows PRINCE concept since it start with initiation of a project and conclude with crossing of the project.
In this methodology, incomplete software is created, which differs with the final product (software development and engineering, 2012 n.p.). The methodology makes it possible to evaluate the software during the development process and design before it gets to the final step. The software can also be tried before integration in an organization. This method allows involvement of the users and evaluation during designing phase and thus increasing the likely hood of easier implementation in any organization.
In this methodology, users, builder and system interaction are mandatory. It requires expertise for both builders and end-users. With this model, time and cost are decreased compared to traditional method, which becomes a major consideration when developing information system. This methodology is applied mostly in situations there is risk uncertainty. This methodology is best applied in managerial systems, as its main objective is planning, direction, controlling and decision-making. This forms one of the choices for information system since users can be able to do a value analysis and investment can be made at relative increments.
PRINCE plays an important role in information system development since it establishes the management, control, and application of the appropriate software for information system. It gives more insight about the software developed and provides authenticity of the software, which is important in making information system decisions.
According to (Bantra et al, (2010 p 383) agile methodology is based on various values such as
Individual and interaction over processes and tools,
Working software under comprehensive documentation,
Customer or end user collaboration over a contract negotiation the and
Responding to changes over following a plan
The agile methodology builds flexible information systems that can be upgraded or changes in future (Rao, Naidu, & Chakka, 2011 p. 42). For example, if an organization wants to expand its system, it can build its new information system on the existing system. Hence, the methodology is adopted where future changes in the information system are expected. Time aspect makes this approach cost effective. The methodology involves the end users at every stage making software development process effective and accurate (Aitken & Ilango 2013 4758). In addition, the process is fast and efficient thus ensuring that the information system development easy and economical.
The traditional methodologies are fixed and do not allow future changes (Aitken & Ilango 2013 p. 4756). That means that once the information system is developed using the traditional methodology, it will be hard to build a new system using it. The expansions or future changes in the information system require engineers and software developers to start a new system. This is not cost effective for business since they are always in a constant growth and keep on improving their information systems. Thus, agile methodology best suits development of a flexible information system that can be upgraded easily.
The Structured systems analysis and design method, (SSADM) is one of the widely used methodologies in computer applications in private and public sectors since its inception in 1981. The methodology operates under three principle techniques known as logical data, flow data, and event modelling (Al-Humaidan, & Rossiter, 2011, p 3).
Logical data modelling (LDM) technique involves identification and documentation of the necessary data for business or organization information system. The information that the business wants to record on the information systems is identified and documented for inclusion in software development. Consequently, the data flow modelling (DFM) techniques involves identification, modelling and documentation of how the identified data using LDM technique will flow in the information system. It gives details on how various data will be transformed in the system. Then, event modelling (EM) technique identifies and documents the sequence of events in DFM.
The techniques help the engineers to develop information system that meets the end users need since it allows participation of all the stakeholders. However, inadequate research may result to development of poor information systems, which may be cost to the business. The SSADM uses various tools that are important in development of information system. Data flow diagram, (DFD) highlights all the data pathways, while other tools such as data dictionary, decision trees and tables give guidelines on data classifications. The tools make operation of the information easier for the end users.
Unified modelling language, (UML) is a language used in software engineering. It helps the developers to create a system using a standardized language that can be understood easily by both the participants and the system. The main techniques and tools used are diagram and language structures such as class, interactions and activity diagrams (Al-Humaidan, & Rossiter, 2011, p 4).
The main difference between SSADM and UML is that the former interfaces are composed of design dialogue while the latter utilises components and classes of modelled diagrams as interface (Al-Humaidan, & Rossiter, 2011 p. 24-29). In addition, SSADM uses requirement catalogue as the data resources while UML uses modelled stereotype features as data sources.
Software development approach entails identification the information system issues and making decision of how the issues should be solved and the solution remains viable.
The approach helps to develop software in a top down development consisting of independent steps that are completed sequentially. The engineers are able to evaluate each step independent and develop consecutive phases based on completed ones. The methodology is fast and effective for development of small information systems. However, methodology is not suitable to develop large information system because it is slow and cumbersome. In addition, the approach is costly and a short term. According to Stoica et al, (2013, p. 68) this method requires product definition, clear understanding of requirements and technology, and expertise and the system is short lived.
End users approach
In this approach, the end user is the developer of the software. He or she designs the software such that it is able to meet his or her needs. This is done through modification of commercial off-shelf software (COTs).
The approach does not involve formal designing of the information system. The approach does not require documentation of the project. The end user is the main controller of the information system developed from this approach. However, it is not fit for large business and lack of documentation limits future changes of the information system would be very hard. Thus, the approach is not economical especially of growing enterprises.
When the size of the project is large, the software development approach is based on the cost or budget limitations, timeframe taken by the approach, and the flexibility of the approach. This is because, the organizations designs information systems that are economical in that they does not affect their profitability and operations. Approaches that are cheap and are executed in a short span of time are preferred to others that are costly and take long time before completion
Aitken, A., & Ilango, V. 2013. A comparative analysis of traditional software engineering and agile software development. In System Sciences (HICSS), 2013 46th Hawaii International Conference on (pp. 4751-4760). IEEE.
Al-Humaidan, F., & Rossiter, B. N. 2011. A Taxonomy and Evaluation for Systems Analysis Methodologies in a Workflow Context: Structured Systems Analysis Design Method (SSADM), Unified Modelling Language (UML), Unified Process, Soft Systems Methodology (SSM) and Organisation Process Modelling (OPM). Technical Report Series-University Of Newcastle Upon Tyne Computing Science.
Baguio central University 2011.Dynamic System Development Methodology.[Online]. http://www.slideshare.net/mayjoyce89/dynamic-system-development-method.
Batra, D., Weidong, X., VanderMeer, D., &Dutta, K. 2010.Balancing Agile and Structured Development Approaches to Successfully Manage Large Distributed Software Projects: A Case Study from the Cruise Line Industry. Communications Of The Association For Information Systems, 27 383.
Habib M, 2013. Agile software development methodologies and how to apply them. [Online] Retrieved from http://www.codeproject.com/Articles/604417/Agile-software-development-methodologies-and-how-t.accessed
Rao, K. N., Naidu, G. K., & Chakka, P. 2011. A study of the agile software development methods, applicability and implications in industry. International Journal of Software Engineering and its applications, 5,2, 35-45.
Stoica, M., Mircea, M., &Ghilic-Micu, B. 2013. Software Development: Agile vs. Traditional. InformaticaEconomica, 17,4, 64-76.