This post originated from an RSS feed registered with Java Buzz
by Michael Cote.
Original Post: Architecture by People
Feed Title: Cote's Weblog: Coding, Austin, etc.
Feed URL: https://cote.io/feed/
Feed Description: Using Java to get to the ideal state.
Having managed distributed teams that have spanned the globe, I've found that an important criterion in decomposing subsystems is having the simplest possible dependencies among development organizations. By simple, I mean manageable based on the people who are creating the system. In work with my consulting clients, I've found that, contrary to "technical" justifications, many architectural choices regarding subsystem design are based on creating easily managed dependencies among groups of developers. The practical effect of these choices is that subsystems are rarely split across development organizations.
That seems so very true: the structure of sub-systems that emerges (not the structure that was planned) are often times along people-lines, not technology lines. As with so much in software, architecture usually boils down to people.