The unfortunate reality is that you know the least about a project on day one. All your plans are based on assumptions and you haven’t used the new system yet.
Because of this, you should be using the new system ASAP, while it is being built. When using it, you should be keeping an open mind to revise what is being built.
Some questions you can be asking are:
After using the (partial) solution, you may discover that it won’t do what you need it to do.
Software development is often a process of discovery which means this does happen. The best course of action is to stop and reconsider the project. Continuing forward is throwing good money after bad.
Now that you’ve worked on the problem some, take time to reconsider the solution. Often the first stab at the problem breaks the ice and exposes better ideas.
By reassessing the situation early, you will be more willing to throw the initial work out (if needed) to take the new, better, approach.
As you move through the build phase and you understand the problem better, you may discover that the project just isn’t worth doing.
This happens when you begin a small project with a one month budget. Turns out, after getting into it, its an estimated six month project. At that duration, the project is just not worth doing.
If that’s the case, scrap the project early. That’s the least bad solution in this situation.
The key take away from all these suggestions is to consistently be assessing status, avoid ignoring warning signs, and to change directions if that’s the best course of action today.