A piece of software will always reflect the social structure it was build in.
Any organization that designs a system will inevitably produce a design whose structure is a copy of the organization’s communication structure.” (see Conways Law)
This has basically two consequences for agile software development and software development in general: (1) Either we accept that the software will have an architecture, that is a mapping of the current organizational structure, or (2) we need to change the way the organization is structured.
Some agile and Scrum consultants do want to implement feature teams to have organizations be more “agile.” The idea is, that a feature team will enable a more robust and more modular architecture. Teams can be more proud on what they have build and the features will be more independent from each other.
One problem with going agile in legacy environment is that the organization maps the architecture of the software. That means the communication is perfectly aligned to the organizational boundaries. Going agile in such environments is so hard, because the communication structure maps perfect the architecture of the existing software. By going agile, we “break” the working, but dysfunctional, structures — meaning the communication flows needs to be established differently.
Understanding this better in future, will help agile consultants to be more effective. First change the communication structure, than the architecture will follow.