We work like an open source project.
This means we adopt “open source constraints” for our software development and other projects like they do at Github. Mainly, development and operations follows these constraints where sensible:
- Electronic: Discussion, planning, and operations process should use a high fidelity form of electronic communication . Avoid meetings.
- Available: Work should be visible and expose process. Work should have a URL. It should be possible to move backward from a piece of product or a system failure and understand how it came to be that way. Prefer Slack, Trello, github, issues, pull requests, mailing lists, chat, with transcripts over URL-less mediums.
- Asynchronous: Almost no part of the product development process requires that one person interrupt another’s immediate attention or that people be in the same place at the same time, or even that people be in different places at the same time. Even small meetings or short phone calls can wreck flow so consider laying it out in (a thought out) email or sending a pull request instead.
- Lock free: Avoid synchronization / lock points when designing process. Work toward a goal should never be blocked on approval. Push approval/rejection to the review stage or automate it, but surface work early to get feedback.
We have tremendous freedom in designing process and communication from the ground up with the goal of building an organization optimized for producing new high quality open source products .