On the other hand, long-running maintenance work with a stable goal over a year or more probably benefits much less from sprinting. I guess in this case we would need to know what "marathon" development would be :-)
The biggest mistake most companies make is not rushing bad code out the door too quickly, that's hard to prevent entirely, but rather failing to take the time to fix or replace bad code quickly once it's obvious the functionality isn't throwaway.
As long as you are moving forward (even if it is by inches) you are doing fine. A shipped working product that solves an important problem is better than a late unreleased one that tries to do everything.
This has a certain feel of spin about it.
Unreleased code is a liability and branches are a waste of time. If you're not deploying every day you are doing something wrong.
One common excuse for a particular ostensible deadline is that it is due to some other, downstream/outside deadline, perhaps on the customer or stakeholder's side of the fence. But even then, very often, that entity's deadline is not really a deadline, it is typically yet another date pulled out of thin air because it sounded nice, regardless of whether it was realistic. A guess added to another guess added to another guess which get summed up and padded and turned into an estimate then pegged to a date then ever after referred to as a "deadline" (cue ominous music.) We come up with deadlines because we like to have certainty and the myth of control over things where in reality there's quite a deal of uncertainty and quite a large number of things over which we have no control. Deadlines can be good as goal dates associated with certain milestones, but even then it's best to call them that and treat them as such. I've seen too many software industry deadlines where teams worked like keyboard slaves to ship a particular feature set by a particular date, and ALMOST ALWAYS in the cases where the date wasn't hit there were NO significant negative consequences, no heads rolled, no business lost, etc., just a pleasant whooshing sound as the date flew past, and a quiet rethinking on the part of every developer who just took part in that "false alarm" march.
I've also noticed that, at least in the software industry, that deadlines are common when Project Managers are present. But PM's are, in my opinion, a bit of an anti-pattern themselves. Not that all PM's are bad -- because some of them are good and helpful -- but rather that if you're in a situation where you think you have to have a PM (or a deadline, or both) then that's usually a consequence of something else being wrong about your organization or process, and so you might be better off fixing those root causes instead.
> Deadlines can be good as goal dates associated with certain milestones, but even then it's best to call them that and treat them as such.