Sunday, June 21, 2009

Growing Pains

I believe the two hardest periods of a new company are when you first start it and when you grow beyond being able to handle every task yourself.

When you give birth to a new business, you have to work hard to save pennies and handle as much of the operations yourself to survive financially. This is good because you get to design every part of your new venture and structure it to be mean and lean.

For a software start-up, this usually means automating as much as possible. As sales grew with No Thirst Software, I went from hand generating license files with AquaticPrime to PHP scripts that generated and emailed those type of files to a full database back end that simply emailed license codes and sent the license files directly to our software when it pinged the server.

This was easy automation to do because I'm a programmer; I write code and this was just code on a web server talking to code in my Mac software. No big deal.

Other roles are harder to automate. I have a CPA to file my tax paperwork and do the heavy lifting in accounting, but I still have to maintain the books, track expenses, and fill out paperwork (and I hate paperwork). The bookkeeping automation really needs a person, which means hiring and management duties. It's not as comfortable a task as adding some PHP scripts. I'd love to have my wife, Judy, jump in here and tackle this role but she's pulling in a steady paycheck with health insurance benefits for the family so that's a tough call. Are we ready to completely depend on our little company for all our financial needs?

Another time sink is support. I love doing support because it helps me understand how our customers use our products and I find ways to improve them. MoneyWell would never have grown as fast as it has in the direction it has without me doing tech support. I have been toying with the idea of delegating some of this to a part-time person for a while but it was incredibly hard for me to let go for several reasons.

Fear and Workflow


The first was a concern that our support quality would drop. I worked hard to create a reputation for outstanding support and I didn't want that to get lost.

The second concern was my time to train a support person. Handing off support is great if the person taking it can answer the questions asked. Delegation without education is like asking my CPA to finish my Objective-C code—both crazy and stupid.

The third concern was workflow. My workflow was impossible to scale up past two people and even then not really effective. I used IMAP services to file emails into various folders for resolved issues, those needing action, and those needing to be fixed via code changes.

This workflow issue was the biggest of the concerns by far. If I couldn't automate the workflow more, I couldn't hand off support. In the past when I had a larger company with a few dozen employees, I wrote my own customer service system. I liked it because I had control over it and could improve it whenever we needed new functionality. Today, I have plenty of software to write that could be making me money so the thought of spending my time writing an internal app was out.

I looked at other products I had used in the past but they didn't fit my desired flow. I also looked at FogBugz, but the design felt too complicated and alien to the simple design of both MoneyWell and Debt Quencher. I really tried to like it but I knew that I'd never adopt it.

Then I started to use Lighthouse to track my bugs and features because there was a cool OS X front end for it, Lighthouse Keeper. Even without Martin Pilkington's desktop interface, Lighthouse was really nice to use. It didn't have every feature, but what it did have was implemented nicely.

I found out that Active Reload/ENTP was creating a customer support system to match up with Lighthouse. It was still in beta so I held off riding this bleeding edge of technology and pushed the task of delegating support onto the back burner.

The Wakeup Call


My wakeup call came in two parts. First I was asked to include MoneyWell in the MacUpdate MUPromo Spring 2009 Bundle. About 43,500 bundles later, I learned a lot about how well my sales and licensing automation was built and how little code I was writing when handling a minor avalanche of support. Halfway through this bundle, I left for San Francisco to attend Apple's World Wide Developer Conference (WWDC)1 where I fully woke up.

It was in a talk given by Wil Shipley at an overcrowded Cocoaheads meeting held at the SF Apple Store. Even as Wil talked about not doing support as a developer, I resisted. In my head I kept saying, "I need to stay connected to my customers. This has helped me improve my software." He finished and I pretty much had blown him off. Then later that evening I started thinking about all the code that I was not writing and how I was cheating my customers of new versions. I wasn't as worried about my competition as I was about not shipping the very best products because I was devoting my developer skills to support instead of new code. Late that night, I pulled up the Tender Support website and signed up.

Letting Go


While at WWDC, I talked to Judy about hiring a support technician. We tossed around a few ideas and I resolved to make sure it happened once I got back home. Four days after I landed at Houston Intercontinental Airport, I had a support person—my son Patch. He had worked with me before redesigning the No Thirst Software website so I knew what he could do when he put his mind to something, but I wasn't going to push him into the business if he wanted to go a different direction. Thankfully, Judy had discussed this option with him while I was away and he came to me asking if he could help.

This made sharing the support role easier. It wasn't going far, just to another room in our house, and I could pull Patch into my office to give him training whenever necessary. If he hadn't stepped up, I would have advertised on our company user forum and this blog for a person to fill the role. After Patch, my preference would have been a MoneyWell user that didn't need training on the operation of our flagship product.

Tender Support


It's only been a week of working with Tender and a few days of having it live for our customers to use, but I'm thrilled with it. The discussion forum is much more structured than our old Google Groups forum—we can mark issues as open or resolved, assign priority queues to issues, and, best of all, support emails go to the forum so they can't get lost in a cluttered inbox. It's not as large and in charge as FogBugz, but that's part of its appeal. We're even more committed to offering timely and effective support as our customer base continues to grow, and Tender will help us stay on top of our game. My next blog post will talk more about this customer support tool and why it fits No Thirst Software so well.




1. If you're a developer on the Mac or iPhone and you haven't attended WWDC yet, put it on your calendar for 2010 and start saving money now.