Given the distributed nature of the software systems we’re now building, and the distributed nature of the teams building them, it's more important than ever to understand the basics of software...