How To Write a Technical eBook: A Guide for Software Engineers

Thursday, September 25, 2014

Introduction

Preface

I've been getting more and more questions about my upcoming book on software pricing. Interestingly, many of the questions weren't from people interested in software economics, but from people who wanted to learn how to create their own books.

As a budding entrepreneur, I was instantly intrigued! A market opportunity just fell into my lap! I could write an eBook about how to write eBooks. There was just one problem - my conscience. It always spoils my fun. I can't charge for an eBook about writing eBooks, because doing so would seem far too much like a scammy multi-level marketing scheme.

So, after much thought, I've decided to create a very simple and straightforward web page to creating eBooks. I mean, creating a free guide can't possibly be a scam, right? I'm not even asking for your email address, shoehorning any affiliate links or putting up AdWords!

Though I am passing up the opportunity to earn some profits on sales, I face a couple of very positive upsides:

Choosing What To Write

Why Write a Book?

Whenever you tell anyone that you're working on a book, you'll hear the very same question:

Why are you writing a book?

It's a very annoying question, akin to asking a mountain climber why he wants to climb a mountain. Interestingly, however, a mountain climber will answer because it's there! whereas a writer will answer because it is not there. Writers, like software engineers, have an innate need to create and express themselves.

The creation of a book is one of the absolute greatest opportunities in the field of startup adventures:

Find a Need

When I told people I was going to write a book, they pretended to be interested. After all, everyone wants to write the next great American novel.

Actually, that's not quite true. Every liberal arts major wants to write the great American novel. But I have some terrible news for our liberal arts friends. Writing fiction makes no sense from a business point of view. Yes, Hemingway's Old Man and the Sea was moving. Yes, it would be wonderful if you too were able to write a book about a guy whose life would have been better had he thought to bring a sharp pointy stick, rather than just some fishing line.

The problem is that a lot of people want to write the next great novel. Whenever I hear that "a lot of people" are doing something, I decide to do something else. It's not that I'm afraid of competition, but why enter a competitive market full of folks who have no intent on making a profit? Far better to find an area being tackled by much smaller numbers of people. The average person doesn't want to (and isn't even able) to write the next great technical book.

You need to find a problem that is causing significant pain to a sizable population of people with money. I spoke to one inventor who provided this great insight into deciding what to sell:

Don't sell aspirin, sell morphine.

You need to find a problem that is causing an immense amount of pain. People are much more likely to pay for a bandage for a gunshot wound than a band-aid for a paper cut. The more intense the pain, the easier your sales pitch will be.

Great, so how do you find this "massive" problem?

Start listening to people complain. One great thing you can do is to start reading internet forums like Reddit, HackerNews or StackOverflow. If you keep seeing questions about the same topic over and over again, you just might be on to something. Another clue? Look for repeated references to the same article over and over again. If the same link keeps getting referenced, it means that there is an unmet demand for information.

In the software pricing field, I kept seeing one blog post being referenced again and again. It's a decent intro article, but it just skimmed the surface. It was only linked so often because it was the best thing out there. I created something better.

Make Sure You Like Your Topic

It's not enough to pick a problem that weighs heavily on the minds of your audience. There should also be some overlap between the topic you choose and your educational background, work experience, interests or hobbies. When I started writing my software pricing guide, I wasn't an expert in software pricing. That being said, I earned bachelor's degrees in computer science and economics and master's degrees in business administration and software engineering, so I felt like I was in a position to read, understand and evaluate research in a way that many weren't. Further, thanks to my studies in the fields of microeconomics and behavioral economics, I could skip over a lot of time-consuming preliminary research that would bog down the average person with a technical background.

It's always a good idea to think back to projects you've worked on. The amazing thing about programmers is that their work crosses many technological fields, but it also crosses many business fields too! For instance, my work history includes more than just the following:

Each of these could provide sufficient topics for a dozen books.

Analyze Your Customer

The number one reason that most startups fail (and writing a book is a startup endeavor!) is that product creators forget one important component of their business: their customers. If you don't start from a customer-centric point of view, you may find yourself in the unenviable situation of having a product that no one wants to buy.

Before you even begin writing a single line of text, you should be able to answer the following questions:

Analyze Your Competitors

I absolutely hate most marketing books. They're full of the same concepts repeated over and over again. Boring! If you write a book there should be something different about it. It might have a new angle on a subject. It might just be more condensed. It might even be more pleasurable to read. So many books are poorly written and academic in nature, that sometimes a better packaging of the information is all that is needed.

Remember Sturgeon's Law: 90% of everything is crap.

Why Self-Publish?

Self-publishing gives you control. The software required to sell an eBook has never been cheaper or easier to use than it is today.

Set Up Your Sales Page

So you've picked out your topic and described your customer. It's time to start writing your book, right? Nope. A good software engineer works hard, but a great one does just enough to get the job done. There's no point expending effort building a product if no one is going to buy it.

The truth is that few people buy an eBook based upon the quality of its writing (how could they, they haven't even read the eBook yet!). Customers typically make a buying decision based upon sales copy alone. So if sales copy is what sells a book, why build the product first? It's better to confirm the existence of demand for your future product, before spending the effort to create it!

There are basically two methods for testing consumer interest, both having advantages and disadvantages.

  1. Create a "coming soon" page. Describe what you're writing and how it will make your target market better off.
  2. Create a "buy now" page. Describe what you're writing and how it will make your target market better off as if it were already written. Then when people click the "buy" button you inform them that the book hasn't been written yet.

Many prefer the first method as it is less deceptive. Unfortunately, people who are willing to give up an email address aren't always willing to buy your books, so you might get an overestimation of vistitors' intent to buy.

Others prefer the second method, but using that strategy risks alienating potential buyers and diminishing your reputation.

In either case, you'll want to collect email addresses so you can keep interest levels up and gauge the number of people who might be willing to buy your book. If you can't garner interest at this stage, it might be a sign that you're in the wrong field. As your work progresses, it might be a good idea to make a chapter or two free, in return for visitors signing up for your email list.

Don't worry about anyone stealing your idea. Writing a book is hard. I told everyone what I was working on. People I spoke to a) didn't have the knowledge that I did; b) didn't want to expend the effort to work on something they didn't care about.

Creating the Product

Sad but true: a mediocre book with fantastic marketing will beat a fantastic book with mediocre marketing.

Make Time

A lot of people say that they don't have time to write a book. There's a name for people like that. Do you know what they are called? Liars.

Take a look at the following list of ideas to free up some time:

I guarantee that if you incorporate the above suggestions into your daily routine, you'll have plenty of time to crank out a thousand words a day and still have hours left over to think about the inanity of today's modern consumer culture.

Create an Outline

This section is probably useful for most folks, but it's especially directed to people who:

Agile may work for some forms of software development. It does not work for nonfiction books. It is stupid. Do not use agile development methodologies for writing a book. Am I being clear?

You need to switch to a waterfall development strategy. Some younger folks don't know what waterfall methodology is, so I'll outline the basic steps:

  1. Decide what to build all up front
  2. Break it up into little parts
  3. Build the parts sequentially
  4. Evaluate the whole, when complete

Why waterfall?

Further subdivide the outline until each line represents one to five pages of the completed product. Once you have a solid outline, it's just a matter of filling in the details. The process of writing your book transforms from a search-intensive activity to a mere act of stamina.

Pick Some Tools

It's a poor craftsman who blames his tools.

This section is short for a reason. It's not very important. Just pick a word processing program and stick with it. I'd advise against using Google Docs or Microsoft Word as they are what's called WYSIWYG ("what you see is what you get"). You'll spend hours and hours trying to figure out what to bold and what to italicize. I write everything in LaTeX, a free and open source front end to Donald Knuth's famous TeX program. It's what is called WYSIWYM ("what you see is what you mean"). As you type, you mark items as being a "heading" or a "subheading" and the program does all the formatting for you. Another popular choice is Scrivener, though I haven't tried it myself.

Stop worrying about your tools and get typing! Every day you look for a different word processor is a day longer until you will have finished your book.

One thing that I would highly recommend is investing in a good backup system that saves your software in a location outside of your computer. I've seen people who have had their computers stolen with the only copies of their manuscript; the result is not pretty!

I used GIT in combination with Google Drive to ensure that I not only have backups but am able to roll back any unwanted changes at any time. Others might prefer DropBox or similar systems. Less technical folks might do well with a memory stick.

Continuously Create

The more you write, the faster you'll write. It's amazing, but true. At the beginning, I would write a few hundred words at a time and feel exhausted. Now I can blow through thousands of words before lunch.

You'll get faster because:

Those who like to gamify might want to make a graph of each day's word count. While the number of words isn't a perfect metric, it's a fairly good measure of productivity. The important things are to write on most days and to set achievable goals. The more times you sit down to write, the better you'll get.

ABC (V): Always Be Creating (Value)

I read a number of books that would have been great, but each lost points because of the copious filler. Some went off on tangents. Others included APIs (and other immediately outdated material) just to make their spines wider.

My first book was about 40k words (around 150 pages). I was describing my book and someone interjected that it was awfully short. Well duh! Isn't that a good thing? A wiser person than I has told me that a book should be like a skirt - long enough to cover the interesting parts but short enough to keep your interest. Note: replace "skirt" with "kilt", depending upon your preferences.

I removed a few sections of my book prior to completion because I didn't feel that they would be of interest to the type of reader I was targeting. Is the fact that supply and demand curves are drawn relative to the wrong axes on most economics materials interesting? Yes. Is it relevant to my audience? No. Section scrapped! I only wish I hadn't wasted my time writing that section in the first place.

Find an Editor

Don't wait until the end to find proofers. If you're using the waterfall approach, then you can arrange for proofers ahead of time! It will be relatively easy to find people who can look for missing commas and errant semicolons. These types of people aren't necessarily providing much value though. What is more necessary is to find someone who can read for content. Feedback from interested parties can be worth quite a lot and make the difference between a good book and a great one.

Hint: Some of the folks on your mailing list might be willing to serve as "beta" readers - ask them!

Selling Out

Figure Out Pricing

I could go into great detail on the subject of pricing. In fact, I did. Just get a copy for yourself. Just replace the word "software" with "eBook" while you read, and you should be good to go.

Pick Your Formats

Many people wonder what DRM (digital rights management) they should use on their books. Common wisdom appears to be "none" - your books will be pirated anyway, so there isn't any reason to punish those who pay for your product.

Many books are released in multiple formats. Here are the most common:

Converting between formats is relatively easy when utilizing the free program Calibre

Pick Your Vendors

Messing around with credit card processing or cart software is a waste of time. You're better off just using something already built. The savings in time can be used to market your book instead.

Announce to the World

Get out there! I've seen folks guest post, write testimonials, and go on podcasts. Even if you don't have much of interest to say, even if you don't have any relevant degrees, people will see you everywhere and assume it's because you're awesome.

Appendix

Books with Associated Postmortems