goto amsterdam 2016 - goto conference€¦ · automation allows reviewers to focus on substance....

35
How people build software ! ! GOTO Amsterdam 2016 Bas Peters @bas

Upload: others

Post on 03-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

GOTO Amsterdam 2016Bas Peters @bas

Page 2: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

HappinessDeveloping the developers most important skill

2

♥Bas PetersSolutions EngineerGitHub

Page 3: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 4: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 5: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 6: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�2300% more requests served per second

6

Page 7: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

Open source projects have constraints

7

GEOGRAPHY TIMEZONE CULTURE

��

Page 8: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

Open source projects have constraints

8

GEOGRAPHY TIMEZONE CULTURE

��

Page 9: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

Open source principles

9

TRANSPARENCYPARTICIPATIONCOLLABORATION

� � �

Page 10: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

The medium and the message are transparent

10

� � �

ELECTRONIC ASYNCHRONOUS LOCK-FREE

ARCHIVED�

Page 11: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 12: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Minimizing friction - Documentation

12

Page 13: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Minimizing friction - Pull Requests

13

Page 14: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 15: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 16: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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 👍 ✨ ✨

Page 17: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 18: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Enabling participation

18

Page 19: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Enabling participation

19

Page 20: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Minimizing friction - Automation

20

Page 21: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Apple Swift - Expanding Commit Access

21

Page 22: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Minimizing friction - Automation

22

Page 23: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Code deploys: bring operations to the developer

23

Page 24: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Deploy master on merge

24

Page 25: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Use branch based deployments

25

Page 26: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Deployment status

26

Page 27: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Haystack exception tracking

27

Page 28: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Code refactoring with Scientist

28

Page 29: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Code refactoring with Scientist

29

Page 30: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

Put everyone in one spot with chat…

30

• Team rooms• Region based rooms• Social rooms• Private chat• Ops rooms

Page 31: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�… and bring your tools into your conversations

31

Page 32: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Meet Hubot

32

Page 33: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

�Hubot deploy example

33

Page 34: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

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

Page 35: GOTO Amsterdam 2016 - GOTO Conference€¦ · AUTOMATION Allows reviewers to focus on substance. How people build software Minimizing friction ... Put everyone in one spot with chat…

How people build software

Thank you!