This came up in a very interesting time, since we just “discovered” this happens here. I don’t think Johanna’s talking about us, though (I don’t know that our company was part of the course. Maybe we should have).
There’s the main integration branch where people are checking in fixes. But some fixes are planned for later build, so they are not checked in. In a recent discussion, we also decided that the fixes are marked as done in the bug tracking system only when they are integrated into the main branch.
(Consider that a “private fix” is based on another fix. But the first is delivered into the main branch, but the other is not. So the latter is not really tested on the real environment, that could change in a few builds. And I don’t want to think about if there’s shared file between them.)
A staged delivery method creates opportunities for failure in the future (or even now).
I think the main point I got from the post is the cost calculation of integration of the private fixes compared to the cost of fixing the integration method. While I estimate much lower numbers here, at least in the long run (and after I check I’m sure it will come out also true in the short term) it pays off. The trouble is that there’s never enough time to do the right thing.
By the way, Johanna’s blog is a great resource for agile development and management. Also, in teamAgile.com, Roy Osherove collected and performed interviews, 3 of which are with Johanna. Check it out.