My favourite way to understand complexity is that acting in the space causes the space to change, and cause and effect can only be understood in retrospect.
When you start writing tests, or having discussions, and the requirements begin changing underneath you because of what you discover as a result, that’s complex. You can look back at what you end up with and understand that it’s much better, but you can’t come up with it to start with, nor can you define what “better” will look like and try to reach it. It emerges as you work.
You might also like