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 Slide

  2. STORY ONE

    View Slide

  3. I think
    I want to move
    to London.

    View Slide

  4. Cool!

    View Slide

  5. Will you
    help me
    please?

    View Slide

  6. Sure!

    View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. STORY TWO

    View Slide

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

    View Slide

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

    View Slide

  16. Code Hospitality

    View Slide

  17. Problem solving

    View Slide

  18. Problem solving
    &
    Communication

    View Slide

  19. Collaboration

    View Slide

  20. Collaboration
    &
    Learning

    View Slide

  21. CODE HOSPITALITY
    THE GUIDE

    View Slide

  22. WHO IS THIS
    GUIDE FOR?

    View Slide

  23. You’ve recently
    started a new
    job.

    View Slide

  24. You have a new
    team member.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. You regularly
    collaborate with
    other people.

    View Slide

  30. You want your
    team to be
    productive.

    View Slide

  31. You want your
    team to be
    happy.

    View Slide

  32. You’re in the right place.

    View Slide

  33. INTRODUCTION

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. Did you enjoy it?

    View Slide

  38. Hospitality

    View Slide

  39. Vulnerable

    View Slide

  40. Vulnerable
    &
    Uncertain

    View Slide

  41. SETTING THE TONE

    View Slide

  42. Guest / Host

    View Slide

  43. Guest / Host

    View Slide

  44. Guest / Host
    Junior / Senior

    View Slide

  45. first meeting
    orientation
    Preparation

    View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. def name_one
    end

    View Slide

  50. def name_one
    end
    def name_two
    end

    View Slide

  51. def name_one
    end
    def name_two
    end
    def AliasThree
    end

    View Slide

  52. def name_one
    end
    def name_two
    end
    def AliasThree
    end
    ?

    View Slide

  53. class SweetDispenser
    end

    View Slide

  54. class SweetDispenser
    end
    # I give you sweets

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  60. View Slide

  61. View Slide

  62. We attempted
    that refactor,
    but…

    View Slide

  63. I couldn’t be
    bothered.

    View Slide

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

    View Slide

  65. What type of
    guest?

    View Slide

  66. View Slide

  67. Open Source
    Guests

    View Slide

  68. View Slide

  69. View Slide

  70. View Slide

  71. View Slide

  72. A README that keeps you
    running.

    View Slide

  73. first meeting
    orientation
    preparation

    View Slide

  74. View Slide

  75. View Slide

  76. View Slide

  77. View Slide

  78. Want to do a
    lunch & learn?

    View Slide

  79. You can ask
    me anything.

    View Slide

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

    View Slide

  81. I’m putting
    my headphones on
    but…

    View Slide

  82. …I’m interruptible.

    View Slide

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

    View Slide

  84. orientation
    preparation
    first meeting

    View Slide

  85. View Slide

  86. View Slide

  87. View Slide

  88. View Slide

  89. View Slide

  90. View Slide

  91. Narrative

    View Slide

  92. Tell new teammates the
    story of your codebase.

    View Slide

  93. DELIVERING VALUE

    View Slide

  94. View Slide

  95. View Slide

  96. View Slide

  97. How do
    you
    see the domain?

    View Slide

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

    View Slide

  99. View Slide

  100. View Slide

  101. View Slide

  102. View Slide

  103. H

    View Slide

  104. H
    T

    View Slide

  105. H
    T
    T

    View Slide

  106. View Slide

  107. View Slide

  108. View Slide

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

    View Slide

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

    View Slide

  111. I don’t remember how.

    View Slide

  112. View Slide

  113. H

    View Slide

  114. H
    R

    View Slide

  115. H
    R
    P

    View Slide

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

    View Slide

  117. Here is how
    another person
    may approach it.

    View Slide

  118. Let’s explore
    the pros
    and cons.

    View Slide

  119. Which way
    shall we go?

    View Slide

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

    View Slide

  121. GIVING & RECEIVING
    FEEDBACK

    View Slide

  122. Feedback is hard

    View Slide

  123. You spoke
    about
    feelings a lot.

    View Slide

  124. Seems strange
    for a work
    environment.

    View Slide

  125. Seems strange
    for a work
    environment.

    View Slide

  126. View Slide

  127. Feelings

    View Slide

  128. Feelings
    Needs

    View Slide

  129. Feelings
    Needs
    Requests

    View Slide

  130. Judgement

    View Slide

  131. Judgement

    View Slide

  132. No
    Judgement
    Safe Zone

    View Slide

  133. You hogged
    the keyboard!

    View Slide

  134. You hogged
    the keyboard!

    View Slide

  135. I need to get
    better at writing
    tests.

    View Slide

  136. Yeah, it
    was great!

    View Slide

  137. Yeah, it
    was great!

    View Slide

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

    View Slide

  139. View Slide

  140. What should we

    View Slide

  141. What should we
    keep doing?

    View Slide

  142. What should we
    change?

    View Slide

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

    View Slide

  144. CONCLUSION

    View Slide

  145. Code Hospitality enables
    us to empathise.

    View Slide

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

    View Slide

  147. FAQS

    View Slide

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

    View Slide

  149. http://speakerdeck.com/nodunayo

    View Slide

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

    View Slide

  151. Nonviolent
    Communication
    Marshall B. Rosenberg
    by

    View Slide

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

    View Slide

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

    View Slide

  154. Where can I join the
    Code Hospitality
    discussion?

    View Slide

  155. #codehospitality

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  159. HOW WAS YOUR STAY?

    View Slide

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

    View Slide