Reviewing Code Reviews
This talk helps teams of software developers getting more quality work done by improving their code review process.
Writing software is a collaborative effort. Long are the days of developers hacking alone in their bedrooms. The majority of successful apps and tools are built by a team.
This communal effort makes the act of reading and reviewing code written by other people as important as writing the code in the first place. Even more so in a workplace that is becoming more and more remote and distributed.
Yet this is a topic that doesn't get much coverage in blogs and conferences.
This talks shares techniques to improve the code review process developed over the years and through much experimentation.
A good code review starts from the code author. Spending time to review the code before submitting it, and adding details in the pull request description goes a long way.
As reviewers is important to use the right language and to practice empathy. The review should focus on what the code dose, not how the code looks. Discussion about style and patterns should be left for another forum.
There is a lot that can be automated in code reviews to remove noise and ensure that important things are not missed.
Time spent improving a team's code review process will pay dividends in better code output and smoother reviews.
Outline/Structure of the Talk
Before diving into how to craft a good pull request, and how to review it effectively we'll argue the importance of code reviews.
Software development is a collaborative effort. We spend more time reading code than writing it. It makes sense to optimize the reading experience.
This is even more true in a distributed world. When working with teams spread across time zones back and forth on a code review can stall it for days. It's worth investing in minimizing this friction.
Pull requests authors can influence how their code is reviewed. A good code review start with its author.
When opening a PR we should keep it small and focused. We should review it ourselves before sharing it with others, looking for code that might raise questions, trying to answer those in advance.
A few minutes spent enriching the request description with images and links can go a long way towards getting the code reviewed quickly.
When it's time to review we need to focus on the code and not the person. The language used in the comments has to be inquisitive and non violent. Criticism has to be constructive and backed by external references.
The review should be focused on what the code does, not how the code looks like.
We can use automation to reduce the noise that comments on things like style violations and typos can producer. Automation and third party integrations can also prevent errors and ensure that important things are not missed.
By the end of this talk we'll have walked through the entire life-cycle of a code review, looking at many techniques to make it an effective and constructive part of the development of our software and team.
Learning Outcome
This talk aims to provide actionable advice to feed for the audience to bring back to their workplace. Thoughtfulness, communication skills, and automation will help improve the code review process, resulting in better code being delivered quicker.
Target Audience
Software developers of any level, working in a teams
Prerequisites for Attendees
Familiarity with services such as GitHub, Bitbucket, or GitLab.
Links
http://mokacoding.com is my blog where I explore how testing and automation can help software developers getting more done with more confidence.
These are a few of the talks I gave:
- Slack Considered Harmful. Why distractions at work are killing your productivity, and what to do about it. Melbourne CocoaHeads 2017 https://www.youtube.com/watch?v=ftOwD2SIJ6E.
- Functional Core, Reactive Shell. How to write Swift code that is easy to compose and maintain. YOW! West 2016 https://www.youtube.com/watch?v=ATPJ9PkTyAA.
- Swift Optionals, Functional Programming, and You. How to write safer code applying functional programming concepts to Swift https://www.youtube.com/watch?v=ksEzUL2sxW4.
schedule Submitted 5 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Peter Lee / Henry Soesanto - Using lean tools to create product team balance
Peter LeeAgile CoachSiteMinderHenry SoesantoSoftware EngineerCampaign Monitorschedule 5 years ago
90 Mins
Workshop
Beginner
Product teams often have a huge challenge in balancing the effort towards building for the future and supporting their product today.
In this workshop you will learn how to use common lean tools like Pareto analysis and PICK matrixes, alongside the cost of delay to ensure that your product teams have a continuing focus of maintaining a health balance between the two.
At Boral and Campaign Monitor we use this light set of lean tools to help teams maximise the impact they have on the supportability of their systems ensuring they have a healthy balance between building for the future and supporting their product today.
-
keyboard_arrow_down
Gabor Devenyi / Alex Sloley - The magic number is 10
Gabor DevenyiAgile CoachGabor DevenyiAlex SloleyAgile Coach Facilitator Teacher MentorAlex Sloleyschedule 5 years ago
45 Mins
Talk
Intermediate
Why are Agile teams supposed to be small? How big are they supposed to be? Most agilists tend to agree that a team of ten people works well.
But what is it about the number 10 that makes it the “magic” number?
Since the start of human evolution, people formed groups to be more effective. Whether it was the hunt for a mammoth or going to war, working in teams ensured a greater chance of success.
There have been various researches from Dunbar’s paper through the Scrum Guide to military formations about the ideal number of people in a team.
We’ll discuss the historical, scientific and cultural reasons why 10 seems to be the magic number of forming effective teams.
Does the number of team members really matter? Is 10 really the magic number. You will get an answer that will help you to create effective teams with the right amount of people.
-
keyboard_arrow_down
Madisen Harper - CEO of Me – Fuel Lifestyle and Professional Success, Passion and Productivity
90 Mins
Workshop
Beginner
The work landscape is constantly evolving, especially in IT, providing exciting opportunities for those keen to optimise and manage their careers. With almost 50% of the Australian workforce being contractors, temps and / or casual contributors, it’s important to develop and market a skill set that is not only sought after, but more importantly fuels your feelings of success and professional passion.
This interactive session applies Agile practices to create incremental changes fueling monumental lifestyle and career success.
-
keyboard_arrow_down
Doris Tse - Liminal Thinking - Reconstructing our reality Matrix style
45 Mins
Workshop
Beginner
"This is your last chance. After this, there is no turning back. You take the blue pill - the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill - you stay in Wonderland and I show you how deep the rabbit hole goes" - Matrix
Are you prepared to question your own perception of reality?
If so, join us as we learn how our understanding of reality is shaped by our own beliefs and assumptions and how these can create blind spots.
How does this relate to Agile transformation? As a Scrum Master, we often face resistance to Agile or learning concepts that would seem blindingly obvious to us. We sometimes walk away from these conversations feeling exasperated and frustrated that other's can find it so difficult to understand and adopt.
However, often the problem with others failing to see what you see, isn't purely about them. We often forget that as change agents, we bring to the mix a set of our own assumptions and self fulfilling beliefs that also need to be challenged.
The purpose of this session is to draw on some of the core principles of Liminal Thinking and how they can be applied to Agile transformations.
-
keyboard_arrow_down
Jon Gedge / Jasmine Hessel - Accessing Relationship Systems Intelligence with Constellations
45 Mins
Workshop
Intermediate
Each of us is a member of complex relationship systems - at work, at home and in our communities. Just as emotional intelligence is the ability to understand and manage our own emotions and social intelligence is the ability to empathise and communicate with another individual, relationship systems intelligence is the ability to view a team or group as a unified whole and to work directly with that whole system rather than with a group of individuals.
In this session, we will use a relationship systems coaching technique called constellations to listen to the ‘voice of the system’ which is created by everyone who attends the session, so we can explore together how comfortable we are in working with conflict.
-
keyboard_arrow_down
Alex Sloley - Liberating Structures... yet more facilitation techniques!
90 Mins
Workshop
Beginner
The communication tools of Liberating Structures will teach you how to facilitate the discussions your org needs. I am going to demonstrate how to use these techniques in the workshop. And all the attendees are going to be fully immersed and ready to wield their new knowledge the very next day at work.
If you are a recent convert to LS, come learn a new set of techniques to continue the journey. If you are new to LS, this will start you on your path of facilitation mastery.
-
keyboard_arrow_down
Alex Sloley - Build your own Canvas
90 Mins
Workshop
Intermediate
The Business Model Canvas and the A3 Report are classic examples of using visualization tools to help you/a team/an org analyze and plan. However, you might find that available canvases don't really suit your needs. Would you really use the traditional Business Model Canvas for a legacy product in a large enterprise?
Come learn about classic examples of canvases and what they are trying to achieve. Learn about a simple framework that enables you to build a custom canvas that is suited to your needs. And walk away with a custom canvas, because you are going to build your own canvas in this workshop!
-
keyboard_arrow_down
Peter Lee - Creating clarity and focus in changing a large enterprise - Workshop
90 Mins
Workshop
Intermediate
This workshop is for agile leaders assisting large organisations to shift towards a highly engaged, autonomous working environment.
Using a simple model and supporting canvas, participants will learn to use a systematic approach for creating clarity and focus around the transformational activities an organisation decides to pursue.
I will briefly introduce a simple organisational model about how we work and how we engage our people, and teach participants how to use it is evaluate their own working environment and decide on impactful changes. -
keyboard_arrow_down
Andy Palmer - It's Metaphor All The Way Down - Sharing Understanding through Common Stories
45 Mins
Talk
Intermediate
Eric Evans introduced the idea of Ubiquitous Language in Domain Driven Design. This means that within a certain (bounded) context, each word or phrase that we use has a specific and well-known meaning. This is only part of the understanding though. What are the threads that tie all those parts together?
This talk explores how metaphors and consistent narratives can foster ubiquitous understanding in a certain context, how metaphors can offer new insights to a problem/solution domain that we thought was stale, and how when the metaphor starts to feel forced that it may be indicating the edge of a bounded context.
-
keyboard_arrow_down
Kynan Hughes - System Visualisation and Indigenous Australian Art
45 Mins
Talk
Beginner
Aboriginal people have been living in Australia for at least 120 thousand years. For most of that time, their culture has been a complex adaptive system in a state of dynamic equilibrium.
What can we learn from Indigenous art practice viewed through the lens of "system visualisation"?
Through their echoes in contemporary indigenous art, we'll investigate the nature of Aboriginal society and the modes of economic production in this country prior to the arrival of Europeans.
Our agile practice is relatively young. Perhaps our current focus on change and improvement is just a start. What will dynamic equilibrium look like for us? Visualisation may be a skill we need to develop further if we are to move beyond the limits of our current vision.