Comparison between Waterfall and SCRUM SDLC Essay
Comparison between Waterfall and SCRUM SDLC
It is indisputable that the choice of the appropriate Software Development Life Cycle (s) is imperative in the current era when information technology is the mainstay of any company. Good SDLC can enable the company come up with ways of decreasing development time or cost, decreasing threat exposure, manage insecurity, improve quality, uphold client relations and also offer enhanced project tracking and control (Institute of Management Services 2014).
One of the major problems that most of the managers faces is about selecting the most appropriate SDLC. One of the factors that make it hard for managers to select the most appropriate SDLC is that there is little information in the literature about the criteria of selecting the most appropriate SDLC and also what managers should take into account when selecting appropriate SDLC(s) (Institute of Management Services 2014). In fact most of the books dealing with the software engineering only give information about various SDLCs and describe alternatives but cannot compare the various SDLCs.
Conventionally, the rule of thumb indicates that the best SDLC is the one with more advantages over the other. However, what most managers do not know the appropriate indices to consider.
Considering all the best indices to use when choosing appropriate SDLC, this paper aims at comparing the SCRUM SDLC and waterfall SDLC. The goal of the paper is to determine which SDLC is best for an organization in terms of its ability to achieve different organizational goals (Institute of Management Services 2014). Some of the indices or factors that are considered in comparing the two SDLCs include the capability and leadership of the project managers, the skill set of the software developers, the availability of project management, the computing environment, the availability of resources (Öztürk, 2013). The comparison would be based on thesis statement that the choice of the best and most preferred SDLC depends not only on the organizational size but also the flexibility and the efficiency of the SDLC in meeting the organizational goals.
A literature review conducted on the comparison between the two SDLC reveals that there are many factors that are normally considered when choosing the best SDLC. Some of these factors are discussed below.
Brief description of software development models
Waterfall SDLC was developed in 1970’s. The motivation behind its formation is that there was need for model to overcome problems related to managing large custom software development. It responded well to the early problems related to software development. Nevertheless, as time goes by, dissatisfactions with the model was noted in areas such as poor handling of customer requirements and inability to offer feedback from customer (Guntamukkala, Wen and Tarn, 2006). Consequently, a model that could address these pitfalls was proposed. Some of the proposed models include the rapid prototyping model, the V model and the spiral model (Guntamukkala, Wen and Tarn, 2006). This was followed by development of more flexible models such as incremental model, the evolutionary delivery model.
The last model of flexible software models are united under “agile development and comprises the Scrum and XP (Guntamukkala, Wen and Tarn, 2006). They were formed to suit the projects with projects with high degrees of uncertainty and risk arising from unstable requirements and evolving project goals (Batra, Xia, VanderMeer, and Dutta, 2010).
Factors to consider when choosing the most appropriate model
The first factor is the requirements that an organization must have in place. According to Aken (2008), no SDLC project can work well without all the requirements. Requirement analysis is normally carried out to determine all the requirements needed and to implement the requirement in the right way (Batra, Xia, VanderMeer, and Dutta, 2010). An SDLC whose requirements are complete has been shown to reduce overall implementation and maintenance costs. Waterfall and SCRUM differ in terms of requirements they need. Research has shown that the known and change requirements for waterfall are stable and unchanging. They are also very well-known and understandable.
On the other hand, the requirements for agile are unknown, changing and largely emergent. This implies that the system may run sometimes without necessary requirements. Allowing the system run without the entire requirement makes the system untenable (Batra, Xia, VanderMeer, and Dutta, 2010). Such system, according to Aken (2008), is doomed to an eventual failure as it cannot integrate with the rest of the system or scale to its target utilization.
The second factor that can be used to compare the two systems is the development time. Development time depends on the software development cycle. There are SDLC with complex and long development cycle and at the same time there are those with shorter and systematic development time. It is also crucial to note that longer development time increases cost of installation. The latter is the preferred SDLC.
Waterfall is developed in successive steps, one after the other. Its development phases include requirement specification, software design, integration, and testing. Generally, the development time for waterfall is between medium and long and is between 6-36 months (Öztürk, 2013). SCRUM SDLCs have development time between short and medium and is between 6 and 36 months. The project is normally divided into several small tasks with short periods. The major component of development life cyscle in SCRUM entails such aspects as planning, requirement analysis, design, coding, unit testing and acceptance testing. This implies that those managers who needs a system that can be installed within shorter time, the he or she will opt for the SCRUM SDLC.
The third factor to consider is size of the organization which the SDLC can handle. The waterfall can handle large or medium project and hence it is suitable for large scale organizations (Öztürk, 2013). Similar argument was proposed by Boehm and Turner (2004), who argues that traditional structured development approaches are suitable for large, critical, and complex projects with stable and predictable requirements. On the other hand, the SCRUM SDLC is appropriate for small and medium size projects. In addition, SCRUM can be used in projects with high degrees of uncertainty and risk arising from unstable requirements and evolving project goals (Batra, Xia, VanderMeer, and Dutta, 2010). They can respond to changes quickly. This implies that the fact that waterfall SDLC can handle larger organization does not mean that waterfall is the most appropriate method (Batra, Xia, VanderMeer, and Dutta, 2010).
In fact, it should be noted that waterfall was invented to response to the early problems that had overwhelmed software development (Batra, Xia, VanderMeer, and Dutta, 2010). However, waterfall is associated with pitfalls such as poor handling of customer requirements and customer feedback. In other words, the fact that the waterfall can serve large scale organization does not mean that it is the best. In fact the agile SDLC was formed to address the shortcomings of the waterfall. This is so despite the fact that agile is suitable to medium sized organizations.
Project team is another factor to consider when comparing two SDLC projects. It should be noted that a typical medium sized to large size organization comprises of many internal business sponsors, users, project managers, analysts and external developers (Batra, Xia, VanderMeer, and Dutta, 2010). The ability of the SDLC to enable all these team to adapt to the system depends on the type of SDLC. Sources reveals that SCRUM is designed in a manner that it can help reduce the complexity caused by the project size. The SCRUM achieves this by timeboxing development and also by limiting ad hoc changes (Batra, Xia, VanderMeer, and Dutta, 2010). Project team in waterfall SDLC tends to lack enough experience in the application domain (Öztürk, 2013).
In terms of risk, waterfall SDLC is only suitable for projects that are not subject to many risks (Salo and Abrahamsson 2008). On the other hand, the SCRUM SDLC is predisposed to unknown risks and risks have major impact. SCRUM have significant amount of uncertainties and risks. Batra, Xia, VanderMeer, and Dutta, (2010) indicate that waterfall was designed for large, critical and complex projects with stable and predictable requirements. Waterfall is appropriate for projects that do not have many risks. However, in the current era, it is not easy to get such projects because the best performing companies normally take a lot of risk (Batra, Xia, VanderMeer, and Dutta, 2010).
Scrum is suitable for projects with high degree of uncertainty and risk that is attributable to the unstable requirements and evolving project goals. Consequently, it is indisputable that the Scrum is suitable for organizations that are taking a lot of risk (Batra, Xia, VanderMeer, and Dutta, 2010).
In terms of complexity, the waterfall SDLC is complicated compared to the SCRUM. SCRUM entails the use of non-complex and its complexity can be ranked as small and medium. Study by Batra, Xia, VanderMeer, and Dutta, (2010) reveals that Scrum help reduce the complexity caused by the project size by timeboxing development and by limiting ad hoc changes and can also assist reduce the impact caused by changes in top management.
Another factor to consider is the flexibility of the SDLC model. Flexibility describes how a given SDLC model adapts to new, changing requirement in the software environment. There are three major factors used to determine whether a given SDLC is flexible or not.
The first factor to consider is that a flexible SDLC allows its development process to be broken into a number of “sub-cycles.” These sub-cycles are significant in that they are used to produce a subset of the functionality that is needed in the final project. Waterfall SDLC has been shown to lack this attributes in the sense that it is not easy to break its development process into sub-cycles.
The second character that is considered is that a flexible SDLC must allow the release of a prototype of the system released to chosen customers at its early stage of development. Waterfall SDLC is deficient of this kind of flexibility whereas SCRUM possesses this element or attribute.
The third attribute to consider is the ability of the model to offer rapid feedback on the impact of the ongoing design changes. It has been shown that some SDLC models are more flexible than others. Code and fix and Waterfall SDLC model have been shown to lack flexibility in virtually all the key component of software development. For example, it is not easy to split the waterfall into subcycles.
From the findings above, a lot has been learnt concerning the differences and similarities between the Waterfall and Scrum SDLC. Although it is apparent that the choice of the best and most preferred SDLC depends not only on the organizational size but also the flexibility and the efficiency of the SDLC in meeting the organizational goals. However, closer look at the above findings seems to suggest that SCRUM is more relevant in the current era. There are many reasons to proof this.
The first reason is the flexibility (Batra, Xia, VanderMeer, and Dutta, 2010). The findings reveal that the SCRUM is more flexible than Waterfall SDLC. Because the current market environment is dynamic, it means that things changes constantly. This implies that adoption of Scrum SDLC can help organization keep up with the dynamic market (Batra, Xia, VanderMeer, and Dutta, 2010). It should also be noted that in the current era, organizations must strive to create learning environment that can adjust rapidly to the changes engulfing them (Batra, Xia, VanderMeer, and Dutta, 2010). Some researchers have come to conclusion that because some of the SDLC complement each other in many respects, the best thing is to balance the two such that both are implemented in an organization according to its usefulness (Batra, Xia, VanderMeer, and Dutta, 2010).
Based on the above mentioned comparison, it is apparent that there is SDLC that is absolutely perfect and that the choice depends on many factors such as the size of the organization and the risks faced by organization.
Comparing the positive elements of waterfall with SCRUM reveals that Scrum was devised to address the pitfalls associated with the Waterfall such as large bureaucratic and slow development processes. The findings also show that there are many advantages of SCRUM over the Waterfall. However, it is advisable that if an organization can adopt the Scrum and the structured waterfall system, it would be of more advantage to the organization. This is because these systems complement one another. The weaknesses of one of the system are the strengths of the other (Batra, Xia, VanderMeer, and Dutta, 2010). Balancing the two also helps to address challenges associated with the transition process (Batra, Xia, VanderMeer, and Dutta, 2010).
Aken, A. (2008). CHUNK: An Agile Approach to the Software Development Life Cycle. Journal of Internet Commerce, 7(3), 313-338. doi:10.1080/15332860802250385
Bannink, S. (2014). Challenges in the Transition from Waterfall to Scrum – a Case study at Portbase. University of Twente. Retrieved from: http://referaat.cs.utwente.nl/conference/20/paper/7427/challenges-in-the-transition-from- waterfall-to-scrum-a-casestudy-at-portbase.pdf
Batra, D., Xia, W., VanderMeer, D., and Dutta, K. (2010). Balancing Agile and Structured Development Approaches to Successfully Manage Large Distributed Software Projects: A Case Study from the Cruise Line Industry. 27( 21), pp. 379-394.
Guntamukkala, V., Wen, H. J. and Tarn, J.M. (2006). An empirical study of selecting software development life cycle models. Human Systems Management 25 (2006) 265–278
Institute of Management Services (2014). A project management perspective of information system development. Management Services.
Öztürk, V. (2013). Selection of appropriate software development life cycle using fuzzy logic. Journal of Intelligent & Fuzzy Systems, 25(3), 797-810. doi:10.3233/IFS-120686
Salo O. and Abrahamsson P. (2008). Agile methods in European embedded software development organizations: a survey on the actual use and usefulness of Extreme Programming and Scrum. IET Softw., 2008, 2, (1), pp. 58– 64