Chapter 9. Efficient Collaboration
Large projects inevitably involve many people. This poses risks but also creates opportunities for improving computational efficiency and productivity, especially if project collaborators are reading and committing code. This chapter provides guidance on how to minimize the risks and maximize the benefits of collaborative R programming.
Collaborative working has a number of benefits. A team with a diverse skillset is usually stronger than a team with a very narrow focus. It makes sense to specialize: clearly defining roles such as statistician, frontend developer, system administrator, and project manager will make your team stronger. Even if you are working alone, dividing the work into discrete branches in this way can be useful, as discussed in Chapter 4.
Collaborative programming provides an opportunity for people to review each other’s code. This can be encouraged by using a uniform style with many comments, as described in “Coding Style”. Like using a clear style in human language, following a style guide has the additional advantage of making your code more understandable to others.
When working on complex programming projects with multiple interdependencies, version control is essential. Even on small projects, tracking the progress of your project’s code base has many advantages and makes collaboration much easier. Fortunately, it is now easier than ever before to integrate version control into your project, using RStudio’s interface ...