If you learned programming by studying a book or an online course, you probably sat at your computer with a text editor or IDE, solving each problem completely as it came. Most software teams have two additional problems to contend with—the applications they're writing are much larger, and there's more than one of them working on the product at once. In this chapter, I'll look at some common ways to set about the task of programming on a larger project (though, teamwork plays such a big part in this that it has its own chapter later in the book).
Most of this chapter will act as a quick reference, with an inline reading list and a few opinions thrown in for good measure. The reason is that the concepts ...