The customer wanted the whole system. I built one line item first.
"We would like to automate the line item pricing against a rate sheet. Also, there are % uplift with certain work types. Plus we need to calculate labor cost for each item and produce a productivity overview, and it should sync items with this external system."
We actually did ask all the questions and had a pretty clear picture of all the requirements for this implementation. And I was tempted to design and build it all at once. Which was also what the customer expected.
But I knew that way madness lies.
So instead I kept constantly bringing the focus of the conversation down to the first functional piece -> the line item pricing against the rate sheet. Until we make this work, there is no point in going any further. No uplifts, no labor costs and definitely no external sync.
Prove the smallest possible solution first. Demonstrate the value. Solve the edge cases. Then expand.