Flexible work

Status: started.

"Flexible" seems appropriate because it fits the nature of development: responding to changing goals.

Some (short) reading for context:

Having used aspects of both for professional and personal projects, I thought I would share my experiences.

Asynchronous, permanent communication

I really like the issues and pull requests with comments approach of GitHub. It is a permanent place to find why decisions were made and something to show others when they have questions.

Comments allow people to collaborate across different time zones. They also allow people to refresh their memory by simply scrolling up.

I dislike phone calls. When receiving them, I am usually thrown off guard and have trouble tracking down information.

Chatting in person has the advantage of exposing body language but I think it should only be used for simple clarification or quick feedback on new ideas. If the chat yields something of importance then it should be recorded in comments or documentation.

Evolving documentation

Every project should have a README that explains how to get started and where to find further documentation.

If this project is public, then it should include a short summary to sell why others may be interested. Ideally with facts and examples, rather than "better/faster than X".

A great test for the documentation is when another developer has to get up to speed with the project. The questions they need answered can guide documentation updates.