System development methodologies pertain to steps followed to form, plan, and control the process of developing an information system. Conventional systems development methodologies include system prototyping, joint application design, and rapid application design. These systems differ based on techniques, teamwork, and the organization. Although these methods vary in their approach and their form, they share the same goal of driving teams responsible for design and implementation during their application (Nugroho et al., 2017). Each of the methods is only suitable for a specific project meaning that no system development methodology can suit all projects. This research discussion defines the system development methodology and compares various methodologies, their significant components, and core purposes.
System Development Methodologies
Current systems development methodologies are founded on common concepts that include: prototyping, user participation, and systems development lifecycle. They consist of fundamental design strategies, such as information hiding and functional breakdown. They also comprise of techniques, such as data flow diagraming and entity-relationship modelling. The goal of system development is to enhance organizational productivity. Due to increase in size and capacity of system development, there has been an increased need to systemize the process of system development that includes a set of steps. A system development methodology outlines activity, such as defining, building, and implementing a structure. Each comprises of different components; although there are different methodologies, the primary components of methods are similar. A methodology is made up of micro and macro components. Macro components outline the overall flow as well as the time-sequenced framework to perform different tasks. On the other hand, micro components comprise of general design rules and patterns.
System Development Life Cycle (SDLC) methodologies outline mechanisms that assure that the software used meet established requirements. Each methodology imposes a certain level of discipline to the software development process intending to increase efficiency and predictability of the process (Dias & Ferreira, 2018). A standard SDLC methodology is made up of several phases, such as design, coding, requirement analysis, testing, installation and maintenance.
Requirement analysis represents the first stage of SDLC and is responsible for knowing the actual client requirements and documents them accurately. This phase identifies what is needed from the systems and the output of requirement analysis include software requirement specification (SRS). The SRS provides a comprehensive description of the behavior of software being developed.
The design phase is considered to be the most creative in SDLC. This stage transforms the requirement specification into a plan or a structure. Main activities in this step include planning and problem-solving; it demands software designers to describe the plan for a solution.
This phase converts the Software Design Document (SDD), which is the output of the design phase, into code using a programing language. It represents the logical phases of SDLC, and its output is the program code.
This phase involves testing to find out the outcome of the application or the actual as well as the expected results. It is the most essential and influential stage as effective testing offers high-quality software products, lowers maintenance costs, and provides accurate and reliable results.
Represents the final phase of SDLC in which software developed is distributed to end-users who undertake maintenance and use responsibility.
There are different software development process models with each following a specific life cycle. Common SDLC models include the waterfall model, spiral model, iterative model, incremental, prototyping, V-shaped, and RAD model (Eason, 2016). Each of these models of software engineering performs specific roles in software development.
Agile processes and methodologies have significant applications in software project management and scheduling. They promote faster development time and lower defects rates meeting customer needs (Eason, 2016). The agile process follows an SDLC that includes requirement gathering, analysis, design, coding, and testing (Edeki, 2015). The process emphasizes on meeting customer needs with faster development time.
Decision Criteria and Data Sources
Decision criteria in an organizational setting vary and define facets or variables that influence the decision-making process of a business. They aid in evaluating alternatives from which a firm can choose the most effective method. Decision criteria should be measurable, and within the scope of the problem, a company is attempting to solve. Based on the two systems involved in this case, SLDC and the agile process and the data sources, the most effective decision criteria for this case is the use of algorithms. It will involve the creation of an algorithm that makes decisions or performs an evaluation based on the benefits each method will provide on system development methodologies. The criteria will be documented in plain language to promote understanding of what the algorithms do by users. The decision made will be based on organizational context and culture, available technological infrastructure, and industry and competitive environment. Other factors will include the expected output and data sources and types.
Data Collection and Synthesis
This research discussion will employ a simple concept of data collection. Conventional methods that will be used include interviews, surveys observation, systems analysis models, and documentation. Most of the data will be first-hand, increasing its reliability. Each set of data will be tested or validated before import and processing to check the accuracy and quality of the source. Data will be validated using the range check technique that involves working with data containing numbers, dates, and time values. The method will involve creating boundaries and using them to determine a range for checking the accuracy and quality of the data. For example, there will be an upper and lower limit that will determine the highest and lowest data limit. The data will be organized chronically; it will be prearranged in a sequence of dates or time frames. It will indicate when, why, and how it was recorded and also highlighting particular projects in which it was recorded. The synthesis of the information will follow a meta-analysis that will combine findings from different projects and obtain a quantitative approximation of the overall impacts of different system development methodologies. Hence, these data collection, validation, and synthesis methods will ensure the accuracy and quality of information to facilitate decision-making.
Analysis and Presentation to Management
Data analysis and presentation to management will follow unique methods; for example, it will be analyzed using SPSS to arrive at the outcome that will enable decision-making. The presentation will be in three different forms; as text, in tabular form, and graphical form. As a text, it will follow a report form but with clear categorization and formatting. In tabular form, it will be differentiated and relate to different datasets; for example, it will be a simple pros and cons table and with the corresponding value. In graphical form, it will follow simple graphs that are easy to comprehend; specifically, it will be in both bar graphs and pie charts.
Dias, J. P., & Ferreira, H. S. (2018). State of the Software Development Life-Cycle for the Internet-of-Things. ACM Comput. Surv. 9, 4, Article 39, 1-38. Web.
Eason, O. K. (2016). Information systems development methodologies transitions: An analysis of waterfall to agile methodology. Honors Theses and Capstones. 286, 1-23. Web.
Edeki, C. (2015). Agile software development methodology. European Journal of Mathematics and Computer Science, 2(1), 22-27. Web.
Nugroho, S., Waluyo, S. H., & Hakim, L. (2017). Comparative analysis of software development methods between Parallel, V-Shaped and Iterative. International Journal of Computer Applications (0975 – 8887), 169(11), 1-11. Web.