I redesigned my blog this week, and as part of that I ended up going through every single blog post I’ve written over the past eleven years.
It’s a strange experience to write publicly for this long. There’s an awful amount of blog posts I just simply don’t agree with anymore. A lot of the posts from early 2010-2012 GitHub seem hopelessly optimistic and romantic these days. Some posts blew up in the industry for a week and completely stressed me out to write. Now they’re just amusing to think back on as even being stressful now.
Regardless of how I feel about them today, though, I’m still pretty proud that I tried to write while angry. Or, put another way: I chose to write about things that I cared deeply about and felt like I had a secret perspective on. You should be pissed that everyone else doesn’t agree with you, or that many people are doing things wrong.
This is the case for public speaking as much as it is for writing. Especially in tech, I see a lot of milquetoast blog posts and talks from people trying to make a name for themselves with a bland viewpoint. If you’re not contributing to changing people’s minds, then there’s no point in writing. You’re just contributing some vanilla shit to all the other vanilla noise we have out there.
Playing the heel
I never had much of a problem being the bad guy with this stuff. Not in terms of being morally wrong, but in terms of being fairly black-and-white when it comes to my arguments made.
Take “meetings are bullshit”, which pops up in my talks and posts in the early 2010s a fair amount. I fucking hate meetings. I think things like email and chat are better ways to build software (and indeed, the rise of Slack has proven that to be true). But it’s not that we didn’t have meetings at GitHub, or get together for synchronous meetups from time to time. That also was a big component of work. But it’s much easier for someone in a small company to tell their boss “HEY THE GITHUB GUYS FUCKING HATE MEETINGS LET’S CHANGE THINGS UP TOO!” And usually that company would find their own happy balance of what worked for them.
Getting people — and especially companies — to change how they work, or what tools they use, or how they interact with their coworkers is really goddamn hard to do. But I think it’s just more effective to position yourself on the far extreme and let people discuss it from there. For one, it forces people in Hacker News comments, on Twitter, at lunch, to clarify their own opinions and make a stance of their own. You end up with people finding their own common ground with the kernel of what you’re trying to argue for.
Belittle the process, not the rationale
Everyone thought GitHub’s main competition early on was Subversion, which was completely wrong. Our largest competitor was
HeaderFile_FINAL_2.2009.JOHN-checkpoint_FINAL.jpeg. People didn’t know Git, much less version control in general. And when you’re trying to convince potential customers that your way is better, you can’t just settle with “yeah this will help you keep cleaner filenames”- you have to go really fucking strong and point out that the way they’re doing things is wrong and life will be so much better with these changes.
The most ideal behavior for a society? Maybe not. But I think that last point is the key: you can get angry about things, but always keep it pointed squarely at an aim to improving people’s lives. You can be negative, but only if you try to uplift through that negativity. Belittle the existing process, not the existing people or decisions of how they got to that point.