� GOTO Amsterdam 2016 Bas Peters @bas � How people build software
♥ Happiness Developing the developers most important skill Bas Peters Solutions Engineer GitHub 2 How people build software
Happiness � No mockery in this world ever sounds to me so hollow as that of being told to cultivate happiness. What does such advice mean? Happiness is not a potato, to be planted in mould, and tilled with manure. 3 How people build software
Open Source Development � The development of open source software involves bringing a widely distributed group of people together to work on complex problems while primarily communicating online. 4 How people build software
Open Source Development � The development of open source software involves bringing a widely distributed group of people together to work on complex problems while primarily communicating online. 5 How people build software
2300% more requests served per second � 6 How people build software
Open source projects have constraints � � � � GEOGRAPHY TIMEZONE CULTURE How people build software 7
Open source projects have constraints � � � � GEOGRAPHY TIMEZONE CULTURE How people build software 8
Open source principles � � � � TRANSPARENCYPARTICIPATION COLLABORATION How people build software 9
The medium and the message are transparent � � � � ELECTRONIC ASYNCHRONOUS LOCK-FREE � ARCHIVED How people build software 10
Minimizing friction enables participation � � � � DOCUMENTATION PULL REQUESTS AUTOMATION README.md Make it easy to Allows reviewers to CONTRIBUTING.md propose changes focus on substance How people build software 11
Minimizing friction - Documentation � 12 How people build software
Minimizing friction - Pull Requests � 13 How people build software
Minimizing friction - Pull Requests � Experimentation Without Risk Branch — Question, Hypothesis, Experiment, Analyze, Conclude Pull Request — Gather feedback from peers and integrate with 3rd party products to perform automation for quality of code, build status, and deployment 14 How people build software
Writing a Pull Request � • Include the purpose of this Pull Request • Why the work is taking place • Be explicit about what feedback you want • Be explicit about when you want feedback • @mention individuals that you want to involve in the discussion • Remember that anyone in the company could be reading this Pull Request 15 How people build software
Providing feedback � • Familiarize yourself with the context of the issue and why this Pull Request exists • Explain your reasons why code should be changed • Offer ways to simplify or improve code • Aim to develop professional skills, group knowledge and product quality, through group critique. • Be humble, use positive language and use emoji to clarify tone 👎 ✨ ✨ 16 How people build software
Responding to feedback � • Consider leading with an expression of appreciation • Ask for clarification, offer clarification, explain the decisions you made • Try to respond to every comment • Link to any follow up commits or Pull Requests • Sometimes it can help to talk face-to-face 17 How people build software
Enabling participation � 18 How people build software
Enabling participation � 19 How people build software
Minimizing friction - Automation � 20 How people build software
Apple Swift - Expanding Commit Access � 21 How people build software
Minimizing friction - Automation � 22 How people build software
Code deploys: bring operations to the developer � 23 How people build software
Deploy master on merge � 24 How people build software
Use branch based deployments � 25 How people build software
Deployment status � 26 How people build software
Haystack exception tracking � 27 How people build software
Code refactoring with Scientist � 28 How people build software
Code refactoring with Scientist � 29 How people build software
Put everyone in one spot with chat… � • Team rooms • Region based rooms • Social rooms • Private chat • Ops rooms 30 How people build software
… and bring your tools into your conversations � 31 How people build software
Meet Hubot � 32 How people build software
Hubot deploy example � 33 How people build software
Steps to create happy developers � • Improve collaboration • Ensure quality • Let developers share their work • Implement rigorous testing and build • Require public and focused code • Make deploys boring and predictable • Require documentation in the reviews • Give employees the confidence to repositories • Require mature and respectful contribute code • Put everyone in one spot with chat behavior • Share your experiences 34 How people build software
� Thank you! � How people build software
Recommend
More recommend