Over less than 6 months I've made more than $15k in revenue from Clean Ruby. It's an unfinished book and I've been working to polish it up and get new content out to my customers but I wanted to take a step back and review where I am.
Grand Plan Gone Wrong
I already had a product idea, I just needed help getting it going. Or so I thought.
I asked Eric Davis, who wrote Refactoring Redmine what he thought of Amy Hoy's 30x500 course. For him, it was an absolutely positive experience and he let me know that when you take it once, you can keep taking it.
I was cautious about the cost of the course, but with that reaction I decided it would be a good investment to finally make my CMS hosting service, Solar System a reality.
When the course began, I was super eager. I already had a leg up because I had most of my product put together. I just needed to figure out how to market it.
And the first thing I learned was that my product was dead, would remain dead, and was a waste of further time and effort. I fundamentally had begun in the wrong place and needed to first find what people wanted.
For me, it was like building a shop in the middle of nowhere. I chose a place that seemed like it would be great for a trainload of customers to pass through. After the course however, I knew how to look for existing tracks first and then listen for the train approaching.
How I Chose My Product
I started with this Recurring Revenue Roundup and wish I had built that product first, given some of the problems I had accepting some people's money in my initial launch.
But I was really distracted from this course by a new idea called DCI. If you're not a programmer, don't worry. It's a new and challenging way of thinking about programming. That's all you really need to know.
I was trying to build my other product, but was instead constantly, and eagerly, distracted by DCI. I read about it. I wrote notes. I tried out simple ideas in code. I started applying what I learned to my daily work. "Damn it!" I thought. I want to build a product but I can't focus on that.
This DCI idea is new. There were practically no places it was being discussed. I thought that would preclude me from using it to make a product. Who cares about it? I have no idea, I can't find them.
I write on my blog from time to time. Not often enough. I planned a blog post because the idea is important and powerful. Someone should be blogging about it.
So I wrote my first post and decided just before I published it that I would add an email sign-up form. http://www.saturnflyer.com/blog/jim/2011/09/28/4-simple-steps-extending-ruby-objects-the-tip-of-the-iceberg-with-dci/
I rarely get comments on my blog. I still don't get many, but within a few short hours I had 0 comments, but 12 people on my mailing list!
Apparently people will give your their email sooner than they will make a comment. I didn't quite do customer research the way she teaches, but I went fishing. Little did I know, but I wrote what Amy calls an E-Bomb (for Education Bomb).
Finding the Ears to Listen
The thing about programmers (aside from the fact that some are strangely offended by that term and prefer "developers") is that they really enjoy technical stuff.
But most people don't do technical stuff because it's there and it's technical. They read, write, and study because it gets them to some greater goal.
That is what Clean Ruby does.
It's not a book about DCI. It's a book that will help you better manage your development effort to reflect your business. It's a book about thinking.
I noticed that despite great developers being great, they often overlook things. There is a lot to consider when developing an application and seemingly small things can fall through the cracks.
I took great inspiration form both Lean Architecture and Clean Code. Both of these books are about thinking too. These aren't books about patterns or code wankery, they teach you to slow down and do things properly.
Encouragement and Support
I'm thankful to have the support of many people. I've been fortunate to have guidance and understanding on programming concepts by Jim Coplien and Trygve Reenskaug. They have been both critical and supportive exactly where I need it. And I've been lucky enough to get a deeper understanding of things like delegation by asking David Ungar and Henry Lieberman directly.
I'd asked Alistair Cockburn for his opinion about my book. In an email I mentioned that "I'm often the developer who spends the most time thinking about method, class, or variable names. And I often take the time to go back and clarify when I've met a misunderstanding somewhere."
He replied with this: "I got in trouble at a small co in 1983 cuz I wrote that way in Radio shack TRS-80 assembler. One of the obscure coders said I was the worst programmer he'd ever seen. Wonder what he's doing with his life these days."
All this and more is leading me to create a book that will be a long-lasting, helpful product. There are plenty of people working on their own products in the 30x500 group who help keep me focused: Noah Gibbs, Brennan Dunn, Alex Korban and more.
With all my research, thinking, experimenting, questioning, and daily work going on I've been selling books.
I was very nervous to launch the book. I've never written a book before and I was planning to release it before it was done. I actually chose to do that because I'd gotten pressure from anxious people waiting to become customers.
My pre-launch sales have been fantastic; much better than I expected.
The initial spike of sales was a total surprise to me. I began collecting comments from Twitter about my book and was happy to see my book called "long-awaited".
I was building a product that people wanted. I wasn't wasting time figuring out how to market something that I thought possibly could be useful like my CMS hosting. My book is actively helping developers take a second look at their applications and think harder about the real business value of what they do.
After less than 6 months, this is how it looks.
But my sales have dipped as my personal life has been turned upside down. I've gone through the process of buying a new home, having a tree fall on it hours after we signed the deed, had a daughter born a day after that (my 4th child), found mold in the basement and had it removed, found plumbing problems, electrical problems, and finally more mold.
Despite all that, I feel great. I'm now selling a product that doesn't require my time for every dollar. Hourly consulting is great, but it requires hours. Building a product completely removes me from needing to provide hours for money. This is a life-changing experience.
I am eager to get back to my research and finish the book and my customers are eager to get it.
The book has helped getting my name out for my consulting work as well. A broader audience now sees that I know how to help them build software in large systems and how I can train them to do the same. What's great about writing this book is that the small companies and individuals who can't afford that kind of consulting are able to learn from the book for a fraction of what they charge for an hour's worth of work.
Buy Clean Ruby and learn to write Ruby applications that better reflect your business. And let me know what you think.