Software development is complex, not complicated
I keep running into this confusion. When I say software development is "complex" (mainly when asked for long-term estimations), people nod along thinking I mean "difficult" or "has lots of parts." But Cynefin makes a distinction that actually matters.
Complicated systems have discoverable relationships. You can figure them out with enough expertise. A car engine is complicated. Given enough time and the right expert, you understand how A leads to B. The approach is sense, analyze, respond. This distinction matters because Methods, methodologies and mindset evolved differently for each type.
Complex systems are different. I think the key insight is that cause and effect only make sense looking backwards because the system itself adapts. When you try something, you change the starting conditions for the next attempt.
You can't predict outcomes from inputs because the system responds to your actions. See The correct response to complexity is probe, sense, respond for how to work in complex systems.
I see this all the time. The solution I created last year may completely change with the knowledge I have now. I learned things. I forgot things.
The trap is treating software like it's simple, like a production line. Most non technical leaders do this because that's what worked in their previous domains. Gantt charts. Year long plans. Best practices. This evolution mirrors The increasing in uncertainty drove each era of software development practices, which is why There are no best practices in complex systems.