GOTO Amsterdam 2016 Bas Peters @bas How people build software - - PowerPoint PPT Presentation

goto amsterdam 2016 bas peters bas how people build
SMART_READER_LITE
LIVE PREVIEW

GOTO Amsterdam 2016 Bas Peters @bas How people build software - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1 How people build software
  • GOTO Amsterdam 2016

Bas Peters @bas

slide-2
SLIDE 2 How people build software

Happiness

Developing the developers most important skill

2

Bas Peters Solutions Engineer GitHub

slide-3
SLIDE 3 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
slide-4
SLIDE 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.

4
slide-5
SLIDE 5 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
slide-6
SLIDE 6 How people build software
  • 2300% more requests served per second
6
slide-7
SLIDE 7
  • How people build software

Open source projects have constraints

7
  • GEOGRAPHY

TIMEZONE CULTURE

slide-8
SLIDE 8
  • How people build software

Open source projects have constraints

8
  • GEOGRAPHY

TIMEZONE CULTURE

slide-9
SLIDE 9
  • How people build software

Open source principles

9

TRANSPARENCYPARTICIPATION COLLABORATION

slide-10
SLIDE 10
  • How people build software

The medium and the message are transparent

10
  • ELECTRONIC ASYNCHRONOUS LOCK-FREE

ARCHIVED

slide-11
SLIDE 11
  • How people build software

Minimizing friction enables participation

11
  • DOCUMENTATION

README.md CONTRIBUTING.md

PULL REQUESTS

Make it easy to propose changes

AUTOMATION

Allows reviewers to focus on substance

slide-12
SLIDE 12 How people build software
  • Minimizing friction - Documentation
12
slide-13
SLIDE 13 How people build software
  • Minimizing friction - Pull Requests
13
slide-14
SLIDE 14 How people build software
  • Minimizing friction - Pull Requests
14

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

slide-15
SLIDE 15
  • 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

slide-16
SLIDE 16
  • 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 👎 ✨

slide-17
SLIDE 17
  • 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
slide-18
SLIDE 18 How people build software
  • Enabling participation
18
slide-19
SLIDE 19 How people build software
  • Enabling participation
19
slide-20
SLIDE 20 How people build software
  • Minimizing friction - Automation
20
slide-21
SLIDE 21 How people build software
  • Apple Swift - Expanding Commit Access
21
slide-22
SLIDE 22 How people build software
  • Minimizing friction - Automation
22
slide-23
SLIDE 23 How people build software
  • Code deploys: bring operations to the developer
23
slide-24
SLIDE 24 How people build software
  • Deploy master on merge
24
slide-25
SLIDE 25 How people build software
  • Use branch based deployments
25
slide-26
SLIDE 26 How people build software
  • Deployment status
26
slide-27
SLIDE 27 How people build software
  • Haystack exception tracking
27
slide-28
SLIDE 28 How people build software
  • Code refactoring with Scientist
28
slide-29
SLIDE 29 How people build software
  • Code refactoring with Scientist
29
slide-30
SLIDE 30
  • How people build software

Put everyone in one spot with chat…

30
  • Team rooms
  • Region based rooms
  • Social rooms
  • Private chat
  • Ops rooms
slide-31
SLIDE 31 How people build software
  • … and bring your tools into your conversations
31
slide-32
SLIDE 32 How people build software
  • Meet Hubot
32
slide-33
SLIDE 33 How people build software
  • Hubot deploy example
33
slide-34
SLIDE 34
  • 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
slide-35
SLIDE 35 How people build software
  • Thank you!