Sunday, July 5, 2015

Going Towards the Pain

I've noticed a funny pattern in my software development life. It is, Working on the worst things can be the best. Here's a story of one example in the pattern.

After a few years of professional software development, I was growing more and more dumbfounded at how difficult it was for us to deliver code. Our team was productive, but some things just seemed harder than they should be. For example, every time someone wanted to update an existing project or roll out updates, it seemed to require a lot of manual handwaving, hope and guesswork.

My manager sensed my discomfort with this and told me to embrace it. She told me to think hard about how we can improve the quality of our software and begin attacking it.

I started by writing a best practices documentation that standardized things for our team. This included simple things like doing code reviews for any change, using branches for parallel development, writing good unit tests, etc ... I wrote scripts to help automate some drudgery. I wrote example code for our team to learn from and model. Over time, our team began adopting more of these practices and I think we have become more effective.

So, by attacking something that was causing our team pain and difficulty, (surprise, surprise) the problem was mitigated. Additionally, I found a lot of interesting things along the way. For example, I learned where unit tests worked best (and didn't work). In fact, the boring, mundane thing became interesting (to me at least).

In the process, I also became the go-to person for all things related to improving the quality of our software. By focusing on one small niche of improving the process of delivering code, I got to learn from a lot of other people who wanted to improve their code for their specific workflow.

I think this process of picking out something that you find annoying, painful, boring or generally sucky and then working towards fixing it is a good approach. It's sort of the opposite of following your passion.

In time, the thorn in your side might become your favorite pet project.

No comments:

Post a Comment