Click here to monitor SSC

James Moore

Divisional Manager for SQL Tools - Red Gate Software

Adopting Scrum

Published Wednesday, January 28, 2009 5:11 PM

We kicked off a new project a few months ago: rewriting ANTS Memory Profiler.  As part of the project, we decided to give Scrum a try. The team was already reasonably Agile without explicitly adopting Scrum principles, as we had our EAP program in place when developing ANTS Performance Profiler. But hey, why not try something new?

Scrum created a few interesting challenges all round. From the developers’ point of view, the process is reasonably well understood and seems to work well. The burn-down chart and Scrum planning sessions give the whole team a good understanding of where the project is at, and roughly if it’s on schedule or not. But I’m not so sure it’s equally useful for the other parts of the team. For the testers, documentation team, and usability team and product managers the process has definitely been less easy; generally because it highlights project planning problems that we’ve not previously dealt with in any way other than slipping the release date.

For testers, the difficult questions are things like:

  • when do we  do integration testing?
  • Should it happen in the same Sprint as the development of a story or the next one?
  • If it’s in the next one, is that story really “done” at the end of the previous Sprint?

The usability team and product managers have their own set of new challenges, too. When working on ANTS Performance Profiler, the specs could change whenever there was enough supporting evidence. We could instantly push these changes through to development, and our customer-focused developers would happily accept them. No problems there. But now everyone has to wait for the end of a Sprint before pushing changes onto the backlog, rather than letting the developer choose when to work on issues when they’re identified.

In some ways, this could all be a good thing; It’ll make us think about the cost of design changes even more. But it could equally slow down the design refinement cycle. I could encourage the team to adopt items in the current Sprint, but if they feel that they’re failing to complete Sprints, they could end up being de-motivated. There don’t seem to be any clear-cut answers

Have you adopted scrum yet? What sort of problems have you faced and, more importantly, how have you overcome them? I would love to hear your thoughts.

Cheers,

James

by James

Comments

 

Tilli said:

Hi James,

I've been working with scrum for over a year now in 2 Companies and I agree with the challanges you're facing. To answer some of the questions you're asking:

1. Testing/Documenting: this should be done a sprint behind, to eliminate burndown-stall in possible dev-delays. To your question "really done" - when is it ever really done? Problems, bugfixes and refinements happen all the way to the installation and use by end-users. A sprint just dictates "what" should be done and that whatever is done should be compileable (and possibly releaseable). But it does not state that it must be a completely hands-off-releaseable and documented product. You could ask if it must be on DVD or the docs printed. It all depends on your requirements and wether you planned them into the sprint!
2. If you want to stay agile (ie inject new stuff into the current sprint), then just plan that into the sprint! you could plan 20% time for ad-hoc features and refactoring.

The point is: don't spend time on unplanned things, but PLAN the things you want to work on in that sprint.

PS: a very important thing I've found is to go through all milestones and such in the sprint-kickoff, because this also leads to time which usually has to be spent on these events which has to be accounted for in the sprint!

cheers, Tilli
January 29, 2009 4:11 AM
 

Bryan Avery said:

As to what to do about User Testing, or any other testing except Unit Testing, in Scrum, it's out of scope.

Keep all testing, except Unit testing, away from the sprints and the development.

Testing should be a different stream or process going on.  By all mean feed back the results of any testing in to the review process of the sprint, but do not let it get in the way of the development sprint process.

We've found that using Scrum, allows for User Testing to be compiled much easier as the end users who are to write the User Testing have seen what the application looks like and understand more about what they have to testing.
January 29, 2009 5:52 AM
 

Marcos Silva Pereira said:

If you want to add changes faster, you could do short iterations. Maybe you think that you will spend so much time planning every week, but, for sure, you spend less time planning tiny iterations. Just keep the timebox in mind.

@Bryan, I can't understand why "testing should be a different stream"? Can you elucidate more about this issue?

Kind Regards
January 30, 2009 9:28 AM
 

St Louis Rams said:

We switched to scrum over a year ago and will never look back - its been fantastic for getting things done quickly with a limited staff.
February 7, 2009 11:47 AM
 

Len Porzio said:

James,

The project I'm working on has been using SCRUM for the last 3 years and we have seen the ugly and the beauty of SCRUM during this time.  The ugly is SCRUM is weak when it comes to complex architectures especially when requirements are weakly defined.  The result for us during our first year was a disaster and a product that just never operated properly nor did it achieve it's functional objectives.

Then a funny thing happened, the second year for the first six months while developers were trying desperately to make our first version work, the architects and system engineers had 6 months of lead on development to figure out what the next generation needed to do and how to engineer the architecture for robustness and growth.

The difference was astounding.  SCRUM sprints were more focused and guided.  Development fell into a rythym that had all the earmarks of a well orchestrated machine.  Bugs were fixed before releases and sprints were well balanced between refactoring and new features.

One of the keys we found was shooting for 70% unit tests.  Another good goal is automated smoke testing. This allieaviates much of the burden on integration testing so that it is truely just integration testing.  Also we found we needed a week between code freeze and the end of the sprint due to the complexity of the product and the effort it took to build and test the end result.  (We work in 4 week sprints.)

But undeniably the most important lesson learned in all this was deep thought needs to be done before development sprints begin.  This may mean having architecture and design sprints for a few months before actual prototyping sprints.  Otherwise devlopers tend to lead themselves down a narrow path locking into a weak foundation.  This also gives QA time to develop their testing framework so that functional test procedure documentation can accelerate naturally as designs are firmed up.
February 16, 2009 10:55 AM
New Comments to this post are disabled
<January 2009>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
Migrating from OCS 2007 R2 to Lync: Part 4
 Having migrated the rest of our users and legacy resources across, and start getting ready to... Read more...

Automated Script-generation with Powershell and SMO
 In the first of a series of articles on automating the process of building, modifying and copying SQL... Read more...

Seth Godin: Big in the IT Business
 Seth Godin has transformed our understanding of marketing in IT. He invented the concept of 'permission... Read more...

Using SQL Test Database Unit Testing with TeamCity Continuous Integration
 With database applications, the process of test and integration can be frustratingly slow because so... Read more...

Converting String Data to XML and XML to String Data
 We all appreciate that, in general, XML documents or fragments are held in strings as text markup. In... Read more...