The only justification for a complex solution is a complex problem.
A complex solution can’t be designed or built straight away. Complex problems only reveal themselves as you go. You don’t have the full picture at the beginning.
You therefore need to establish checkpoints along the way to the nebulous end state. This way, you can bank value and change direction now that the view ahead is clearer. You might even fully solve the problem well before the final checkpoint.
If you don’t plan for progressive enhancement, you’ll either end up in the wrong destination or hit a roadblock mid-journey. In either case you’ve banked no value, wasted a huge amount of time and money, and hurt your reputation.
If you’re building a contract database, don’t plan every single crazy data point in advance. Instead, you can sequence your checkpoints and bank value after each, delaying decisions for later when you can see more clearly down the road.
For example: