When I talk with fellow developers new to Scrum, I often hear a fundamental misunderstanding about Sprints. These colleagues are normally used to Waterfall or RUP methodologies. As a consequence, they think of Sprints as very short repetitions of the following phases: requirements (planning meeting), design, implementation, test (sprint review as acceptance).
And this is completely wrong!
Let me tell you why.
This misbelief has its root in a mixture of Waterfall and RUP.
In Waterfall there exist the following phases:
And in RUP there exist iterations as follows:
In Scrum however, there are neither phases following each other, nor iterations. There exists no hand-off from one phase to another (considered waste in lean software development). Everything is evolved continuously. The tester start testing on the same day the developers start coding. Of course, the requirements engineering has to be a little bit in front of the rest (otherwise, how would the team know what to build in the current Sprint). But the requirements analysis, as well as the architecture analysis, the design, the user interface usability engineering, the database schema modeller and so on are just a step in front of the rest of the team. And for sure, there is nobody limping behind.
That’s (one of ) the big difference(s) between agile and non-agile software development: continuum of work – everything is done always (sometimes a bit more, sometimes a bit less).
- Requirements are groomed throughout the project
- Architecture and Design evolve together with working code
- Testing happens from line one of code (Test Driven Development, Acceptance Test Driven Development, Test Automation, …)
Please let me know what you think…