In order to have full access of this Article, please email us on thedocumentco@hotmail.co.uk
1. Software Development Methodologies
Every software goes through a specific set of developmental phases. A software development methodology refers to the specific technique that is followed in order to plan, manage and execute the entire process of development. As such, there are various methodologies including waterfall model, spiral model, incremental model, iterative development, and agile methodology. The development of the online hospital management system will follow the agile scrum methodology as it is capable of dealing with the arising complexities (Schwaber, 2004). In addition, agile scrum allows for incorporation of requirement changes as the project progresses.
Waterfall Model:
Waterfall model follows a sequential process for carrying out the developmental activities (Alsmadi and Saeed, 2014). It is ideal for projects that involve clearly defined requirements and well-known technical specifications. The waterfall model eponymously mimics a ‘waterfall’ where each process activity is followed by another but that which cannot flow backwards (Hentzen, 2002). It begins with problem analysis, subsequently proceeding to the establishment of technical requirements, designing of a solution, coding, testing, bug fixing, and eventually the implementation of the final product.
Spiral Model:
The spiral model is an iterative, risk-oriented model of software development. Each phase in the iterations is referred to as a spiral. Further, each cycle of the spiral begins with the recognition of the objectives, implementation alternatives, and the limitations associated with the implementation alternatives (Boehm, 1988). Next, the alternatives are assessed and the associated risks are resolved. Prototyping is critical in the spiral model which allows risk to be mitigated and resolved (Landry, 2011). In addition to that, the spiral model conducts risk analysis before each stage (Sabharwal, 2009).
Incremental Model:
Incremental model takes into account the need for technical requirements to continue being updated. It is an evolutionary process model, which means that it is flexible to changing requirements and can accommodate those changes incrementally adding additional functionalities to the design (Sabharwal, 2009). Each incremental build that is released enhances the functionalities of the previous version allowing the project cost to be minimized. Therefore, every new build adds on to the functionalities contained in the previous one.
Agile Methodology:
Agile methodology is a fairly broad classification of process techniques that include agile scrum, feature driven development, crystal methodologies, adaptive software development (ASD), lean software development, and so on (Alsmadi and Saeed, 2014). This project involving the development of an online hospital management system will follow agile scrum methodology.
2. Agile Scrum
Introduction:
Agile development incorporates a planned effort at software development that prioritizes tasks and evaluates results regularly (Bowers, 2002). Agile scrum development practices involve regular scrum meetings as a way to enhance communication within and between the departments. In addition to that, agile development practice also involves regular communication with the client so as to validate the direction of the project as per the client requirements.
How does Agile Scrum Work:
Agile scrum essentially involves creation of a product backlog that contains a list of features categorized based on their priorities. The product backlog enlists items that have been classified as high priority to low priority items which affects their completion upon scarcity of resources such as time. All the tasks are performed by inter-departmental teams that operate cross-functionally in iterations called sprints. Each sprint involves a planned execution of tasks in the high-priority list of the product backlog. It is followed by a review of the completed tasks and feedback by the client on the functionalities and features (Rubin, 2013). In this case, client feedback is pivotal in providing additional features that have to be worked on in future iterations. This paves the way for incremental builds of the application before a final output is ready for deployment.
Why Agile Scrum:
Agile scrum is especially useful for projects where the requirements are not concrete from the onset. In the particular case of an online hospital management system, the technical specifications will not be defined from the start and is likely to add on during the course of the development. In such a case, agile scrum is the ideal methodology to work with as it allows the flexibility to incorporate technical changes in the specifications without disrupting other processes and inhibiting the whole cycle.
The client could ask for technical changes as the various stakeholders demand different functions. As such, new functionalities and features have to be regularly added as requirements. The advantage of developing the system with agile scrum is that it can incorporate requests for technical changes based on client needs on an ongoing basis since software development hardly involves fixed requirements anymore.
3. Comparison of Agile Scrum to Other Methods
Agile Scrum versus Waterfall Model:
Waterfall model is one of the oldest models of software development. Being a sequential software development methodology, waterfall model proceeds with the completion of each preceding phase. If a client has clearly known requirements for a particular project, waterfall model is an ideal methodology to follow however it is not responsive to changes in the requirements as each phase proceeds with the completion of the previous one. In such a case, agile scrum provides project managers with a certain sense of flexibility in planning and executing the project. The requirements that are initially gathered are regularly updated as the client provides feedback after every iterative cycle. This results in the creation of many builds with incremental features and agile scrum allows this because it proceeds in iterations in cross-functional teams.
Agile Scrum versus Spiral Model:
Unlike agile scrum, the spiral model disproportionately emphasizes on risk analysis as a means of mitigating uncertainties and reducing costs. Agile scrum, on the other hand, is focused towards providing solutions based on regular client feedback and use of prioritized task items as a way of minimizing costs. Spiral model essentially builds onto the waterfall model whereas agile scrum is a different approach at software development focusing on highly dynamic projects that require frequent functional changes.
Agile Scrum versus Lean Development:
Like agile scrum, lean development is also an agile development methodology however that which is more strategy-centered in its approach to a project (Highsmith, 2002). Lean development is focused at project completion using minimum resources while keeping an eye for the business or organizational strategy that drives a business. Lean development is much more geared towards tackling management challenges while agile scrum is more focused toward prioritizing completion of features.
4. Software Development
Analysis:
Before development begins, analysis is a key task which is carried out in order to understand the requirements of the project. Since the project progresses in sprints in scrum development, this means that it is necessary to have all the initial requirements sorted out.
Planning:
Planning involves scheduling and planning of all the resources that are to be allocated for the project including time (man hours), software and hardware skills, and so on. Planning phase provides a direction for the project to proceed despite scrum development updating its plans progressively (Cohn, 2010).
Design:
System design involves materialization of all the requirements into workable functionalities and features as required by the client. In agile scrum, each sprint is followed by customer feedback where the client provides requirements for incremental features.
Testing:
Testing involves validation of the application including verification for bugs. Initially smoke testing will be performed in order to ensure the basic functionalities of the system. Subsequently, functional testing will be performed. All bugs are reported and fixed.
Deployment:
After the build is fixed for major bugs, it is released to be deployed on the server….
Recent Comments