Combine Social and Technical Information

There’s a fine line between having enough people to complete a large task and the point where critical parts of the code turn into coordination bottlenecks. Conway’s law provides us with guidance, and in this chapter you learned how to measure coordination needs between both individuals and teams. While we won’t ever be able to put numbers on anything as complex as human interactions, we can still gather data that helps us ask the right questions.

Conway’s law in isolation isn’t enough, as team work is much more complex, and the main challenge is to combine code ownership where teams work relatively independently with shared and compelling goals rather than fostering artificial competition among the contributors. The social sciences have decades of experience for us to tap into, and we’ve discussed some of the most important factors, such as process loss and motivational issues, in this chapter.

It’s also important to note that the social information we get from our version-control system may be biased. For example, you may be pair programming, yet only the person who does the commit gets recorded. This is a limitation in how traditional version control functions. A simple workaround is to include the names of both peers in your commit message and parse that information instead of Git’s author field.

Another bias occurs when the same person is a member of several teams, which may be typical for a coach or mentor. If you don’t account for that situation, your analysis may indicate more excess parallel work than you actually have. There are two solutions here. One is to exclude such persons from the analysis since they’re expected to work on all parts anyway. Another approach is to introduce a separate team for them and analyze the work of that team in isolation.

In the next chapter we’ll look more deeply at software architectures with respect to organizational factors. You’ll also learn to connect social information to technical insights by combining knowledge analyses with technical data, which lets you identify dependencies between code that’s owned by different teams.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.17.29.48