In a traditional waterfall development cycle, developers will be separated from the rest of the company in a sense and begin coding for several months. Once they become “code complete,” this will then be handed off onto the Quality Assurance (QA) department. Normally by this point there is already an expected release date set, meaning the QA team has to work hard to be finished with all of their testing by the end of the agreed upon date.
As you can imagine, this puts a lot of pressure on QA. Up until now, the developers have been coding for several months on several features and/or bug fixes that likely haven’t been tested by nor had any involvement from the QA department yet; and now QA has only a few months (or less) to make sure the release is fully stable. The months of coding without testing puts the program in a seriously unknown state and often leads to QA running out of time to completely test the software. This can lead to only testing the most important stuff, and can lead to broken features and bugs getting released to the public.
In a scrum methodology however, the Development department and the QA department work closely together to implement bug fixes and new features. This also helps break down the barrier that often exists between developers and testers in a traditional waterfall environment. Part of this process is to break down new features and bug fixes into user stories that fit within smaller iterations (usually two to four week development cycles), and during this iteration developers will code a little bit and then pass that off to QA for testing. This process helps ensure that each portion of a feature added to or fixed in the program is tested and stable immediately after development. Also, with the testers and developers working more closely together, this allows QA to potentially alert developers of edge cases and bugs before they’re even created.
With these workflows in place, the program as a whole becomes more stable by the end of each iteration. Another major benefit to this process is that at any point the product owners can pull out a stable version of the release and then push that out to clients if need be in a quick manner. These are only a few examples and benefits the scrum process brings to the developers, testers and company as a whole.





