Chapter 9. Improving Team Organization
In order to bring a legacy system into a better state, more needs to be taken into account than “just” the technical dimension and the domain-oriented dimension of Domain-Driven Transformation. It is often worthwhile to rethink the team structures and the approach as well. In many organizations, Agile approaches are already well established, which always delights us. If this is not yet the case for you, now is the time to think about it, because Agile transition and Domain-Driven Transformation often go hand in hand.
In this chapter, we provide you with concepts and arguments for how you can lead discussions in your organization about the existing team structures and initiate the approach that makes sense for you to transform your legacy system.
Software as a Sociotechnical System
Not only does the architecture of a system play an important role when it comes to keeping the system usable, maintainable, and expandable over many years, but the organizational and communication structures of the teams that build and develop the system are also crucial for success. The relationship between team structures and architecture was first formulated by Mel Conway:
[…] organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations. [Conway 1968]
Conway has thus described what can be observed in many organizations: the boundaries of software systems often coincide with ...