When I meet new people, they inevitably ask me what I do for a living. I usually tell them that I write software (when I tell them that I rob banks, they often don’t believe me). Some people understand what that is and some don’t. It’s like the t-shirt I’ve seen that says, “There are 10 kinds of people in the world – those that understand binary and those who don’t.” The ones that do understand software might ask me what kind of software. The others just say things like, “You gotta be smart to do that.” While that should be a prerequisite for writing software, it’s not universally enforced, and thank goodness for that because some days…
Now, when I get in longer conversations, I also tell people that I’m writing a book about software – more specifically about software career related items (a lot like this web site, and no, it’s not just a collection of the blog posts contained herein.) A while ago, it occurred to me how similar writing a book and writing software are.
Creating an outline for a book is like planning the features for your software. Writing the text of a book is like writing the software. You even get syntax highlighting (spelling and grammar mistakes) pointed out by your integrated development environment (Microsoft Word, Star Office, WordPerfect, etc.) QA and bug fixing comes in the form of proofreading. Beta testing comes when you get other people to read what you’ve written and see if it’s logical, solves their problem(s) (even novels solve the problem of boredom or provoking thought), or provides a proof of concept. Then, when you’re done, you have to try to sell the book/software. Books, however, have traditionally been first sold to a publishing house, which is supposed to weed out the unpublishable. This is not a flawless plan, however. Some books are published that are boring as h**l and practically useless. Classics such as Jonathan Livingston Seagull, Lolita, and The Diary of a Young Girl (Anne Frank) were rejected by numerous publishing houses. Software used to have a similar avenue of distribution – you’d have to find stores to carry your software or advertise it in magazines and catalogs that catered to the end-user crowd.
Nowadays, publishing software is easy – just post it on your website for download. Book publishing has easy alternatives, too. Print on demand technology allows writers to bypass traditional publishing houses as does electronic publishing. In both books and software there is risk. Both require commitment, belief in what you’re doing, and a desire to overcome obstacles. The results are almost always unpredictable and what keeps life interesting and exciting. More to come…, wish me luck, buy the book (when it comes out in a couple of months).