Changing your organisation one code review at a time


It's Monday morning, and you just reached your office to enjoy another fantastic day at your organisation. Your team did a successful production deployment yesterday, and the new, high-quality release is already getting praised by your customers. The agile team delivered on their sprint estimates and found a solution to a difficult problem together. Developers finished their work on time, and the whole team did not find any significant defects. All feature branches were merged without any conflicts and delays. During the previous sprint, developers removed all technical debt, fixed all bugs and refactored code that was slowing you down. All your code went through the detailed, fast and productive code review process. Developers learned a lot from each other, and you removed the remaining silos of knowledge. The deployment pipeline run CI/CD process with 100% TDD test coverage, security and performance checks and DevOps team released the software reliably and predictably. There was no downtime for your customers and no need for late-night bug fixing and rolling back the deployment session. You are not surprised as this is how every day feels for you and your team. Your CEO just smiled, said hello, ask how you are doing and congratulate you on another successful delivery. Your team are ready for the next challenge, happy, excited and ready to go again. You know this is going to be a great day!

If you are "lucky" enough to be in a position where everything above is just a routine for you and your organisation, you do not need to attend this talk. On the other hand, if it sounds like a dream and impossible to achieve, this talk is an opportunity for you to learn how to improve your current situation, starting with "one code review" at a time.

In this talk, we want to explore how reviewing "every single line of code" impacted our organisation, teams, products we create and individuals. Experience the theory and practice how code review allowed us to move to the higher quality, faster and more predictable software development process.

Together let us discuss technical concepts including high-quality code practices, trunk-based development, CI and CD in the world where software has to be released to users multiple times a day. We will learn how we remove technical debt and have a "0 bug policy" really working. Participate in discussion why we believe that reviewing "every single line of code" triggered our the ability to deploy production code reliably, frequently and with limited risk, lower our lead time and crucially lower about mean time to recovery. We will consider all the above metrics and impact we see.

I also want to show how our development team improved their hard-core coding skills, how they raised by teaching others and being mentored at the same time. How giving positive, constructive feedback is a daily routine now and how our developers learned to say "thanks for your help:)". Learn about the policies we had to change to accommodate the code review process, and why do we STOP the whole company when there is even the smallest issue with one line of our code. In our opinion, there is no better time to improve it than now. We know it sounds crazy and counter-intuitive, but we hope that to start the conversation, share and learn together.

 
 

Outline/Structure of the Talk

  • Introduction to the current view of high-quality software delivery (Lead time, CI/CD, Mean Recovery Time, trunk based development)
  • Introduction to code review
  • Impact of code review on processes and high quality delivery
  • Impact of code review on individuals, teams and organisation
  • Practical challenges and what we would do differently
  • What's next for us, and what can you do tomorrow?

Learning Outcome

Learn what it means to deliver high-quality software and why it does not have to be a compromise between speed and quality.

Learn the crucial aspects of high-quality delivery, and why they matter. Participate in discussion about:

  • Prioritisation
  • Short lead time
  • CI/CD,
  • Mean recovery time
  • Trunk-based development
  • Small batches
  • Code review

Learn how to use different ways of code review practice to impact your delivery with a significant focus on "reviewing each line of code" and "stopping" the organisation to improve as soon as possible. Experience how a simple change impacts your developers and help you create teams full of happy, continually improving and growing developers.

Target Audience

CTOs, Tech Leaders, Product Owners struggling with delivering high quality software, Agile Coaches looking for new ways to improve teams, SM tired of team excuses, customers using buggy software

Prerequisites for Attendees

none.

schedule Submitted 3 months ago

Public Feedback

comment Suggest improvements to the Speaker
  • Aino Corry
    By Aino Corry  ~  1 month ago
    reply Reply

    Thank you for your proposal. Would it be possible for you to focus on the code review process? With details on techniques, methods, and practices?

    And could you rewrite the outline/learning outcomes to support that? We are confused with the discrepancies between those two, one of them seem a bit too theoretical, while the other is promising learning about code review practise?

    • Kaminski Pawel
      By Kaminski Pawel  ~  1 month ago
      reply Reply

      Aino,

      Thanks a lot for your feedback. It is highly appreciated.

      I can add a section on how to start code review, best practices, process and techniques. Still, I would like this talk to apply not only to technical developers but actually to everyone running a team with challenges in quality of software from individual lines of code, to technical debt and predictable, frequent releases. I want to show how the better code review process can be an enabler to do all the above much better. 

      I can change the learning outcomes a bit to be more focused on code review itself. In my initial thinking, I wanted to show the impact of code review on other parts of the software development lifecycle. Happy to adjust. 

      I think the perfect spot for my talk would be to understand code review as a practise in its own right and at the same time see the bigger picture and more significant impact of code review on other parts of the system. I also want to make sure that people understand that this talk can show them a bit different approach to what they currently do (pull requests or no code review at all) with frequent, every commit, trunk-based git, high-frequency product deploy, code review process.

      I will adjust my description this weekend.