Splitting stories through vertical slicing is something you’ve probably heard and are practicing. Now you’re probably thinking “I’ve done that before, this is simple.” If that were the case, many of the agile consultants would be out of the job. It’s harder than you think to have the discipline to slice features up. It’s also tough to be disciplined and make sure that ever iteration has multiple features in the iteration.
Often times iterations become boxes of features – when planning the sprint the question asked is “what can you deliver in 2 weeks” as opposed to “what can you grow in 2 weeks”. Creating two week feature boxes is encouraged by a lot of authors that talk about release themes – people misunderstand that to mean that sprints should be themed. When push comes to shove the sprint is extended to meet the completion of the theme. Sound familiar?
Thinking in terms of a pull system rather than ‘pushing’ work into a sprint will go a long way. I’ve had students that said their software is extremely complex and nothing can be produced for weeks on end. Consider this – do you compile and check out what the code is doing only after the end of weeks – I hope not.
A 2 week sprint is 2 weeks of time, not an estimate of what the team thinks can be completed in 2 weeks which is then extended to accommodate the estimated features. You’ve got to think backwards, that will help quite a bit.