At WordCamp San Francisco in 2009 Matt Mullenweg was on stage answering audience questions. Someone asked about a recent, fairly serious, bug in WordPress. Matt responded “Well, all bugs have software…” He meant, “All software has bugs” (and quickly corrected himself after a good laugh), but I like the accidental version better.
We will make mistakes. Our designs and code won’t be perfect and our customers will notice. That’s something I’ve been reminded of a lot these past couple weeks as ConvertKit has had more bugs than I would like. These aren’t just code mistakes. Some are times that I don’t get the user experience right. Times that interactions take longer than they should or edge cases aren’t properly thought through.
For about a week I found myself quite frustrated. Was ConvertKit ever going to be stable enough to release?
Yes, of course it will. I just need to remember that all software has bugs, and we need to fix them one by one. Stressing out about it won’t help. Blaming yourself or your development team won’t help either. What will help is finding and fixing the bugs quickly, constantly working to make your application better.
Be the client
With ConvertKit I have the huge luxury of being the designer, product owner, and customer. Most software I work on is built for someone else. Even if I own the product, the client is another company in a different industry. Because of this, to test the application and workflow I have to pretend to be them. I have to try to think and use the application as they would.
Not so with ConvertKit, and it’s wonderful. The first website to have ConvertKit integrated is my own. As soon as the “Courses” feature was ready I created the first three. I am more eager for each new feature than any of our customers could be.
Building software for yourself makes it so much easier to test the product. Strange interactions, edge-case bugs, and confusing user flows are revealed when you use them every day.
The shortcomings
When you are both the client and the owner your product will fall short of expectations, first with the bugs, then with the missing features. When it seems like there is an avalanche of work that needs to be done to make the product sellable, just breathe, then work on the most important thing. When that is done, work on the next most important.
Bug fixes, new features, and more bug fixes will keep your product moving ahead.
Just remember, you are not alone. All bugs have software.
Photo Credit: Matt Mullenweg
Get a free video course on designing with CSS3

Great post Nathan! Definitely is another point of view when you are the owner and the customer at the same time. Also is way more fun!
Good post. I believe this is why more and more designers are doing personal projects and business instead of just work to other people. They can build things they needed before and with that be designers, product owners and customers.
Has been fun helping you test, though! It WILL be an incredibly sellable and quality product. Don’t fret.
Hi Nathan!
This is Parker, from Code Camp. I was wondering what you are using to charge subscriptions for ConvertKit.
I use Gumroad to take the preorders and Stripe for everything else. Once the preorders are finished I will just use Stripe.
Thanks! I have an idea for a SaaS app. Not going to make $5K a month, but I’ll still get to learn server-side stuff.
Great blog, by the way.
If you’re planning on writing the app in rails, I would check this out: http://railsapps.github.com/rails-stripe-membership-saas/. It will save you a lot of time on billing things. Billing ends up taking longer than you would ever think (Nathan can testify) :)
Thanks! I’ll check on that.
Great post! I am still a student. Still learning! Hope I can do something really impresses myself. Thank you for your great view that cheers me up!