More so this complexity requires that you have support for your users, and QA of weird functional interactions across systems boundaries that you just can't test for when actually writing the code.
This gets expensive really fast.
Complex software is hard, yo.