How To Write a Technical eBook: A Guide for Software Engineers
Thursday, September 25, 2014
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:
- If people like this work, they'll link to it (hint, hint), and I'll get some nice SEO. I like nice SEO.
- I'll "own" the topic of eBook writing advice, in much the same way that I hope to own "software pricing" advice.
- Even though I might not become famous, I might become "internet famous" which is almost as good as the real thing. When random people come up to me and give me a high five, I'll know that I've arrived.
- I'll continue practicing my writing
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:
- Risks are very low - no one is going to sue you for a typo in a book.
- Support costs are zero - receiving passive income is like using heroin, but without the possibility of a DEA agent breaking down your front door. I rather like my front door. I also like not having to worry about uptime, network instability and memory management.
- Startup costs are nil - many word processors are free and open source. Fire up a new document and you're ready to go.
- Turnaround time is relatively fast - a knowledgeable person can pump out sentences faster than he can pump out computer code.
- If a topic is chosen carefully, a good book will yield long-term income. While a book on the latest fad may be relegated to the junk bin after a year, a good text on evergreen content will last for decades!
- It can solidify your reputation as an expert - I've always wanted to be an expert in something.
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:
- Code refactoring
- Artificial intelligence
- Weather prediction
- Project management
- Image manipulation
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:
- Who is your customer?
- What is his pain?
- How much does it hurt them?
- What is his level of knowledge?
- How are you going to get him from feeling pain to feeling pleasure?
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.
- Traditional book publishing is awful - I was going to write up a defense of that statement, but I'll just point you to this article instead.
- Kindle is imperfect too - I hate walled gardens. Publishers like Amazon have tight control over your pricing and take a huge chunk of your potential profits. They also prevent you from generating a mailing list of your customers. If you go with them, you'll have no power.
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.
- Create a "coming soon" page. Describe what you're writing and how it will make your target market better off.
- 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.
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:
- Unplug your TV
- Cancel Netflix
- Stop going to YouTube
- Stop visiting Facebook
- Only check email twice a day
- Cut all alcohol consumption
- Wake up by 6am
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:
- Drink Pabst Blue Ribbon
- Wear "skinny jeans"
- Develop software in Ruby on Rails
- Use the word "agile" in everyday conversation
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:
- Decide what to build all up front
- Break it up into little parts
- Build the parts sequentially
- Evaluate the whole, when complete
- By deciding what you're building first, you can easily figure out how much progress you're making. You're not wondering how much is left. At any point you can take a look and say I completed 20% of my outline, so I'm 20% done. It's not perfect, but I was within 10% margin of error from the estimates derived from my initial outline compared to my finished product.
- You can be sure that you're not wasting time writing on a tangential point that isn't important to your overall book. Your outline will keep you on track.
- You can always jump right in without fear of repeating a section or worrying about what you should write. There were plenty of days I didn't want to write anything, but I could just look at my outline and pick out an easy little chunk to complete.
- You don't get hung up on typo correction (relatively low value) until your book is finished. This helps keep motivation high.
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.
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:
- You'll get a better feel for the material
- You'll develop a habit
- You'll realize it's not intimidating when you did the same thing the day before
- Practice makes perfect
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!
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:
- PDF - The documents that viewers see will look exactly the way they looked on the authors' screens. This could be good or bad, depending upon their usage. For instance, Europeans who print your work on A9 paper will be displeased if you've created your book and assumed an 8.5x11 page format. Also, users who read on electronic devices like phones, eReaders or very wide screens might not be pleased with your use of real estate. For this reason, I highly suggest that you use a format that allows text to reflow to make best use of the screen.
- HTML - Extremely usable, supported by almost every device. It may take a bit of work and CSS magic to make graphically-intense works look good on most devices.
- EPUB - It is an open standard for electronic books that supports reflowable text.
- MOBI - An open format used by Amazon's Kindle
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.
- e-junkie - small monthly fee to wrap around credit card processing
- GumRoad - no monthly fee
- MarketPress - a WordPress plugin
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.
Books with Associated Postmortems
- Mastering Modern Payments - postmortem
- Working With Unix Processes - postmortem #1, postmortem #2
- Create Your Own Programming Language - postmortem #1, postmortem #2, postmortem #3
- Step by Step UI Design - postmortem
- User Onboarding
- App Design Handbook - postmortem
- Parrot Secrets - postmortem
- Discover Phaser - postmortem
- Discover Meteor - postmortem
- Evernote Essentials - postmortem
- Growth Hacking Handbook - postmortem
- The Profitable Side Project Handbook - postmortem
- Functional Programming for the Object-Oriented Programmer - postmortem
- Retinafy Me - postmortem