Subscribe to get updates on the progress of the book, previews, and essays on the topic of software collaboration.
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.
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