Teamwork
Introduction
Unless I've completely failed at writing convincingly for the last hundred-and-something pages, you should have the impression that software is a social activity. We work with other people to produce software, and the value system that we share as makers of software shapes the software we make. We give (or sell) our software to other people to use, and that shapes the way they see themselves and work with each other. Software can reinforce existing bonds or create new ones, but it can also destroy or reduce the importance of existing connections. Professionally speaking, the bonds our software has influence over that are closest to our experiences when writing code are with the team that we interact with every day.
This chapter discusses these bonds: how we work as a team, how our colleagues work with us, and the benefits and tensions that can occur.
Focus versus Interruption
We've heard the clarion call. We've heard how programmers need...