Our work with software is a system of systems, comprising technical systems (software, hardware...) and social systems (teams, knowledge networks...). For decades, our primary focus has been on the outcome and output of technical systems. Social capacity (Agile, Kanban, process models) is often perceived as a support for producing software, and often practiced as if human organizations were a software factory, manageable by divide-and-conquer, cascading goals and aggregating results.
Software professionals and Agile practitioners often feel powerless when things get too complex and too political. We are frustrated that well-meaning attempts at fixing human systems with processes, governance structure, architecture and scaled agile frameworks don't seem to work.
This talk aims at cultivating a deeper understanding of sociotechnical complexity among software engineers, architects, Agile practitioners, product professionals and leaders at all levels in large organizations. You will be introduced to a multi-dimensional sociotechnical design toolbox with practices from Domain-Driven Design (DDD), sociotechnical architecture, Complexity Theory, Systems Thinking and Constraints Framework.
You will hear concrete examples from the speaker's personal journey from being a developer, then a software architect then sociotechnical architect and a change practitioner. You will also be introduced to a number of thinking, modeling and conversational tools that you can experiment with in your own context.
Join me to reflect together on, how DDD and adjacent practices can be leveraged as powerful enabling constraints to help us see the system, share the system, and change the system in a reality of vast sociotechnical complexity and constant change.