$30 off During Our Annual Pro Sale. View Details »

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

More Decks by Nadia Odunayo

Other Decks in Programming


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


  3. I think I want to move to London.

  4. Cool!

  5. Will you help me please?

  6. Sure!

  7. None
  8. None
  9. None
  10. None
  11. None
  12. None

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

    all of my life.”
  15. I think I want to move to Ruby-on-Rails.

  16. Code Hospitality

  17. Problem solving

  18. Problem solving & Communication

  19. Collaboration

  20. Collaboration & Learning



  23. You’ve recently started a new job.

  24. You have a new team member.

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

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

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

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

  29. You regularly collaborate with other people.

  30. You want your team to be productive.

  31. You want your team to be happy.

  32. You’re in the right place.


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

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

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

  37. Did you enjoy it?

  38. Hospitality

  39. Vulnerable

  40. Vulnerable & Uncertain


  42. Guest / Host

  43. Guest / Host

  44. Guest / Host Junior / Senior

  45. first meeting orientation Preparation

  46. None
  47. None
  48. None
  49. def name_one end

  50. def name_one end def name_two end

  51. def name_one end def name_two end def AliasThree end

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

  53. class SweetDispenser end

  54. class SweetDispenser end # I give you sweets

  55. class SweetDispenser end # I give you sweets # I

    also display your # bank balance
  56. def MakeAnAwesomeSandwich end get_bread && fillings && spread || no_spread

    && put_it_all_together || or_not
  57. def MakeAnAwesomeSandwich bread = prepare_bread(no_of_slices) fill_bread(bread, favorite_filling) end

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

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

  60. None
  61. None
  62. We attempted that refactor, but…

  63. I couldn’t be bothered.

  64. Know the reasons why your codebase isn’t up to the

    standard you want it to be.
  65. What type of guest?

  66. None
  67. Open Source Guests

  68. None
  69. None
  70. None
  71. None
  72. A README that keeps you running.

  73. first meeting orientation preparation

  74. None
  75. None
  76. None
  77. None
  78. Want to do a lunch & learn?

  79. You can ask me anything.

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

    shown you yet?
  81. I’m putting my headphones on but…

  82. …I’m interruptible.

  83. Demonstrate that you want your new teammates to feel at

    home as soon as possible.
  84. orientation preparation first meeting

  85. None
  86. None
  87. None
  88. None
  89. None
  90. None
  91. Narrative

  92. Tell new teammates the story of your codebase.


  94. None
  95. None
  96. None
  97. How do you see the domain?

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

    of London
  99. None
  100. None
  101. None
  102. None
  103. H

  104. H T

  105. H T T

  106. None
  107. None
  108. None
  109. Assume that you and your teammate are both lost.

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

  111. I don’t remember how.

  112. None
  113. H

  114. H R

  115. H R P

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

  117. Here is how another person may approach it.

  118. Let’s explore the pros and cons.

  119. Which way shall we go?

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


  122. Feedback is hard

  123. You spoke about feelings a lot.

  124. Seems strange for a work environment.

  125. Seems strange for a work environment.

  126. None
  127. Feelings

  128. Feelings Needs

  129. Feelings Needs Requests

  130. Judgement

  131. Judgement

  132. No Judgement Safe Zone

  133. You hogged the keyboard!

  134. You hogged the keyboard!

  135. I need to get better at writing tests.

  136. Yeah, it was great!

  137. Yeah, it was great!

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

  139. None
  140. What should we

  141. What should we keep doing?

  142. What should we change?

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

    and needs.

  145. Code Hospitality enables us to empathise.

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

    that we thrive.
  147. FAQS

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

  149. http://speakerdeck.com/nodunayo

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

    colleagues effectively?
  151. Nonviolent Communication Marshall B. Rosenberg by

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

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

  154. Where can I join the Code Hospitality discussion?

  155. #codehospitality

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

  157. Theo Cushion Barrett Clark Andy Croll Adam Cuppy Pete Holiday

    Tammer Saleh Justin Searls Amar Shah JB Steadman
  158. How can we make it safe to be vulnerable?


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