Jakob Nielsen, the usability guru, argues that experts should not blog, as blogging an opinion is a commodity display of knowledge, but rather they should write longer articles, as well-researched and argued articles lie outside the capabilities of the hoi polloi. As an independent consultant, I couldn’t disagree more.
Regular readers know that I make my living in two ways: teaching about software development and practicing what I teach. What you may not know is that teaching (writing, speaking, etc.) pays very poorly compared to practicing. I’ve been teaching software development for 18 years and if I rely on that alone, I can make a modest living — just above median income (#1 rule for contractors: track your time and be astonished at your true rate of return). As a contract programmer, I can easily make more than twice that in the areas of my expertise.
Of course I write and speak for many reasons, but I justify writing and speaking by saying that it is the beacon that brings in higher-paying contract gigs. It establishes my expertise. So I’m very interested in where my leads come from, e.g.:
- Blog posts
- Speeches at conferences
- Articles in Web publications
- Articles in print publications
Did you notice that list is ordered? That’s because that’s my experience. Maintaining a blog is, for me, unquestionably the #1 lead-generator I’ve ever had. Leads generated by my blog over the past 5 years have led to more than half my income in that time (and I turn down work constantly). For me, the economic expectation of developing and delivering a conference tutorial is around three months median income.
I’ve published hundreds of articles over the past 18 years and I tell you this: articles don’t generate leads.
Case in point: in Fall 2002, I “bet” on the Tablet PC. More with my heart than my head, perhaps, but at the time of introduction, there were high hopes that the Tablet PC was going to be a breakthrough form-factor. Through 2005, I published more than 20 articles on programming the Tablet PC. I generated precisely one contract gig, for about 4 months’ median income (and, much to my horror, that fixed-bid gig consumed 6 months’ effort stretched out over 9 months calendar time — the worst hourly rate I’ve made programming since I was a teenager).
In contrast, in June 2003 I wrote this blog post on programming the Sabre global distribution system. That post has generated an average of 3 “hot” leads per month for more than 4 years and has made me the majority of my income. If I was smart and sub-contracted the work generated by that post, I think I would net something like 5-6X median income.
Is the market for programming travel reservation systems bigger than the market for programming Tablet PC applications? Absolutely. But there ought to have been some Tablet PC contracts out there.
My theory is that lead generation derives from Google rank and that the best way to increase Google rank is to be like a professional fighter: neither jabs nor haymakers are enough. You must be always jabbing and you must regularly throw haymakers. Blog continuously to keep your hit-rate and link-traffic high and write longer pieces, containing the high-value words associated with your niche, occasionally.
This is the plan I am following as I “set up” for the manycore era — doing lots of learning, beginning to develop opinions, doing a few articles, writing a few programs. From the development perspective, I’d like to get some gigs remediating performance-oriented systems and maintaining my reputation for developing high-performance server software architectures. Right now, 90% of what I’m doing is jabbing, but already some of my longer posts have gotten good traffic and Google rank, so I think when I get to the point of really putting my weight behind certain posts, the number of smaller “jab-like” posts about concurrency will give the “haymaker” articles far more authority (as far as the search engines are concerned) than if I relied on articles alone.