Kudocs Code Quality Challenge 2021

Introduction

Within a start up resources are generally stretched and it’s accepted that best practices are overlooked in certain situations in order to get a fix/feature out the door. This leads to the build up of technical debt that inevitably needs to be paid back, normally when you least want/need to.

Another item that generally gets overlooked is staff development/training. Business demands generally mean producing the same tried and tested solutions rather than comparing the approach of a new technology/technique that may do the same job better. This new tool/technique may add another weapon to the armoury for use going forward.

These are just some of the experiences we have had working within the start up and observed from speaking to colleagues in similar environments.

Daily Code Quality Challenge

At Kudocs we have implemented a CQC (code quality challenge) to address this. We send out a daily CQC via email first thing in the morning and each developer is to devote the first couple of hours of the day to this task. It takes priority over everything else except urgent live bug fixes.

The challenge structure is typically:

  • Describes a problem area within the current codebase and what the impact is.
  • Proposes a new technique/tool/best practice/design pattern to address the problem.
  • Provides an example of how the approach in 2 resolves the problem in 1.
  • The CQC challenges the participant to:
    • identify a problem similar to 1 within the existing application.
    • Challenges the participant to implement a solution based on 2.
  • A PR is generally produced once the challenge is attempted.
  • The PR is reviewed/discussed with various trade-offs.
  • Some PRs make it into the working codebase, some don’t.

What you end up with is an area within your project management system that explains a common problem within your software development lifecycle and a CQC solution to tackle it. This comes with various discussions between the team members about the relevant trade-offs. There should also be some PRs with code examples so the next time the challenge is undertaken there is something to build on. New/existing team members can revisit as and when needed.

Kudocs

Key Benefits

Collaboration
Team members get to collaborate which builds up relationships within the organisation. Junior developers get to see how a senior developer approaches a specific problem and ask questions. Less daunting than sending a direct request.
Technical Debt
Technical debt is tackled on an ongoing basis meaning less chance of a big rewrite to certain areas of the system. There is also less chance of incurring technical debt if the best practices/tools/techniques/design patterns are known before implementing a particular solution. The developer is more likely to choose the best approach over time.
Code Quality
Code quality is improved which is good for the business and the end users.
Staff Development
Team members get to learn/practice new tools/techniques needed within the software development life cycle. This is done on company time so the employee feels the business cares about each individual’s personal development.

CQC Example

An example of Kudocs CQC might be something like the below:

  • Can you identify an area within the Kudocs application that violates the REST architecture and propose a more restful approach?
  • Can you implement the more RESTful approach via a code change and PR?
  • Can you use TDD for the new RESTful approach?

This challenge will include a code sample where REST is not adhered to. The challenge will then show the same code changed adhering to REST or another example that shows a REST approach so the participant can see what the end requirement is.

Join the Kudocs CQC!

Kudocs are looking to open the daily CQC to other software development shops this year. It will consist of a daily CQC and a collaborative area to answer questions and discuss various techniques. The challenge is generally code agnostic but the majority of the examples will be in Ruby on Rails as that is our chosen development framework. There are other areas we cover such as housekeeping, good habits and general productivity techniques so worth joining in and choosing the relevant challenges to suit your needs.

Use form below to register your interest if you want to hear more about the CQC and what Kudocs are up to in general.

Ready to commit?