GSoC cohort call: What makes code good + code review practice

Time/date: [ Add date ]
Other timezones: [ add link to http://arewemeetingyet.com/ time ]

Joining the call:

[Add videoconference link] Once you’ve joined the call:

  • Add your name to the attendee list below
  • Don’t forget to turn on your webcam! :)

Attendees: Name / Student or Mentor? / Project / Twitter / GitHub / Emoji mood

  • Yo Yehudi / Org admin / t: @yoyehudi + @intermineorg / G: @yochannah 😊🎉

Icebreaker question: [e.g. What’s your favourite dinosaur (or prehistoric animal) and why? ]

  • [name=Your Name] [ answer]
  • [name=Your Name] [ answer]
  • [name=Your Name] [ answer]
  • [name=Your Name] [ answer]

Agenda

Introduction (Call host)

(5 minutes)

  • Reminder: Code of Conduct! [Link to code of conduct]
    • Generally: please treat others with respect and kindness, no matter who they are. We know you do this already!
    • If you have any issues, please speak to:
      • [add contact name and email]
      • [add contact name and email]
  • Today’s call will cover giving feedback, code good practice, and code review. Bring the URL of a GitHub repo you’ve been working on for GSoC!

What makes code “good” or “bad”?

(10 minutes) Think back to the last group call, where we made a list of things good open source practices as well as the train-wrecks we’d encountered. Could any of those apply to a code review session? Try to think of more, focusing on technical issues such as code quality, git commits, documentation, etc.

✏️ Things you never want to see in a code repo 🙅‍♀️ (but maybe have):

  • [list a thing]
  • [list a thing]
  • [list a thing]
  • [list a thing]

    ✏️ Things that make a code repo really easy to work with, update, run 👌:

  • [list a thing]
  • [list a thing]
  • [list a thing]
  • [list a thing]

💬 Breakout rooms: Code review practice

We’ll start by reviewing code that isn’t written by anyone in the group. Groups of 2-3. (15 minutes)

  • Thinking: 3 minutes
    • Pick one of these repos:
      • https://github.com/madetech/sensible_logging
      • https://github.com/taverna/taverna-svn/commits/master
      • https://github.com/biopython/biopython
      • https://github.com/mozilla/jschannel
    • Spend a couple of minutes looking through your chosen repo. Note down 2-3 points each for:
      • Things that could be improved
      • Good quality code
  • Sharing (3 minutes per person)
    • Share one good thing and one thing that can be improved with your group. Try to bring something new that wasn’t discussed before!
    • Did the group agree with your assessment? Discuss.

Giving Feedback

(15 minutes) - Silent writing.

✏️ What is feedback?

  • [name=Name here] - [answer]
  • [name=Name here] - [answer]
  • [name=Name here] - [answer]

✏️ How do you feel when you’re expecting to receive feedback?

  • [name=Name here] - [answer]
  • [name=Name here] - [answer]
  • [name=Name here] - [answer]

✏️ What happens when we only give negative feedback?

  • [name=Name here] - [answer]
  • [name=Name here] - [answer]
  • [name=Name here] - [answer]

✏️ What about when we only give positive feedback?

  • [name=Name here] - [answer]
  • [name=Name here] - [answer]
  • [name=Name here] - [answer]

✏️ What are your tips for giving feedback?

💬 Breakout rooms: Code review

This time with the code repo you’ve been working on for GSoC.

Sharing + feedback

(7 minutes per person) Share the code repository (or just one of them, if you have multiple repos) that you’ve been working on with InterMine for GSoC. Your group mates will spend a couple of minutes looking at your code repo, and like before:

  • Try to find 1-2 things to improve
  • Try to find 1-2 good things about the repo / code Each group mate should share one good thing and one thing to improve, then move on to the next code repo.

Amusing story of the day: A well-acknowledged rule of code review is the “WTFs per minute” measure - a good code review has fewer, but probably still has some. picture of two doors - one labelled good code, with "wtf" shown emanating from the door twice, and the other labelled bad code, with "wtf" emanating from the door many more times, as well as "wtf, dude" and "wtf is this shit". The title: "The only valid measurement of code quality: WTFs/minute" (via https://www.osnews.com/story/19266/wtfsm/)