I like running, I like running a lot – but like any person, I know I can’t run forever.
As much as I would like, my legs will get tired and it will become more about pain management than progress.
Maybe I haven’t trained hard enough, built up enough endurance or don’t have the will to keep going.
The same thing happens on projects – sure you can keep running and pushing and running and pushing and running and pushing – until you have nothing left to give in the hopes that it was enough to deliver the project.
But most often when we stop running and look back at where all that effort took us – we are shocked to see that despite running that whole time we didn’t really go much further had we rested and started fresh.
Early on when I started getting into running, I pushed myself harder before the mid-point of a race and started to pass a large cohort of people. But in the final homestretch, I was gassed and had nothing left to give. I watched as every person I had passed jogged by me and then some, leaving me further behind.
Not my most memorable moment.
Same thing for software development – if you’re going to sprint, make sure you do it at the right time – because when the time comes, we are going to need you and we will need you to be ready as we sprint to the finish line.
And that’s the truth about software delivery and that will never change.