Discuss about the Pros and Cons of Adaptive and Predictive SDLC.
SDLC (Software Development Lifecycle) is the process that is followed by software industry to design, develop and test quality software. The SDLC approach to software design, development, and testing, aims at producing high quality software that is within budget as well as estimated timelines. SDLC defines the tasks that are performed at each and every stage of the software lifecycle, from the initiation to the deployment. There are two distinct SDLC or in other words methodologies namely; predictive and the adaptive methodologies. Adaptive SDLC is implemented mainly when the software at hand involves unknown or unspecified outcomes. The adaptive methodology involves breaking the software project into various components over an undetermined timeline to allow for flexibility in directing the path and the course of the project. Agile software development methodology is one example of adaptive SDLC (Wear, 2013). On the other hand, predictive SDLC is implemented in software projects whose outcomes are well specified and known. Predictive SDLC lays down a linear, specific software development plan that is structured around some pre-defined results and within a specific timeline. Waterfall methodology falls in the predictive SDLC approach to software development. This paper seeks to discuss the pros and cons of adaptive and predictive SDLC approaches to software development processes.
Pros and Cons of Adaptive and Predictive SDLC
Pros of Adaptive SDLC
The adaptive software gives an opportunity for extensive stakeholder’s engagement before the kick off of the projects, during and after every stage of the life of the project. Through the engagement, the approach provides for a high degree of client collaboration with the development team since it involves extensive interaction between the team and the client during every stage. The communication helps the customers to understand the project stage by stage and allows them to share their views and add requirements when needs arise. The interactions aid the development team to completely understand the client’s vision (Beyer, 2010). The delivering of the project early creates the client’s trust on the development team and encourages their collaboration and deeper involvement in the project's lifecycle.
Adaptive SDLC allows for transparency. The team of developers and the client work together stage by stage in this approach (Wear, 2013). The developers explain the project status to the clients before, during and after every stage and this allows the clients to have an abstract view of what they expect and gives them the chance to share their opinions with the development team.
Adaptive SDLC allows for early delivery. Due to the extensive involvement of the clients before, during and after every step of the software development, there is a speedy development which ushers in the early delivery of the software. Since the approach focusses on the business value, when a significant value is realized, and there is significant client’s satisfaction, the software in most cases is delivered earlier than it was previously planned.
Adaptive methodologies are focused on the users (Laskowski, 2011). The client’s involvement and contribution at every stage of development provide feedback to the development team which translates to value addition to the upcoming software. The user or client involvement ensures that the stated and implied requirements are completely catered for and that total user satisfaction is availed in the final product.
Adaptive SDLC generates high quality software. Breaking down the project into components, concentrating on high quality development, testing of one component at a time, aids in producing a high quality end product (Ed, 2013). Quality is also improved through the testing and reviews done after every component is developed. During the testing and reviews, finding and fixing of defects is done at every step, and also any mismatch in expectation is identified and corrected early enough and hence a quality software is delivered at the end.
Cons of Adaptive SDLC
Adaptive SDLC demands extensive user involvement, and this takes up much of the user representative’s time and their complete commitment during the lifetime of the project. Most of the user agent’s time is wasted because in most cases they are only engaged during the testing and reviews sessions and disengaged during the development sessions.
Adaptive SDLC involves a lot of requirements emergence and evolution during the lifetime of the project (Holcombe, 2008). The future needs in most cases make the project take longer that it was anticipated and in most cases, the projects become bigger than they were visualized in the initial stages. Scope creep is a phenomenon common in adaptive SDLC, and this can lead to endless projects. The deliverables of the project are not easily predicted before and during the project’s development period. Due to the lack of predictability, it is hard to develop the business case for the project and makes it even more difficult to negotiate for fixed prices and cost of the projects.
Testing in adaptive SDLC is integrated throughout the lifecycle. Testing at every stage helps deliver quality products but increases the cost of the project in the long run. The extensive testing, according to studies done, brings many projects to failure (Vohra & Krishnamurthi, 2012). The cost of the long, frequent test phases brings up project overruns, and this can lead to a project failure. The routine testing can be time-consuming and makes the project run for longer than it was initially predicted.
Pros of Predictive SDLC
Predictive SDLC is easy to understand and follow. The methodology has specified stages that are followed from the initiation to the deployment of the software. The laid down steps and the provision of how the precede each other makes it easier for developers to come up with quality software within a specified timeframe and within a specified budget (Srivyshnavi, 2013). The deliverables of one stage are used as the raw materials for the next stage and hence this makes it easier for developers to follow and come up with quality software at the end.
Predictive SDLC allows for easy prediction of the budget and timelines. Since the end results are known and the final product visualized at the initiation stage of the software development, predictive SDLC makes it easy for the team to come up with the expected budget as well as the expected timeframe needed to complete the project (Lewis, 2008). Project overruns are rare in the predictive SDLC approaches.
The predictive SDLC approaches are easy to manage. Every stage in the predictive SDLC has specific deliverables and timelines, and by the use of the two aspects one can easily monitor and handle the progress of the project development and its lifecycle. In the case of a deviation in time or the deliverables, it is easily detected and corrected before proceeding to the next stage.
The predictive SDLC have clearly defined stages which are processed one at a time. The predictive methodologies offer the developers a rigid development lifecycle model which is easy for them to understand and follow (Janka, 2002). The end of every stage is easily determined since it is defined by the generation of the expected deliverables and signifies the kick-off of the next stage.
Cons of Predictive SDLC
In predictive SDLC no working software is produced until the late stages of the software development. A working software product is only generated at the final stage of the software development process. The testing and reviews are done only at the later stages of the lifecycle model. In many cases, there is an identification of a requirement that was not catered for during the development, and this makes the efforts put in the whole process null and wasted since the whole process is repeated in order to accommodate the requirement.
The predictive SDLC is not usable for complex object-oriented projects. The methodology is only usable for smaller projects where all the requirements are defined at the initial stage and the expected end results determined at the project initiation stage (M.Mohammed, n.d.). The methodology is not suitable where all the requirements are not known or are at a risk of changing with time. The method is inapplicable for long and ongoing projects due to its rigidity and strictly defined stages.
Best SDLC for Tele-Health
Adaptive SDLC is the best methodology to implement during the development of the Tele-Health project. Since Tele-Health project is a project that will be used by various users, developing it using the adaptive methodology is the best approach since, in this methodology, extensive user involvement is employed before, during and after of every step in the development. Completeness of the user requirements is a crucial aspect of the Tele-Health project, and this can only be made possible through the use of the adaptive SDLC since the requirements are collected iteratively right from the initiation to completion of every component and hence assurance of the satisfaction of all the requirements in the final product. Tele-Health is a project that involves various elements and it is object-oriented in nature, and hence predictive methodologies cannot be applied in the project. The adaptive methodology is the ideal approach for the project. Since Tele-Health is a complex project, the ideal methodology to implement in the design and development would be the adaptive SDLC approach.
Beyer, H. (2010). User-centered agile methods. [San Rafael, Calif.]: Morgan & Claypool Publishers.
Ed, K. (2013). Agile methodology for developing & measuring learning. [Place of publication not identified]: Authorhouse.
Holcombe, W. (2008). Running an agile software development project. Hoboken, N.J.: Wiley.
Janka, R. (2002). Specification and Design Methodology for Real-Time Embedded Systems. Boston, MA: Springer US.
Laskowski, J. (2011). Agile IT security implementation methodology. Birmingham: Packt Pub.
Lewis, J. (2008). SDLC 100 success secrets. [United States?]: J. Lewis.
M.Mohammed, N. Exploring software security approaches and their limitations in SDLC.
Srivyshnavi, P. (2013). Modeling For Software Quality Assurance. SaarbruÌˆcken: LAP LAMBERT Academic Publishing.
Vohra, R. & Krishnamurthi, L. (2012). Principles of Pricing. Cambridge: Cambridge University Press.
Wear, N. (2013). Sunshine on Secure Software. Cork: BookBaby.