Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Guest : A Guide To Code Hospitality

The Guest : A Guide To Code Hospitality

You were living alone in the town of Ruby-on-Rails until you decided to open up your spare room to guests. Now your first visitor has booked in. Her arrival is imminent.

How do you prepare? How can you make sure she has a great visit?

Let’s explore the art of code hospitality — working on codebases in a way that respects your teammates and provides for their needs. By working hospitably, we can facilitate team productivity and help new members quickly feel at home.

A talk at RailsConf 2016.

Nadia Odunayo

May 19, 2016
Tweet

More Decks by Nadia Odunayo

Other Decks in Programming

Transcript

  1. THE GUEST
    Nadia Odunayo
    A GUIDE TO CODE HOSPITALITY
    @nodunayo

    View full-size slide

  2. I think
    I want to move
    to London.

    View full-size slide

  3. Will you
    help me
    please?

    View full-size slide

  4. “It’s like Rails is my
    city and I’ve lived here
    all of my life.”

    View full-size slide

  5. I think I
    want to move to
    Ruby-on-Rails.

    View full-size slide

  6. Code Hospitality

    View full-size slide

  7. Problem solving

    View full-size slide

  8. Problem solving
    &
    Communication

    View full-size slide

  9. Collaboration

    View full-size slide

  10. Collaboration
    &
    Learning

    View full-size slide

  11. CODE HOSPITALITY
    THE GUIDE

    View full-size slide

  12. WHO IS THIS
    GUIDE FOR?

    View full-size slide

  13. You’ve recently
    started a new
    job.

    View full-size slide

  14. You have a new
    team member.

    View full-size slide

  15. You’ve recently
    rotated onto a
    new team.

    View full-size slide

  16. You’ve recently
    typed
    ‘rails new’.

    View full-size slide

  17. You’re on a
    project using an
    unfamiliar
    language.

    View full-size slide

  18. You’ve got people
    looking to you
    for direction.

    View full-size slide

  19. You regularly
    collaborate with
    other people.

    View full-size slide

  20. You want your
    team to be
    productive.

    View full-size slide

  21. You want your
    team to be
    happy.

    View full-size slide

  22. You’re in the right place.

    View full-size slide

  23. INTRODUCTION

    View full-size slide

  24. When was the last
    time you had a
    guest?

    View full-size slide

  25. What did you do
    to make their stay
    pleasant?

    View full-size slide

  26. When was the last
    time you were a
    guest?

    View full-size slide

  27. Did you enjoy it?

    View full-size slide

  28. Vulnerable
    &
    Uncertain

    View full-size slide

  29. SETTING THE TONE

    View full-size slide

  30. Guest / Host

    View full-size slide

  31. Guest / Host

    View full-size slide

  32. Guest / Host
    Junior / Senior

    View full-size slide

  33. first meeting
    orientation
    Preparation

    View full-size slide

  34. def name_one
    end

    View full-size slide

  35. def name_one
    end
    def name_two
    end

    View full-size slide

  36. def name_one
    end
    def name_two
    end
    def AliasThree
    end

    View full-size slide

  37. def name_one
    end
    def name_two
    end
    def AliasThree
    end
    ?

    View full-size slide

  38. class SweetDispenser
    end

    View full-size slide

  39. class SweetDispenser
    end
    # I give you sweets

    View full-size slide

  40. class SweetDispenser
    end
    # I give you sweets
    # I also display your
    # bank balance

    View full-size slide

  41. def MakeAnAwesomeSandwich
    end
    get_bread && fillings && spread
    || no_spread && put_it_all_together
    || or_not

    View full-size slide

  42. def MakeAnAwesomeSandwich
    bread = prepare_bread(no_of_slices)
    fill_bread(bread, favorite_filling)
    end

    View full-size slide

  43. def MakeAnAwesomeSandwich
    bread = prepare_bread(no_of_slices)
    fill_bread(bread, favourite_filling)
    end

    View full-size slide

  44. Keep your codebase in a
    state ready to receive
    unexpected guests.

    View full-size slide

  45. We attempted
    that refactor,
    but…

    View full-size slide

  46. I couldn’t be
    bothered.

    View full-size slide

  47. Know the reasons why your
    codebase isn’t up to the
    standard you want it to be.

    View full-size slide

  48. What type of
    guest?

    View full-size slide

  49. Open Source
    Guests

    View full-size slide

  50. A README that keeps you
    running.

    View full-size slide

  51. first meeting
    orientation
    preparation

    View full-size slide

  52. Want to do a
    lunch & learn?

    View full-size slide

  53. You can ask
    me anything.

    View full-size slide

  54. Is there anything
    you’d like to see
    that I haven’t
    shown you yet?

    View full-size slide

  55. I’m putting
    my headphones on
    but…

    View full-size slide

  56. …I’m interruptible.

    View full-size slide

  57. Demonstrate that you want
    your new teammates to feel
    at home as soon as possible.

    View full-size slide

  58. orientation
    preparation
    first meeting

    View full-size slide

  59. Tell new teammates the
    story of your codebase.

    View full-size slide

  60. DELIVERING VALUE

    View full-size slide

  61. How do
    you
    see the domain?

    View full-size slide

  62. As a user, I want
    to get inside the
    Tower of London

    View full-size slide

  63. Assume that you and your
    teammate are both lost.

    View full-size slide

  64. Scribble down diagrams and
    work together to find one
    another.

    View full-size slide

  65. I don’t remember how.

    View full-size slide

  66. Here are some
    ways that we’ve
    approached it in
    the past.

    View full-size slide

  67. Here is how
    another person
    may approach it.

    View full-size slide

  68. Let’s explore
    the pros
    and cons.

    View full-size slide

  69. Which way
    shall we go?

    View full-size slide

  70. Move the conversation from
    implementation detail to
    broader concepts.

    View full-size slide

  71. GIVING & RECEIVING
    FEEDBACK

    View full-size slide

  72. Feedback is hard

    View full-size slide

  73. You spoke
    about
    feelings a lot.

    View full-size slide

  74. Seems strange
    for a work
    environment.

    View full-size slide

  75. Seems strange
    for a work
    environment.

    View full-size slide

  76. Feelings
    Needs

    View full-size slide

  77. Feelings
    Needs
    Requests

    View full-size slide

  78. No
    Judgement
    Safe Zone

    View full-size slide

  79. You hogged
    the keyboard!

    View full-size slide

  80. You hogged
    the keyboard!

    View full-size slide

  81. I need to get
    better at writing
    tests.

    View full-size slide

  82. Yeah, it
    was great!

    View full-size slide

  83. Yeah, it
    was great!

    View full-size slide

  84. I need to
    know I’m being
    heard.

    View full-size slide

  85. What should we

    View full-size slide

  86. What should we
    keep doing?

    View full-size slide

  87. What should we
    change?

    View full-size slide

  88. When giving and receiving
    feedback, focus on expressing
    your feelings and needs.

    View full-size slide

  89. Code Hospitality enables
    us to empathise.

    View full-size slide

  90. It is only when we treat
    our colleagues as guests
    that we thrive.

    View full-size slide

  91. Where can I buy a copy
    of the Code Hospitality
    guide?

    View full-size slide

  92. http://speakerdeck.com/nodunayo

    View full-size slide

  93. Where can I find out
    more about
    communicating with my
    colleagues effectively?

    View full-size slide

  94. Nonviolent
    Communication
    Marshall B. Rosenberg
    by

    View full-size slide

  95. What is a way that I can
    run a 1:1 retrospective?

    View full-size slide

  96. https://blog.pivotal.io/labs/labs/feedback-in-conversation

    View full-size slide

  97. Where can I join the
    Code Hospitality
    discussion?

    View full-size slide

  98. #codehospitality

    View full-size slide

  99. Who helped you in the
    development of this talk?

    View full-size slide

  100. Theo Cushion
    Barrett Clark
    Andy Croll
    Adam Cuppy
    Pete Holiday
    Tammer Saleh
    Justin Searls
    Amar Shah
    JB Steadman

    View full-size slide

  101. How can we make it safe
    to be vulnerable?

    View full-size slide

  102. HOW WAS YOUR STAY?

    View full-size slide

  103. THANK YOU!
    HOW WAS YOUR STAY?
    Nadia Odunayo
    ignition.works
    @nodunayo

    View full-size slide