In an ideal world we would get requirements from the stakeholders, work on them until we had turned them into beautiful code, taking as long as we needed, and then ship the solution to great applause. In the real world what stakeholders want isn’t completely clear to them and there is usually a deadline. Often this deadline is moveable but some deadlines are out of your control. It’s unlikely that people will agree to move the start of a sports season, budget cycle, or Christmas just because your project is late.

You need to take this into account and do the most important work first. If there are four parts to the project and you are 80% done on all of them when the deadline passes then that’s the same as being 0% done on all of them. If you were 100% done on the most important two pieces and 60% done on the other two you at least have something of value to show for your work.

You also need to make it clear to your stakeholders the cost of change as you get closer to the deadline. If there is important work that will need some iteration for everyone to be happy then start that as early as possible. Make sure it’s important work though! Going round in circles on something that’s not going to move the needle is a sure way to not get to 100% on the important stuff.

What deadlines do you have coming up and how close are you to being 100% done on the most important work for them?