My Time As An Exterminator

Reading time ~3 minutes

This week I am presenting to a large number of coworkers about work I started as an Exterminator. For those which want to learn more about that time I wanted to summarize all of the posts I had done.

Earlier this year I went on a 4-month rotation to a different team. It a great opportunity I learnt a great deal from doing. While on rotation I tried to regularly blog what I was doing and what I was learning from it. Here is a summary of all those posts.

I volunteer as tribute. This was my first post. I was really excited to join the Exterminator team. Learning new things and helping people.

The 4 Stages of Legacy Code. I had dived straight in and was having fun digging into code without tests. I was accustomed to thorough test suites and working on brand new code. In the end I was able to get through it and find good ways to approach this new challenge.

Focus and Quality. In order to keep myself honest, I blogged about my goals for the year and how I intended to approach them. This post and my goals, focus and quality, were a great way to ensure I was concentrating on the right things while I was an Exterminator. The links included with this post are fantastic and with the year end approaching it is time for me to read them again.

On Comments. We talked about what makes for good comments in code. Which comments are not necessary or too verbose. I highlight a few cases where I think comments really add to the code. There is also some amazing C code with silly comments.

DAMP Unfiltered AAA. With my added focus on quality, I spent lots of time writing tests. I delve into how trying to not repeat yourself and stay DRY makes tests much harder to understand. Instead, you want descriptive and meaningful phrases (DAMP) so yours tests are clear.

Pull Requests. I tried dabbling with breaking up a larger chunk of work into small pull requests. This led to a pull request explosion! Everything became a small pull request layered upon other pull requests. This fun exercise set the tone for the rest of my time as an Exterminator.

Code Reviews. I share my approach to code reviews. I strive to learn/share ideas and understand the underlying logic being updated. Hopefully, this approach leads to better conversations about the code change.

Discuss into Action. We had a retrospective which did not sit well with me. It was a good conversation but did not lead to any action items. I was left wanting more.

The Wrong Time to Refactor. I like refactoring A LOT. You might even say too much. We were the day before a release and fixing a late bug. I wanted to refactor the code more. We decided as a team this was not the right thing to do. Later, we were able to safely complete the refactoring.

Caught By Conventions. Oops. I learnt a lesson by swimming upstream. I was excited to try a new tool, Specflow, and started by contributing code to another project. I missed the memo and broke all the conventions within their project. It was very frustrating and then I realized I had done this to myself. I was able to learn from my bad pull request and teach others the lessons I encountered.

My Nemesis, Email. I was very distracted this week. I go over some techniques for reducing your interruptions, particularly from email.

Finding the Bottleneck. This is a basic introduction to some of the performance testing tools in Visual Studio. We were able to find hot spots in our code and apply improvements. I then break down the process, highlight some of our biases and lessons for next time. Go deeper.

I hope enjoyed these posts from my time as an Exterminator.

The Worst Week of My Life

In January I had the worst week of my life. My wife and I joked we wanted to start 2016 in February. Within a single week I lost my job a...… Continue reading