The start of a new software project, regardless of being a brand new system or adding on to an existing system, can be precarious. By definition this is the least you will have ever used the new features, it doesn’t exist yet, and everything you are basing your choices on are assumptions about how it should work.
For small additions, you are likely going to be right. For larger projects, that’s not the case.
My recommendation is to split the outcome you are looking for from the specific means by which you want to achieve that.
For example, you might want to reduce the cost of generating a TPS Report by 30%. This is your desired outcome. You can achieve this many ways:
By splitting the outcome and the task you gain flexibility in what is ultimately built.
This should encourage two behaviours:
The old story of an airplane being 1° off course early, which leads to being in the wrong country at the end applies to software projects too.
So, use the beta version of your system as early as possible and course correct early on.
This is the best way to ensure your projects stay on track and are successful!