Daniel Li
24 May 2018
Engineering Happy Hour
A set of rules that contributors should follow for a project. It may include:
Coding / Style Conventions
Git Workflows
Project Management Workflows
Infrastructure / Deployment Workflows
Other Best Practices
Everyone comes from different backgrounds.
Personal Preferences
Workflow carried forward from previous company
Inconsistency == Ineffectiveness
Inconsistent Code Style -> Harder for others to read your code
Inconsistent Git Workflow -> Uncertainty about the status of the project. More merge conflicts.
Marketplace for Vacation Homes
Airbnb
Open-source implementation of .NET
Mono
Technology Design Studio in London
Elsewhen
Open-source code editor
Atom
If people have made other guidelines. Why not use those?
There's no best practices that works for everyone
It's hard to get everyone in the team to agree on which guideline to adopt
Team leads can dictate + impose guidelines for others to follow. So why the democracy?
Efficiency - in the short run, to adopt a new standard takes time and can slow down development. So we should find a compromise that works well enough for everyone.
Morale - allow contributors to argue for their point of view
Engagement - Involving contributors into the process increases their engagement
Better Outcome - discussions are valuable way to learn from others
Git, Issues and Pull Requests
To discuss something - raise an issue
To change something - create a PR
Any discussion / feedback are done on the issue / PR comments
After agreement is reached, approve or reject the issue / PR
If accepted, the issue / PR is assigned to the person responsible for making the change
Transparency - the rationale is documented as comments and commit messages, and can be referred to if a similar argument arises again
Open + Inclusive - Issues and PRs can be openly-discussed. Everyone can be involved, even if they're working remotely.
Encourage Engagement - participation means you can make your own life easier
Aggregate Issues - issue tracker allows you to collect issues to dicuss, altogether, in one effective meeting, instead of many ineffective meetings, one for each issue.