The most complicated part of all I think is really this. Regardless of the architecture and stack you choose, will always fall into this dilemma.
Humbly I will try to answer this in my project manager perspective which puts me daily ahead of pricing and application design.
I would first ask myself the following before starting:
This is a circumscribed process, that is, do we have the current view of the process from start to finish? I can put this into a project (Gantt Chart) and budget it in an organized way?
If yes, in this case it is enough to understand the processes involved, and develop in chronological order in which customers are involved to follow the development.
In this case, few conversations with customers solve. Usually maximum 3 conversations.
We usually break into "must haves", "nice to haves" and "good to haves". After we finish the "must haves" if there is time then we go to the others (say in passing what usually never happens).
In this situation it is known in advance (roughly) the "how much it costs" and "when it is ready".
If it is not something that already works today and we are talking about some "rupture", that is, a new product or service, in which there is no?
In this case the management and development model should be oriented to Sprints. We have a vague idea of how much it will cost and no idea when it gets ready.
In this situation we have a universe in which it may NEVER end because there will always be continuous improvement.
In this case I would say that the "pocket" of the customer or the owner of the thing will tell how far this continuous improvement will follow.
Will it be an MVP? It will be an app of millions invested?
How long the development game will last will be directly linked to the amount or time of who wants to invest in the thing.
Concluding
As mentioned: "different goals give rise to different commitments of space and time".
That sums it up. There are situations where the design is clear and determined. The user needs an NFE emission system integrated with SAP. You don’t need a very bold design to suit you. If it’s web, a bootstrap, coreUI with a simple backend can solve. You’re not going to make a microservice backend app or use a reputable designer to make the form. There’s not much beyond what was once seen.
The client wants an application to estimate the dollar rate in the next 20 days analyzing news on the web and certain sources. This may tend to infinity in development.
Everything goes from the scene and I would say by experience, by the size of the investment available.
Solve the problems you have.
– Motta