goto amsterdam 2016 - goto conference€¦ · automation allows reviewers to focus on substance....
Post on 03-Sep-2020
0 Views
Preview:
TRANSCRIPT
How people build software
�
�
GOTO Amsterdam 2016Bas Peters @bas
How people build software
HappinessDeveloping the developers most important skill
2
♥Bas PetersSolutions EngineerGitHub
How people build software
HappinessNo 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 DevelopmentThe 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 DevelopmentThe 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
7
�
GEOGRAPHY TIMEZONE CULTURE
��
�
How people build software
Open source projects have constraints
8
�
GEOGRAPHY TIMEZONE CULTURE
��
�
How people build software
Open source principles
9
TRANSPARENCYPARTICIPATIONCOLLABORATION
� � �
�
How people build software
The medium and the message are transparent
10
� � �
ELECTRONIC ASYNCHRONOUS LOCK-FREE
ARCHIVED�
�
How people build software
Minimizing friction enables participation
11
� � �
DOCUMENTATIONREADME.md
CONTRIBUTING.md
PULL REQUESTSMake it easy to
propose changes
AUTOMATIONAllows reviewers tofocus on substance
How people build software
�Minimizing friction - Documentation
12
How people build software
�Minimizing friction - Pull Requests
13
How people build software
�Minimizing friction - Pull Requests
14
Experimentation Without RiskBranch — 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
�
How people build software
Writing a Pull Request
15
• 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
�
How people build software
Providing feedback
16
• 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 👍 ✨ ✨
�
How people build software
Responding to feedback
17
• 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
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…
30
• Team rooms• Region based rooms• Social rooms• Private chat• Ops rooms
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
34
• Ensure quality• Implement rigorous testing and build• Make deploys boring and predictable• Require documentation in the
repositories• Require mature and respectful
behavior
• Improve collaboration • Let developers share their work• Require public and focused code
reviews• Give employees the confidence to
contribute code• Put everyone in one spot with chat• Share your experiences
How people build software
�
�
Thank you!
top related