Why I'm Writing To You
Almost eight years ago I wrote a post called You Should Blog. In it, I made an argument that I still believe in: public, professional writing is something every engineer should try.
Today, I want to share why I write, and have for over a decade.
The first reason is that over time, I think it's made me a much better programmer. To give you an example, here's an opinion I hold, and how writing helped me solidify it: code coverage, the measurement of the percentage of your codebase that's covered by automated tests, is a poor measure of code quality or team performance. I outlined this in a blog post. You don't need to read it to follow along.
How did I form this opinion? I was on a team where increases in code coverage were celebrated. I voiced my thoughts but didn't have the influence to make a bigger cultural change. So, I wrote about it, and that made me feel better.
As I wrote that post, I had to consider some things I hadn't before:
- Is "Code coverage is important" an opinion held by a non-trivial number of people?
- What's my beef with it?
- What are the tradeoffs of adopting it as a metric?
- If I don't think we should be measuring it, what do I think we should be measuring? Do I have another idea?
- If we don't use it, how could we measure testing? Is it important that we measure testing?
- In what situations could it be useful?
- What's the business case for ignoring it or adopting it? Who cares?
You can't write 1,000 words on any subject without stepping into muddy waters like these. So, you look at each one and challenge it, or change your mind. Smart people change their minds a lot. Even if nobody ever read a word you write, you'd be better off going through this process than if you hadn't written at all.
Another reason is that it helps me on teams. When you bring these ideas up to your team in crucial moments, you've thought a few steps beyond the first obvious idea. Not only do you have your opinion, but you know the significant counterarguments and you've considered them. You're not just regurgitating a forum comment; you're synthesizing the question and the most important answers, on demand.
Another reason I write is that my writing is a thing I own that's bigger than any team or project. It's a 24/7 billboard for my expertise that says: "Jake cares about this a lot and has for years."
And it pays off in surprising moments, too. I've lost count of the times that somebody I've been interviewing, or who's interviewing me, says "I read your post on X; tell me more about that." It's like they've already had a conversation with me before I've stepped into the room. It can sometimes feel like a massive advantage. And it doesn't even matter if they agree with me; it's an icebreaker leading me right into something I like talking about.
What about growing my audience? I think it's good to confess that I used to be a little obsessed with this. Let's examine that for a moment. I have about 1.5K social media followers across a few platforms, 50 newsletter subscribers, and a couple hundred weekly visitors to my blog. Depending on who you are, that's either an enviable reach, or it isn't.
Either way, every few days I get to broadcast my ideas to a virtual roomful of a few hundred people. They listen to what I say and sometimes respond. Imagine if every few days you gave a conference talk to 200 smart colleagues, or even just 50. That's special! Most people never get that chance. I worked hard to build it and I'm going to make it count.
And yes, sometimes one of those people will tell you that your idea is bad and that you should feel bad. It sucks, but it's in service of something bigger. Cunningham's Law states that "the best way to get the right answer on the internet... is to post the wrong answer." If you're chasing the right answer, learn to tolerate (I'm still working on this) the occasional pushback.
When you're writing, you're iterating on your ideas in a safe environment, and that will make you better. If you can share it in public, even better. Do it.