How many SCRUM sprints do you have on the go at once? Probably one right? We tend to work with two at a time. I'll explain how we do it, then I'll tell you why we do it that way.
We start a sprint and one developer works on it until it is code complete, (including NUnit tests). In parallel, another developer will write the system test scripts. Once the sprint is code complete, the application will be given to a member of our admin staff who will execute the scripts and pass feed back to another developer who will fix any bugs. This process is repeated until all bugs are fixed. The application and the test scripts are then passed to a more technical user and are re-executed, with any bugs being passed back to the developer for fixing. Again, this process is repeated until all bugs are fixed. At this point the sprint is deemed complete. In the meantime, the original developer and myself, have been planning the next sprint and it has been started. So, at any given time we usually have two sprints on the go.
So, why do we do it this way? Well the answer is because I reckon it'll give us the best chance of getting the project completed on time and within budget. As you'll probably know, there are three main elements to a project: resources; timescales and functionality. Usually, two of them are fixed, leaving a project manager the ability to flex the remaining one. However, this is not the case in this project. An investment has been made to allow us to carry out this work and as the investment is finite this means the both timescales and resources are fixed. Unfortunately, we are further challenged because this project is a replacement for a current COBOLĀ system, so no matter how many bells and whistles we add to it, it can't have any less functionality than is in the current system. The current system is over 20 years old. So, as you can see the functionality is somewhat fixed as well, not leaving us much "wiggle" room at all.
On top of all that, our development team is a profit center and not a cost center, that is it is meant to add the the profitability of the company. So, while we are working on this, we are not working on other fee earning work. Hence, the two sprints at once tactic. This allows us to have one developer working on the project full time. It also allows us to have another developer part time on this project and part time on other fee earning work. Lastly, it also allows us to farm out some of our testing to the admin department, which is a cost center and so (in respect of the project budget) we get their work for free.
I'd be interested to hear opinions from other agile developers / architects regarding this.
Tag:
Scrum