We do a series of sprints to build our product, then we do 4-8 weeks of hardening sprints to really test our code and get the bugs out before we deploy it in production.
Guess what? You’re not Agile, and you’re not doing Scrum. You are using the jargon, maybe because it’s fashionable, or maybe because you’re Agile practices are misguided. But you’re not Agile.
In fact, you are doing Waterfall, masquerading as Scrum. You probably did a lot of big upfront analysis and design, followed by a coding phase (your early “sprints”), followed by a testing phase (your “hardening sprints”). You are masquerading as Scrum by using the Scrum jargon: terms like Sprint, Burndown, and Product Owner. You are applying that jargon to Waterfall. Some people call this Cragile. I call it Shcrum.
(Diagram adapted from http://en.wikipedia.org/wiki/File:Waterfall_model.svg)
The problem with “hardening sprints” is that you are lying. You make believe your imaginary burndown during the initial sprints shows that you are approaching Done. But it’s a lie–you aren’t getting any closer to being ready for Production until you begin your Test phase. You wrote a pile of code that you didn’t test adequately. You don’t know how good it is, you don’t know how much work you have left to do, and you don’t know how much longer it will take, until you are deep into your Test phase.
I don’t mind that you’re doing Waterfall. Just don’t call it Scrum or Agile. And don’t do it on my team, because I don’t want my team to suck.
If you need “hardening sprints” before you can deploy in Production, you’re not Agile, and you’re not doing Scrum. What is stopping you from being Done at the end of each sprint?