Programming Is Collaboration

On the role and importance of collaboration in software and what it means to work with people — in pair programming, at the whiteboard, in chat and video, in code reviews, in planning, and in the very code we design, write, read, debug, and maintain.

A Software Book by Simon Højberg


Subscribe to get updates on the progress of the book, previews, and essays on the topic of software collaboration.

Programming Is Collaboration is a book that comes out of 15+ years of experiences working on teams of all sizes. It explores collaboration and what it means for programmers and programming as a profession.

The book is sectioned into 25 small to medium sized essays or fragments:

Connect

  • Empathy, Humility, and Vulnerability
  • Written Communication
  • Documentation
  • Code Is Communication
  • Setup Colleagues for Success

Design

  • Collaborative Design
  • Architectural Reasoning
  • Domain Reasoning
  • Type Reasoning
  • Functional Architecture: Core & Shell

Code

  • Compositional Reasoning
  • Compositionality
  • Extension by Composition
  • Optionality and Timid Code
  • Common categorical interfaces

Review

  • Giving Feedback
  • Code Review is a conversation
  • Mentorship & Vulnerability
  • Learning from others
  • Self Review and Reflection

Maintain

  • Working with legacy code
  • Plan out Refactors
  • Expect Failures and Imperfections
  • Keep a cool head during outages
  • Testing