Lead Dev 2016 London: Telling stories through your commits

The key challenge is to manage complexity: name, design, refactoring, automated tests all need to convey the intent about software, and so does the VCS history.

A VCS system is:

  • kept forever
  • always up to date
  • searchable (with git)

Three principles:

  1. Make atomic commits
    • 1 single change by commit
    • the minimal viable commit is the smallest usefull commit
    • “A & B” needs to be splitted into 2 commits
  2. Write good commit messages
    • one title line
    • a longer description
    • an explanation of why the change is being made
    • perhaps a discussion of context and/or alternatives that were considered
  3. Revise development history before sharing
    • tell a useful and simple story

How to make the team adopt these practices ? Use the 3 principles yourself all the time.