1. Agile Development
1.1. Process
1.1.1. This method is an incremental and iterative process. It uses short iterations where the project team stops and reevaluates the project every two weeks, referred to as "sprints." During each pause, testing is conducted and stakeholders review the progress and reevaluate priorities. Projects are adjusted as needed and whenever business conditions change (Geoghan, 2020).
1.2. Advantages
1.2.1. Development is rapid and adaptive.
1.2.2. Includes a large amount of involvement between stakeholders and end users since the project team receives feedback after every "sprint" (CyberCraft Inc., 2019).
1.2.3. Quick testing, identification, and fixing of potential unforseen issues (CyberCraft Inc., 2019).
1.2.4. Is a strong method for time critical projects (Geoghan, 2020).
1.3. Disadvantages
1.3.1. Documentation may be less detailed due to frequent changes and the high speed of the process (CyberCraft Inc., 2019).
1.3.2. There may be a lack of clarity in terms of the final product due to the ability for rapid alterations (CyberCraft Inc., 2019).
1.3.3. Deadline for final completion is difficult to estimate (CyberCraft Inc., 2019).
1.3.4. Since the final deadline is difficult to estimate, similarly, the costs are difficult to estimate as it is unsure how many "sprints" will be necessary (CyberCraft Inc., 2019).
2. RAD (Rapid Application Development
2.1. Process
2.1.1. This method is an iterative process that uses prototypes and other user testing during design. Multiple prototypes are used to simulate final product design throughout testing. Once a final iteration is approved, the software is written. Object-oriented programming is used to create reusable components and accelerate development (Geoghan, 2020).
2.2. Advantages
2.2.1. More flexible and adaptable to user needs (Geoghan, 2020).
2.2.2. The development of reusable small components and their integration allow for more rapid development (Educba, 2020).
2.2.3. Repetitive review processes make for better identification of errors or other issues (Educba, 2020).
2.3. Disadvantages
2.3.1. Requires a large amount of effort to create the initial prototype (Educba, 2020).
2.3.2. This method is not very suitable if there are budgetary constraints, due to the production of many iterations (Educba, 2020).
3. SDLC (System Development Life Cycle)
3.1. Process
3.1.1. This method is the traditional model for system development. It consists of five phases: planning, analysis, design, implementation and testing, and maintenance. The process begins upon request for a new system, and follows the phases strictly, where the first needs to be completed before the project moves to the next, and so on (Geoghan, 2020).
3.2. Advantages
3.2.1. Clear development and progress structure (CyberCraft Inc., 2019).
3.2.2. Simplified progress tracking through use of the stages (CyberCraft Inc., 2019).
3.2.3. Higher likelihood of the best quality final product through use of the strict procedure (CyberCraft Inc., 2019).
3.2.4. Detailed documentation for easy transfer of information between users, stakeholders, etc (CyberCraft Inc., 2019).
3.3. Disadvantages
3.3.1. There is little to no flexibility to revise the project as it moves through the process (CyberCraft Inc., 2019).
3.3.2. Errors may cause greater issues since the planning is done earlier in the process (CyberCraft Inc., 2019).
3.3.3. Unforseen needs may be identified to late in the process to be taken into account (CyberCraft Inc., 2019).
4. JAD (Joint Application Development)
4.1. Process
4.1.1. This method is a collaborative effort in which the end user is involved throughout the design and development. "JAD sessions" are conducted in which the user and developers meet, helping the developer better understand user needs and resolve usability issues early in the process (Geoghan, 2020).
4.2. Advantages
4.2.1. Typically results in shorter development times (Geoghan, 2020).
4.2.2. The resolution of issues throughout the process can result in a better final product with less errors (Mrsic, 2017).
4.2.3. Risks are reduced due to collaboration between all parties (Mrsic, 2017).
4.3. Disadvantages
4.3.1. Differing opinions, perhaps between stakeholders and users, may make defining goals more difficult (Mrsic, 2017).
4.3.2. Large projects with many "JAD sessions" may require significant time commitments (Mrsic, 2017).