Itec
Systems Development
Life Cycle
ITEC 630 Group 3
Dayna Ferguson, Lina Ghulam Hassan, Hitesh Giri, Aaron Gray, Laura Hamann, Lizbeth Hevia, & Shawn Kelly
SDLC stands for Systems Development Life Cycle. It is a very well known process that is used to develop high quality software and systems (Half, 2019).
SDLC has 6 phases including requirement gathering & analysis, design, implementation, testing, deployment, and maintenance (Anurina, 2019).
There are many different types of SDLC methods including Waterfall, Rapid Application Development (RAD), Agile, DevOps and many more.
Introduction (Dayna)
About SDLC
Each SDLC model has its own set of advantages and disadvantages over others.
They all have the common goal of producing a cost efficient high quality software/system in a timely manner. (Half, 2019).
Each method has a different approach based on the following:
clarity of user requirements
familiarity with technology
complexity
reliability
time frame
schedule visibility
Introduction
SDLC Model Differences
Within SDLC there are traditional approaches and Agile approaches.
Agile models focus on adaptive development methods, whereas the traditional models focus on predictive methods (“SDLC - Agile Model”, n.d.).
Rapid Application Development (RAD) is an Agile SDLC method that is based on rapid prototype iterations.
4 Phases of RAD:
Analysis and Design
Build prototypes
Testing
Implementation
(Singh, 2019)
Introduction
What is RAD?
Rapid Application Development is the most effective SDLC approach because it provides early stakeholder involvement, fast delivery and is highly reusable and adaptable.
Introduction
Thesis Statement
Early Engagement- Because of early engagement from the business when using RAD development, the final product has a greater chance of being delivered on time. As part of the 4 phases of RAD, user participation is necessary as the iterative and prototyping aspect requires constant input and feedback. Because of user participation via analysis and review of working models and prototypes there can be timelier feedback which can help stave off complacency as well as other factors that contribute to product delays (Shelly, Cashman, & Rosenblatt, 2003 pg. 95).
Supporting Argument #1 - Early Engagement(AG)
One benefit of RAD is early customer engagement
Best used with CI/CD/CT - The use of RAD development can be improved when instituting a continuous integration (CI), continuous deployment (CD) and continuous testing (CT) framework. Since one of the primary tenets of RAD development is iterative prototyping, the use of a CI/CD/CT framework greatly assists RAD by adhering to iterative builds, deployments and unit and integration testing. As one of the tenets of RAD development being speed, the use of CI/CD/CT helps to reduce the various resources invested in finding and fixing defects by using frameworks to prevent and resolve defects thus decreasing time to deliver product (Mangla, 2019).
Supporting Argument #1 - Early Engagement(AG)
One benefit of RAD is early customer engagement
Supporting Argument #2 - Fast Delivery (Laura)
How is a fast delivery achieved?
Prototypes, dummy GUIs and more are rapidly developed to meet the customers system needs quickly (Conrad et al.,2012).
Quick life cycle iterations reduce development time and allow for quick and easy updates (Miller, 2018).
Time spent in the planning phase of the life cycle is minimized (Lucidchart, n.d.).
Since the project is open-ended, the project will be completed whenever the customer is happy with the prototype (Miller, 2018).
The main benefit of RAD is fast project turnaround
Supporting Argument #2 - Fast Delivery
How do we know it’s faster?
According to Kissflow (2018), in the traditional SDLC approach the end product can take months to years, however, in RAD a solution can be developed in a matter of weeks.
“By using a RAD platform you can shorten your development process by 75%, this will allow you to develop and push your products to market in a much shorter time (Pelk, 2017, para. 9)”.
Software can be launched up to 4 times faster compared to when using the traditional development process (Pelk, 2017).
The main benefit of RAD is fast project turnaround
RAD's development process gives the flexibility to include user inputs and new suggestions. Hence and significant changes in the requirement or system design can easily be integrated into the software during its development (Burcamp, n.d.).
The RAD iterative process is set up in a way that makes it mandatory for designers to create functionally independent components that will make up the final application. Because each element is compartmentalized, it can be easily modified to meet the evolving needs of the software, which enables a multitude of individual and collective benefits in terms of quality, cost, and decreased application development lifecycles.
Developers can use code generators and reuse code; hence manual coding effort is drastically reduced. They can use already written templates (Cepero, 2019).
Supporting Argument #3 - Reusability (Hitesh)
Another benefit of RAD is reusability and adaptability
RAD uses functional and independent components that are integrated together to form an entire system. Since the components can be easily modified, they become useful in the iterative process. The RAD process is similar to the way the objects are used in object-oriented programming. Each component is independently tested, which in turn reduces the testing time. These components can be reused in other projects.
Developers implementing the RAD process usually creates independent prototypes, where the possibility of defects is substantially reduced.
Supporting Argument #3 - Reusability (Hitesh)
Another benefit of RAD is reusability and adaptability
Insufficient Final Product - since new tools are often used to build something quickly, this can result in an insufficient final product (Stiner, 2016). In addition, because little time is spent in the planning phase there can be poor design which gives the final product flaws as well. Although this can be seen as a weakness of RAD, because the life cycle is so short if issues are encountered with the system, they can be fixed quickly and before the final product is delivered. The RAD method ensures that the user is contsantly involved in reveiwing the product after each iteration (Kissflow, 2018).
Counter Argument #1 - Insufficient Final Product
One issue with RAD can be development of a bad product
Speed to completeness of product - Because of the speed to which a product can be designed and developed using RAD, there is the potential that certain aspects of the product will sacrifice quality. Quality is sacrificed via ignoring or short-cutting design standards or other industry standards.
Counter Argument #1 - Insufficient Final Product
One issue with RAD can be development of a bad product
Waterfall is an effective methodology that is great when requirements are given at the beginning when background knowledge of the subject is already known.
Since each methodology is a good fit depending on the situation RAD might not be the most optimal decision. that When a client understands their needs and have a strict budget then another methodology might be a better option.
Counter Argument #1 - Personal Dependency(Liz)
Another issue with RAD can be dependency on personnel
Counter Argument #1 - Personal Dependency(Liz)
Another issue with RAD can be dependency on personnel
“According to a 2017 study from PwC, agile projects are 28% more successful than traditional projects (Lucidchart, n.d., para. 2)”.
Conclusion
RAD is the best SDLC approach
Conclusion
Plans of Action
References
Anurina, O. (2019, May 10). Agile SDLC: Skyrocketing Your Project with Agile Principles. Retrieved from https://mlsdev.com/blog/agile-sdlc
Burcamp. (n.d.).Benefits of Rapid Application Development (RAD). Retrieved from http://www.burcamp.com/blog/benefits-of-rapid-application-development-rad
Cepero, R. (2019, December 8). 6 Advantages of Rapid Application Development or RAD. Retrieved from https://bleuwire.com/advantages-rapid-application-development-rad/
Conrad, E., Misenar, S., Feldman, J.. (August 28, 2012). CISSP study guide. Retrieved from https://www.sciencedirect.com/topics/computer-science/rapid-application-development
Half, R. (2019, May 24). 6 Basic SDLC Methodologies: Which One is Best? Retrieved from https://www.roberthalf.com/blog/salaries-and-skills/6-basic-sdlc-methodologies-which-one-is-best
Kissflow. (August 17, 2018). Is traditional SDLC being killed by RAD? Retrieved from https://kissflow.com/rad/rad-sdlc-slowly-replacing-traditional-sdlc/
Lucidchart. (n.d.). 4 phases of of rapid application development. Retrieved from https://www.lucidchart.com/blog/rapid-application-development-methodology
Pelk, H. (March 20, 2017). Why RAD is better in the current software development market. Retrieved from https://itnext.io/why-rad-is-better-in-the-current-software-development-market-9e101a4b45e2
References
Mangla, P. (2019, January 18). How to implement continuous testing in DevOps like a pro. DZone. Retrieved from https://dzone.com/articles/how-to-implement-continuous-testing-in-devops-like
Miller, N. (November 8, 2018). waterfall vs. rad - which development method is better? Retrieved from https://kissflow.com/rad/rad-waterfall-agile-which-one-is-best-for-you/
SDLC - Agile Model. (n.d.). Retrieved from https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm
Shelly, G., Cashman, T., & Rosenblatt, H. (2003). Systems analysis and design, fifth edition. Massachusetts: Course Technology.
Singh, A. (2019, December 6). What Is Rapid Application Development (RAD)? Retrieved from https://blog.capterra.com/what-is-rapid-application-development/
Stiner, S. (August 24, 2016). Rapid application development (RAD). A smart, quick and valuable process for software developers. Retrieved from https://www.forbes.com/sites/forbestechcouncil/2016/08/24/rapid-application-development-rad-a-smart-quick-and-valuable-process-for-software-developers/#11e999bd19e8