Easterbrook on Socio-Technical Congruence

Despite technical difficulties (presenter’s worst nightmare – LCD projector bulb burnout), Steve Easterbrook demonstrated the usefulness of steve.gifcomparing software structures to social networks of developers to measure operational effectiveness. His well-argued and logical presentation ‘Increasing Shared Understanding in Software Teams through Informal Knowledge Transfer Networks’ extended Conway’s Law to social network analysis. This technique of measuring socio-technical congruence is especially valuable in larger-scale development projects, where it is probably less obvious about whether a development process is functioning effectively. By mining the data-rich environment of communication and revision logs, it is possible to generate a social network map of developer interaction that can be connected to a software development schematic to determine Socio-Technical congruence.
Conway’s Law posits that “the structure of a software system will reflect the structure of the organization that builds it”. Today’s best practices for object-oriented development emphasizes information hiding and effective modules that demonstrate minimized coupling (information flow between modules) and maximal cohesion (the amount of communication within a module).
Although software engineers typically feel that this modularity is important because it reflects a logical view of how the software works, Easterbrook suggests that it is the social structure of the team itself that forces modularity. Because software continually evolves as features are added, correctives applied and preventative maintenance is undertaken, there are many pressures on the system and the largest cost and effort is handling this evolution. With modularity, the structure can represent an assignment of responsibility, and the most effective way to measure this is by determining the linkage between the social nature of the development team and the structure of the software system. This congruence can be measured by two means: Arc Mirroring…dependency at the software level reflecting relationship at the social level…good system Similarly, Node Ties can demonstrate that people working on the same module are actually talking to one another as they should. If node ties are weak or distant, then communication inefficiencies can be identified and rectified. This analysis can present a very clear picture of how well the team is working. If modules are interdependent and people are talking to one another, then development is efficient.

Effective development is enhanced by distributed cognition and conservation of knowledge. Nodes within the social graph should minimize the amount of knowledge transfer outside of the immediate sphere of involvement to operate most effectively.

To explore the effectiveness of measuring congruence, Easterbrook studied the email logs of open source development. Using SNA techniques it was possible to systematically determine who specific bugs should be referred to and who is the expert on a particular module.
One of the exciting possibilities that Easterbrook raises for this technique of socio-technical congruence is being able to extend it from the realm of the development team to be able to measure congruence with the structure of the customer organization itself to measure software system effectiveness.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.