The worst time to find out a project is not going to ship on time is at the very last minute when it’s supposed to. At that point, there’s very little you can do to save the project. This may sound obvious, but to avoid getting yourself in that corner takes skill and discipline. You need to spot the signs of a derailed project early on, and build processes and communication channels that give you the regular updates you need in order to course correct in time.
No News is Bad News
If your team has not alerted you to any roadblocks, do not assume everything is on track. Team members often get stuck and are reluctant to ask for help, for fear of being perceived as incompetent or interrupting others. Let your team members know that it’s far better to ask for help, get unstuck and complete the work assigned than to miss a deliverable. When delays are unavoidable, communicate that you need to be informed as soon as possible.
Show Don’t Tell
Instead of asking for status updates and reports, ask for regular demos. Most software teams should be able to show you what they’ve worked on in the last week/sprint. If they can’t, you have a problem. Either nothing got worked on (unlikely) or nothing got completed. Incomplete work is a sign that planning failed, whether it’s because of unforeseen issues, or because the team failed to divide big tasks into smaller manageable pieces.
Shrink The Timebox
Many software teams have adopted iterative approach to development, where each iteration/sprint is time-boxed, typically to one or two weeks. The length of a sprint should be picked very carefully, the shorter the better. Shorter sprints give you more transparency and time to react with greater flexibility.
Surprises are not fun at the end of a project, make sure you seek out regular and frequent updates and demos from your team.