Peer education and knowledge sharing in the Engineering team
Every Tuesday and Thursday in the half hour before lunch (empty stomachs mean we don’t overrun) the Sydney AgriWebb engineering team bundle into a room for a Code Clinic.
The session format is simple – a topic is queued up and the presenter spends up to 30 minutes taking us through some work-in-progress code, an architectural update, or a support war story. Sometimes they will demo a new technology they’ve been experimenting with or host a discussion about a process change we’re considering. This ritual has played out in-office and online for the past three years and has become a key way knowledge is shared in the team.
The goal of the sessions is keeping the team informed. Week to week our systems, frameworks and practices are evolving. Our international team of 20 engineers is big enough that it’s not possible to keep up with everything that’s going on from chats over coffee and pull-request reviews, but small enough that everyone is full-stack by necessity. It therefore pays to keep up-to-date. Code clinics proactively make that happen.
Some of the key benefits the team gets from the sessions:
- Fostering discussion, debate, and collaboration: Getting everyone involved breaks us out of the natural silos we form and exposes ideas and decisions to more minds and rigour than they might otherwise get. Early feedback is also the best feedback, and not everything which is presented needs to be ready to merge – PoCs, architectural designs, or even scribbles in a notepad are enough to get the discussion flowing.
- Teaching up: The sessions are kept informal. This lowers the stakes and makes the seniors more approachable. It also means the juniors and mids feel empowered to teach and speak up, inject fresh ideas, and grow as developers.
- Helping you to understand your work: Speaking your ideas out loud forces you to understand them.
- Building a catalogue of learning materials: The sessions are automatically recorded, and while the majority go unwatched, the occasional gem will go into the learning materials for new starters. Nevertheless, it’s important to note that Code Clinics are not a replacement for internal documentation. They keep the current team up to date, but are generally not the ideal format for later consultation.
- A venue for non-core feature development: Got a passion project you’ve been hacking away at on the side? Share your excitement at Code Clinic!
Despite these benefits, it’s important to remember that Code Clinics are not a replacement for documentation, more structured team meetings, or the usual code reviews and pairing sessions. Despite the alliterative name, we have found that presenting code at Code Clinics works best when the amount of code is limited:
- Presenting diagrams and code at the API or architecture level is more consumable for a group than scrolling through long screens of function implementations. Those are best reviewed offline or in small groups.
- Focusing on a single utility class or function and some examples of it in use is more memorable and more likely to see it adopted than a casual mention as part of a longer ramble.
- Live coding sessions can also work well, but remember to zoom in on your IDE for the best screen sharing experience.
A key part of the success of the Code Clinics has been their regularity, and the focus on getting everyone involved. New starters recognise the opportunity to get their ideas out in front of the team and presenting within weeks is the norm.
Hopefully this has given you an insight into one aspect of working at AgriWebb. And if you can see yourself working in an inclusive, collaborative environment check out more at http://www.agriwebb.com/careers/