Timeboxing is an alternative method to goal-setting. The classic case is diets: instead of saying "I will lose 10kg in a month", timeboxing says "I will eat healthier and take some exercise every day for 2 weeks and see what happens". The difference is to do something different for a set period of time, and then see what the result was, rather than set a goal and a deadline.
For those of us immersed in Lean Startup thinking, where goal-setting doesn't really work any more as a motivation method (who cares if I fail in my goal, that I set myself 2 weeks ago, the important thing is what have I learned in that failure?). Time-boxing is a great alternative because it doesn't judge, it all about learning what happens if we change behaviour.
Timeboxing as setting goals and "exclusion zones" misses the point of it. If you say that you're going to "timebox" writing those two missing features today, but don't manage to complete them, then what happens? Do you extend to tomorrow? Then you're not really timeboxing, you're just saying "I'm not answering any calls until I've finished these features". Which is a totally different thing.
Properly timeboxing this would be "I'm going to spend today working on those features". I don't make any commitment to finish them. I don't know if I can finish them in a day. There's no judgement if I don't - I successfully spent a day working on them, and that was the requirement. After that one day I will know more and may be able to make a judgement or commitment about completion. Or not. I'll know after I spent the day working on them, not before.
I do believe that "do something for a set period and see what happens" is the wrong way to look at timeboxing.
Rather, (at least to me) it's "don't extend the deadline, instead reduce the scope". You slice your deliverables small enough so that if you miss the deadline, it's not an all-or-nothing situation. You can always deliver a usable subset of what you planned/forecast.
Take your example, "writing those two missing features today". You might just end up delivering one of those features if your forecast turns out to be inaccurate. It's more effective if the timebox is larger and the tasks are smaller.
I always see timeboxing as ensuring that an exploratory task does not blow up in terms of time spent on it.
This means you'll hear something like: "I'll timebox improving performance of this feature to a single day; it would be nice if we can get a quick win, but it's not really blocking if we do not.".
Maybe within 10 minutes of profiling you see that one line of code that is copying large data structures around unnecessarily and a quick refactor speeds the feature up 5x. Or maybe you spent all day on it and haven't found anything that's quick to fix: You fix up a couple of small inefficiencies and speed up the feature by 2%. You write down your findings and at least now the team will know that optimising that feature will be a larger undertaking and should be estimated as such.
I have also done it for very edge case bugs where no one is really sure what the cause is and fixing it is not high priority. You might get lucky and work it/fix it quickly; but if you don't, then at least you're not spending a week when the remaining 4 days could've been spent on something of higher priority.
> but if so many people get it wrong there seem to be a fundamental problem with scrum
It's the same problem with all methodologies - if the management is in charge of the process and it doesn't like some aspect of the process it will ignore that aspect.
If Scrum is X, but everyone saying "Scrum" is referring to Y, is Scrum X or Y?
The answer is it doesn't matter. The problem here is that people are doing Y not X, and discussing semantics is only useful as an appeal to authority (which to be fair can be pretty darn useful sometimes).
Scrum/Agile are useful tools to get buy in and a bit of restructuring done, but I feel as soon as you start doing real work you will just have to figure out what flavor works for your team, and what modifications need to be made to the process to make that happen.
Timeboxing is an alternative method to goal-setting. The classic case is diets: instead of saying "I will lose 10kg in a month", timeboxing says "I will eat healthier and take some exercise every day for 2 weeks and see what happens". The difference is to do something different for a set period of time, and then see what the result was, rather than set a goal and a deadline.
For those of us immersed in Lean Startup thinking, where goal-setting doesn't really work any more as a motivation method (who cares if I fail in my goal, that I set myself 2 weeks ago, the important thing is what have I learned in that failure?). Time-boxing is a great alternative because it doesn't judge, it all about learning what happens if we change behaviour.
Timeboxing as setting goals and "exclusion zones" misses the point of it. If you say that you're going to "timebox" writing those two missing features today, but don't manage to complete them, then what happens? Do you extend to tomorrow? Then you're not really timeboxing, you're just saying "I'm not answering any calls until I've finished these features". Which is a totally different thing.
Properly timeboxing this would be "I'm going to spend today working on those features". I don't make any commitment to finish them. I don't know if I can finish them in a day. There's no judgement if I don't - I successfully spent a day working on them, and that was the requirement. After that one day I will know more and may be able to make a judgement or commitment about completion. Or not. I'll know after I spent the day working on them, not before.