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

Post on 03-Sep-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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