Does SCRUM work?
I work on a small incubation team in Microsoft Research, Cambridge. Our projects vary widely. The smallest is about 6 man-months of work. The largest so far is about 3 man-years of work.
I'm used to the traditional Microsoft development process from my days in Windows:
- Gather and formalize requirements
- Draw up and review an overall product feature spec
- Write up and review an overall architecture spec
- Write up and review individual component design specs
- Write up and review implementation specifications
- Write up and review test plan specifications
- Implement the features, doing unit testing (and formal testing as time allows) until you hit code complete
- Have a LONG stabilization and testing phase, including design changes as needed. This phase is usually several times longer than hitting code complete.
- throughout (1-8), status meetings, status meetings, status meetings
This process is a necessary evil for some types of products, but is overkill for my tiny incubation efforts. I take an abbreviated specification approach, shrinking the design phase (but still requiring it), skipping test specs, and then combining implementation and testing execution.
I have heard about SCRUM from a few places, but I'm not sure it applies to my size of project either. And, even for projects it does apply to, it's unclear to me whether it's really of benefit over our old, admittedly gargantuan process.
Do you have opinions or direct experience? If so, please feel free to post a comment here, else email me directly. As I move forward, I'll also share my opinions here.