kokobob.com

The Journey of Writing "Code Review Champion" Explained

Written on

Chapter 1: The Motivation Behind Writing

Writing a book is a challenging endeavor, not meant for the faint-hearted. Here’s my story on why I took the plunge.

Today marks the release of my book, Code Review Champion! After three years of hard work, I’m thrilled to finally share it with readers. Throughout this journey, one question has been frequently posed to me:

"Why did you decide to write this book?"

In this section, I aim to clarify my motivations and objectives for this project.

Section 1.1: The Genesis of an Idea

It’s difficult to pinpoint the exact moment I decided to write a book; there wasn’t a sudden epiphany or a striking inspiration from a particular title. Rather, it was a gradual evolution that mirrored my professional growth.

Back in late 2017, I faced a challenging period in my career. I was tangled in a chaotic project that was confusing and poorly organized. Depending on whom I spoke to, the project requirements and timelines varied significantly, leaving me in a constant state of uncertainty.

During this tumultuous time, I was determined to enhance my coding skills and set high standards for myself. However, this drive led me to become excessively critical in code reviews. I focused on trivial details, resisted compromise, and, frankly, came off as somewhat abrasive. I genuinely believed I was upholding code quality, but in retrospect, I see that my approach was counterproductive.

Eventually, I recognized that my behavior was detrimental to my team. My rigid stance on technical accuracy and ideal solutions was not yielding positive results; I needed to adopt a different mindset.

I began exploring various blogs from Google, GitHub, and Thoughtbot about best practices in code reviews. Although these resources were informative, they predominantly focused on tactical aspects—what to look for, how to provide constructive feedback, and so on.

Yet, I kept asking myself: what’s the overarching strategy for code reviews? Is there a fundamental principle that encompasses the myriad goals and benefits we seek in a team's review process?

This inquiry led me to the conclusion that the essence of code reviews lies in knowledge sharing. This topic was the focal point of my first blog post, "What's the Point of Code Reviews Anyway?" Writing that piece sparked a newfound enjoyment in sharing my insights on software development. As I continued to learn, I also kept writing, intending to convey my experiences to others, particularly around the subject of code reviews.

Section 1.2: From Blog to Book

From the fall of 2018 until late 2020, I pursued a master's degree part-time. Following my graduation, my wife and I took a brief snowboarding trip to Colorado to celebrate and relax after a demanding year.

Since I had more vacation time saved up than she did, she opted to work remotely for a few days before we hit the slopes. This setup allowed me to use that time to write for my blog and website.

While writing, I realized I wanted to create something more substantial than a single article. I had numerous ideas about code reviews and felt that a series of blog posts wouldn’t adequately convey them. Additionally, having just completed my degree, I suddenly found myself with some free time. With many of my hobbies still restricted due to COVID, I decided to channel my energy into writing a book.

As the months went by, I began to clarify my motivations further. Crafting a book requires a strong commitment, and I recognized I needed more than just the enjoyment of writing as my driving force.

Ultimately, I identified two primary reasons for my endeavor:

  1. To develop my writing skills. Although I was regularly posting on my blog, I sought to elevate my abilities, and writing a book would challenge me to grow.
  2. To provide value to others. I wanted fellow engineers to learn from my experiences and mistakes regarding code reviews. I noticed a significant gap in both boot camps and academic programs, where code reviews weren't typically addressed, despite being a crucial part of an engineer's role in many organizations.

These motivations coalesced into a singular goal: to equip engineers with new tools for code reviews in a weekend.

For instance, consider an engineer named Tom. If he found himself frustrated with code reviews one week and searched for resources, I hoped Code Review Champion would be available as a solution. My aspiration was that he could read it over a couple of days and return to work equipped with newfound skills.

This guiding principle helped me stay focused during the writing and editing process, preventing me from veering off track and even leading me to cut unnecessary chapters. I recognized that I didn't need to persuade my readers of the importance of code reviews; my target audience was those eager to quickly enhance their skills in this area.

I aimed to keep the content concise and action-oriented, concentrating on the essential insights I’ve gained throughout my career. The success of this book won’t be measured in sales; my true goal is to ensure that it serves as a useful resource for those who read it.

I strive to embody the core principle of code reviews—sharing knowledge.

Happy reading!

If this resonates with you, consider purchasing Code Review Champion today!

If you found this article insightful, feel free to join my newsletter! Every other Tuesday, I share tools, resources, and new articles aimed at helping you build exceptional software teams.

Dan Goslen is a software engineer, climber, and coffee enthusiast. He has spent a decade crafting software systems ranging from monoliths to microservices. Passionate about fostering great software teams, he currently resides in Raleigh, NC, with his wife and son.

In this video, I reflect on my experience writing my first book at a young age and discuss the lessons learned along the way.

This video explores the reasons behind my decision to write a book about writing books, detailing what readers can expect from it.

Share the page:

Twitter Facebook Reddit LinkIn

-----------------------

Recent Post:

Why Early Retirement Might Not Bring You Joy

Exploring the paradox of early retirement and the importance of structure in life.

Mastering Time Management at Home for Optimal Productivity

Learn effective strategies for managing your time at home to boost productivity and maintain balance in your life.

Top 3 Simple JavaScript Techniques for Efficient Coding

Discover three straightforward JavaScript tricks to enhance your programming efficiency and streamline your code.