Mac App Store Mania

It’s only been a few days since Apple announced the Mac App Store and there are already predictions of rampant software piracy, Apple locking down future version of OS X to only App Store sales, and price drops to 99 cents. Let’s calm down and take a step back people.

First of all, pirates will be pirates and if they want to crack your software, they will. Apple’s copy protection will be broken just like every other system out there. This does not mean that your sales will drop. The honest truth is that the dishonest people using pirated software wouldn’t be your customers anyway. I’ve lost track of how many illegal download sites display MoneyWell as one of their offerings, but I also don’t lose sleep over this problem.

As to Apple shutting down all sales outside the Mac App Store, can we give them time to get it up and running before we start blaming them for something they haven’t done yet? I’m willing to give Apple the benefit of the doubt on this one.

Now on to the topic that is a huge issue for me: discount pricing. I can’t stand the dollar store pricing on the iOS App Store and it shows because MoneyWell is at the $9.99 price point even though many of its competitors are lower. I think it’s worth even more than 10 bucks and the price is more likely go up instead of down as we add features down the road. Our Mac version currently sells for $49.99 and that price will go up when we ship our 2.0 release in early 2011. I’m also not planning to lower it when we start selling on the Mac App Store.

Why? Because our software is worth the price I charge. I also owe it to my customer base to make sure my company is well-funded and continues to provide excellent software and support in the future. The profit curve is not negatively affected by higher prices until you are significantly out of the range of your competition—and by competition, I mean software that matches your software in quality. I’ve seen too many companies go out of business because they try to compete on price.

I truly believe that the Mac App Store is going to increase sales for every quality Mac product on the market, but we don’t know by how much. Assuming that you can cut your price in half because your volume will increase by a factor of five or ten is insane. High volume sales are never guaranteed and you may need the cash reserves you make from an initial sales spike for long term development projects or an onslaught of support.

Just because software is made up of electronic bits doesn’t mean that it has any less value than computer hardware or or other electronics. There’s an argument that computers have gone down in price and software should do the same, but companies like Apple aren’t making less money on each computer sold. In fact, most of the time they work to increase their margins as manufacturing costs drop. Apple doesn’t have $51 billion in the bank because they cut their profits in half.

There’s an opposing argument which states we can charge a fair price for software because we provide lasting value. What do you pay for lunch or dinner? How about that trip to Starbucks? What’s your ROI for that meal or latte and how long does that “value” stay with you? Think about that for a minute. Got a visual? Good.

If I invest in a software tool, I expect it to hang around for more than a day or two and to continue to get a return on my investment of 12-18 months before spending more money on it. Will I pay $20, $40 or $60 for software I use several times a week throughout this timeframe? Definitely. It has real value. I don’t buy many games, so most of the software I invest in is either saving me time, improving my communications, or making me money. If I’m using it constantly, I want to use the highest quality software I can get. It should be well-crafted, rarely crash and never lose my data. I’m happy to pay for quality. Building excellent software is hard work and we deserve to get paid for our efforts.

Let’s stick to our guns and price our software fairly so we can prosper and continue to give great service to our customers. Let’s earn some profits and invest in training to improve our coding and business skills. Let’s build some company bank accounts so we can afford to expand our indie companies beyond simple solo acts. Who knows—if we stop tripping over each other to get to the bargain basement—we actually may end up with several hundred more indie developers who can afford to quit their day jobs.

Peace.

If Not You, Then Who?

Running an indie software company is an emotional roller coaster. Some days the code is flowing like water out of a fire hose and you’re breaking sales records while other days are filled with blank stares at a debugger and a strange fear that your website must be broken because no one’s buying your software. It can be a struggle to keep pushing forward in the face of bugs and support requests. You work your butt off to produce a product update only to be met with jeers and complaints, “You wrecked my software! It’s slow/crashing/ugly now” or, “You gave us features a, b and c but I asked for f and g almost two years ago. Why can’t you finish your software?”

Okay, it’s not like that very often, but if you’re like me, a hundred compliments are negated by one complaint. If you’re not like me, be happy you dodged a bullet.

MoneyWell is an especially tricky product when it comes to making people happy. Personal finance software is very… personal. Everyone has their own way of managing their finances and no single tool will satisfy every need. I built MoneyWell for one person: me. There were certain needs I had that weren’t being met by my current tool, Quicken, and no other software I tested was idiot-proof enough to help me control my spending. So like a good programmer, I wrote my own. When designing the feature set, I did consider if others would like certain abilities, but in the end I based all my decisions on what worked best for me. That may sound selfish, but I’ve been in companies where software was designed by committees and frankly, it always sucked.

When releasing version 1.0 of a product, flaws and missing features are often forgiven, “It’s a one-dot-oh release, I’m sure it will get better.” But as your customer base grows and your product matures, the slings and arrows come at a faster pace and hit closer to vital organs. You might start to doubt your vision or struggle to hear your internal voice over the din of the crowd. You might start to doubt your ability to succeed based on what you have planned or fall prey to feeling overwhelmed.

I’ve ridden the roller coaster plenty of times over the past four years. There were times when I wondered if my design was correct or if I even knew what the hell I was doing. I’m no financial genius so who am I to tell others how to run their books?

What struck me recently and inspired me to keep on the path was a simple question: if not you, then who? Are there any software products out today that I would use instead of my own? No, there are not. And why not? Why do I still like my finance software better than anything else?

There are millions of software developers in the world and many are better or smarter coders than me, but none are me. None of them have had the same financial failures I have had or experienced the same exact frustrations. No single person has gone through all the same life trials as I have. I’m the only one who has lived my life and that makes me unique. My blend of skills and experiences gives me an edge for the software I’m passionate about.

I’ll never write the next great word processor because I don’t have a burning desire to build it. I’ve struggled with debt and blown budgets, not page formatting issues. My software comes from my history. It is better because I care about it and how it can improve my life. My greatest desire is that what I create can also help millions of others as well.

You too have a history that gives you a unique perspective on a need. Your life experiences have molded you to see things that others would overlook. What could you contribute to a software design? What do you desire in a product? What are you passionate about?

In other words, don’t build what others have envisioned—create from within yourself. Your design process will be much more enjoyable and the final product will scream “you.” This will mean that you’ll have to endure complaints and say “no” more than you like to enhancement requests, but you will love your work because it feels organic. And even if it doesn’t make you rich, it might make you happy.

Here are the rules in summary:

  1. Seek knowledge from others, but make decisions from within — don’t let the noise drown out your thoughts
  2. Ignore the naysayers — haters are gonna hate and there’s nothing you can do about it
  3. Believe in yourself — trust that what you have to give to the world is unique and worthwhile
  4. Put passion before a paycheck — doing work you love trumps more money any day of the week and twice on Sunday

Every so often, I get lost and let the one or two negatives swallow up all the good creation happening in my life. It’s easy to feel discouraged because your software is in use by hundreds instead of thousands or thousands instead of millions. It’s easy to feel overwhelmed because you don’t have the time to see your vision in full bloom. It’s easy to give up and let someone else deal with creating the solution, but don’t do it. You’ll be cheating the world out of an experience only you can provide.

Peace.

Indie Multitasking

As much as we’d like to think that we are capable of multitasking, we are truly more like an iPad than an iMac. We may have a dozen or more things we have in our queue to do at the moment, but we can only focus on one task at a time. To multitask and actually get two tasks done at once, you need to be two people.

For an indie software company, this means taking a large step and hiring someone—either contract or full time.

This is by no means a trivial decision, but eventually one that has to be addressed. At some point the long days and late nights start to affect the quality of your work or destroy your personal life. And whether you believe it or not, sleep is critical to your health.

Adding staff is hard for several reasons:

  • It costs money
  • It requires trust and flexibility
  • It requires management
  • It requires collaboration tools and processes

Let’s take a look at each of these a little more.

Cash Flow

As an indie developer, you probably aren’t rolling in extra cash that you can just flash and get more staff. You have to be careful about raising your monthly burn rate. The flip side is that you may be hurting cash flow by doing tech support or marketing when you should be writing code and shipping for-fee updates—I consider myself somewhat of an expert in this type of mistake.

Be smart and take baby steps. Instead of hiring a full-time person, you can pay hourly for contract labor. Last year I contracted with Matt Long to help me with MoneyWell for iPhone development, and recently I hired Ash Ponders, who bills me for the hours he logs keeping our support queue well maintained.

The nice part about contract labor is that you can throttle your spending more with them than you could a salaried employee.

Trust and Flexibility

After I contracted with Matt, I began to think that the amount of code that needed to get written at No Thirst Software was much more than I could do in a timely manner and too expensive as contract work. There was a huge potential for revenue from an iPhone release and a paid upgrade for a 2.0 version of MoneyWell but the overhead of running this company was cutting into my coding time and my schedules were slipping badly. If I had a full-time developer besides myself, I could ship these new releases sooner, which would be a huge win for both the company and our customers.

I’ve hired developers many times before in my previous companies and I knew the pitfalls. Hiring a skilled developer is important, but even more important is hiring someone you trust and can work with. I’ve hired prima donnas that code well but are impossible to work with and nice guys that really can’t produce the code needed—neither hire is good.

I like to hire developers that I’ve already spent time with and have learned about how they code and think. That meant my list of potential employees was very short. To shorten my list even more: all of them had good jobs already and didn’t have a strong desire to jump ship.

The stars aligned for me and one of them became available at the perfect time. I hired Michael Fey (a/k/a the infamous MrRooni who started a rumor about spotting Steve Jobs at WWDC 2009) as my first full-time employee in January 2010.

Check this out: I first knew Michael as an early MoneyWell customer who was generous and helped out by answering questions on our support forum. I later found out he was a Mac developer and then was lucky enough to spend some time with him at WWDC and really get to know him. This is one more reason why you need to socialize and network. You never know if you are going to meet a future employee or employer. Needless to say, I’m thrilled to have someone who knows our products, is a skilled developer and is joy to work with on a daily basis.

Now, this is where the flexibility comes into play. When you bring in someone else to do the work you once did in your isolated “me” universe, you’ll find that they’ll do the same tasks a bit differently that you did. If you can’t deal with that fact, you can’t have employees and you can’t ever expand your company. You have to be flexible and accept that your way isn’t the only way to get something done. I’ve learned something from everyone I’ve ever worked with—without exception.

Managing People and Resources

The minute you add any person or service to your operation, you become a manager. It’s your job to steer the ship and control the future of your company. This doesn’t mean that you have all the answers, it just means you have to make the final decision. With employees comes payroll. With contract work comes more payables and tax paperwork. There is overhead to even adding one person.

There’s also mentoring and training. If you fail to properly mentor your new hire in the company processes or train your support technician in your software, you can’t expect that person to perform well. This is your primary job as a leader. and ignoring it is like planting a garden but failing to feed and water the plants. All your initial effort will wither on the vine.

Tools and Processes

Before you expand beyond a one-body shop, you have to invest some time in collaborative tools and processes. For an indie software company, the three biggies are support, bug/feature tracking and source code management.

Email-only support systems are incredibly hard to maintain with more than one person. Did that email get answered? Was there a response? Who’s checking for new emails? Has this customer had similar issues before?

We use Tender to manage our support because it gives us a way to coordinate and assign support. It also suggests Knowledge Base answers when customers post questions so some customer get immediate, automatic support. It also has custom queues that notify specific people in our company when help is needed. This way, our frontline person can get emails for all support issues and the rest of us only see what has been escalated. Additionally, the discussions can be public—the customer can choose to make it private—so other customers tend to jump in and help. I’ll take all the help I can get and often, our customers know better answers than we do because they have personal experience with the question.

For bug/feature tracking, we chose Lighthouse, which happens to work well with Tender because ENTP makes and runs both. What I needed most in issue tracking was a quick way to create requests when customers report bugs or asked for features. Because Lighthouse and Tender integrate perfectly, creating a ticket in Lighthouse requires only a couple of clicks upon reading the Tender discussion post.

There are many different needs for both these tasks and you may need a more intense issue tracking system. I like to avoid complexity as much as possible and that was a driving force in my choices.

Picking a source control management system is like choosing an operating system or development framework. You’re not going to convince a .NET guy that Cocoa is better any more than you can tell someone who loves Mercurial that Bazaar is better. It really doesn’t matter what you choose, but pick a distributed system that has a cloud presence. I used Subversion, then switched to Bazaar and finally ended up with Git.

The primary reason for going with git was Github. I had to collaborate with other developers and they were already using Github so I was flexible and adapted. Once I learned the (sometimes weird) ways of git, I was productive and happy. Moreover, my team was able to work together easily. I needed four developers in three different parts of the country to work out of the same repository and Github made that happen.

Galactic Headquarters

The Galactic Headquarters of No Thirst Software LLC are in my home office located in The Woodlands, Texas. My full-time developer is near Syracuse, New York, contract work is done from yet another state, graphic design is coming from Europe and Ash is doing support from who know’s where on the planet. I have to admit to a bit of envy towards my globe trotting support ninja.

My point is that the days of renting office space and hiring employees locally so that they can show up to work in a central location are long gone. It makes no sense financially and only offers a slight collaborative advantage over Skype and video conferencing. When you pick tools or decide on processes, make sure you think global.

We have office chatter over Twitter, share documents on Dropbox, manage projects on Lighthouse, review support issues on Tender, share source code on Github and hold meetings on Skype or iChat—our work day revolves around information stored on or shared over the internet. I’ve never run a company this efficiently with such a small amount of overhead. It’s a great time to grow your operation and expand beyond yourself.

Peace.

The Computer for the Rest of Them

If you’re a software developer, designer, or a high-tech computer user—Apple doesn’t care about you.

Oh sure, Apple wants you to write, design and create software and products for the Mac, but you are not the target audience for the iPad. I’ve read so much negative backlash about Apple’s latest device and all I can think is, “These guys just don’t get it.”

As software developers, we thrive on complexity. We have dozens of applications lit up in our Docks. As I’m writing this, I have 20 applications running, each with one or more windows open in four virtual workspaces using Spaces.

I’m a geek. I love this stuff. I even know all the keyboard shortcuts for switching apps and spaces and windows. I am a software developer with an engineer’s brain. I am not the person Apple was thinking about when they built the iPad.

So who did they build it for?

The rest of them.

Have you ever watched someone who is not a geek use a computer? I have. My father-in-law lives with us and I’m his support tech, so I get an up close and personal view of the anti-geek at work. Here’s a typical session for him:

  • He clicks on Mail to look at his email;
  • He reads a few emails and closes the window with the red dot in the upper left corner;
  • Then he clicks on Safari and looks at some websites in one window;
  • when he’s done, he closes that window with a click in the upper left corner.

He doesn’t quit any application. As many times as I’ve told him that he can simply hold down the Command key and press ‘Q’ to quit, he clicks the red dot. He doesn’t try to multitask, he doesn’t understand overlapping windows, and he gets very confused when he moves a window by accident and it doesn’t show up well on his screen.

When I showed him the video of the iPad though, he said, “I’d love one of those. It looks so much easier for me to use. My sister could even use one of those.”

For my father-in-law and millions of other people, clicking to run an application on the iPad, pressing the Home button to leave it so another application can be run is perfect. Millions of people spend all their time focused on one app. They read email, or browse the web, or live in Facebook, and the iPad gives them exactly what they need to do those tasks. The fast new Apple A4 chip inside makes changing from one task to another quick enough that there is no need for multitasking—especially with people whose eyes glaze over when you start explaining the concept behind running multiple applications.

The fact is: Real people don’t try to multitask, so they don’t see the iPad lacking this ability.

Personally, I love the idea of the iPad because I do all my RSS feed reading on my iPhone. When I take a break from writing software and working on my computer, I find a comfy place to sit and read on my iPhone. If I can grab my iPad instead, I’ll save eyestrain and my iPhone battery while improving my casual time. For me, it’s a no-brainer. I want one.

Is the iPad perfect? Nope. I think it needs front-facing video at least, but I do agree with John Brownlee that Apple probably left this out because it would make you look fat. This is the first generation of a new type of computing—the computer for the rest of them. Expect amazing growth in this space over the next couple of years.

Peace.

Indie+Relief: Mac Indie Developers Helping Haiti

You get great software, Haiti gets financial help. January 20, 2010

I love the Mac developer community for many reasons and Indie+Relief is just one more example of how great it is.

Much thanks to Justin Williams and Garrett Murray for making this happen and to the 150 or so indie developers that are participating. You all rock!

No Thirst Software is participating as well, so tell everyone you know to hold off and buy software tomorrow, Jan. 20, 2010, if they were thinking about doing it anyway and help heal Haiti.

If you don’t want software, but still want to help the Haitian people who are suffering from so much death and destruction, you can find a reputable charity by using Charity Navigator.

Peace

Grabbing a One Finger Discount

The Mac developer community is so great because of promotions like this: One Finger Discount.

Daniel Jalkut of Red Sweater Software fame decided that while MacHeist was running its promotion giving away free apps, he would start a simultaneous promotion allowing the rest of us to get in on the buzz. All we had to do was offer a 20 percent discount (Get it? Five finger discount = free so one finger = one fifth or 20 percent).

What does Daniel get out of the deal? Nothing. He’s just being a generous member of the Mac Developer Community. So creative, so cool. Way to rock Mr. Jalkut!

Now go buy some software before this deal ends. You’ll find MoneyWell and Debt Quencher there as well.

Peace.

Good Enough

My blog posts have been few and far between because I’ve been facedown in code for MoneyWell 1.5 and the related iPhone release. I have a feeling this won’t change anytime soon, but I’m sneaking in a quick post to fill the gap.

This development cycle has been particularly difficult for me because I’ve had to venture into some uncharted territory. My iPhone development skills are less than expert and MoneyWell 1.5 is my first Leopard application, so the changes to that development are just enough to slow me down slightly.

The combination of acquiring new development knowledge and my tendency to want to do more in a release than is necessary caused several bouts of anxiety and doubt. Stupid questions like, “Can I get all this done in time?” or “Will I get all this working together perfectly?” slice and dice my productivity. My results don’t always match up with my vision, which can lead me to mental self-mutilation.

I too often think, “This is not going to be good enough to sell enough so I can continue growing my company.” If you haven’t guessed yet, I’m borderline insane.

The fact is that there are plenty of indie Mac developers who would kill to be selling enough software to ditch their day job or drop consulting gigs. Additionally, I have probably 20 times more customers than I’ve had in any other venture I’ve started. My customer base is, for the most part, very complimentary of our products. This should be indie nirvana but then again… I’m insane, remember.

My “good enough” is most definitely well past a sane developer’s good enough. There is no reason to expect a product like MoneyWell to be as full featured as products that have been on the market five to ten years longer or are being designed by teams of developers and designers when I’m still basically a one-man shop. I tend to take every compliment as being too kind and every complaint as being right on target.

Insane.

Software development is iterative. My philosophy matches Apple’s: a subset of features should be very well executed and polished; new features won’t appear until they can be implemented cleanly; and most people only care about 20 percent of a product’s feature set. I could add dozens of new features quickly, but my user interface and flow would suffer and, for me, that isn’t good enough.

This philosophy is quite sane.

The insanity comes when I forget that I’m developing software the right way for me: balancing my work and family life while still providing a quality product for my customers. What I have planned for future releases should make 80 percent of our customers ecstatically happy and 20 percent will still wish I had done more sooner no matter what I add to the software. The fact that I don’t have every feature I have ever envisioned for MoneyWell finished today shouldn’t make me crazy—there should a product timeline for the future.

So, the bottom line is: what I’m doing is good enough to keep my software company growing and the majority of my customer base happy. I don’t need to lower my standards but I do need to reassess my expectations of what I can accomplish given that eating and sleep seem to be a necessary evil.

I have already taken steps to offload some support and even brought in help to code MoneyWell for iPhone so it can get finished soon. I should probably have been finishing a 2.0 product instead of a another minor release, but I can’t go back in time and retract promises I made. I can only watch my comments and promises for future releases.

If, like me, you’re running an indie software company, strive for excellence, polish every detail of your work, but always make sure to enjoy what you’re doing. Shipping any software is always better than coding vaporware. Chances are if you truly care about your customers and the software you deliver to them, what you’re producing—no matter how shy it is of your ultimate goals—is probably quite good enough.

Peace

WWDC: Worth it on so many levels

When I wrote this, it was so long ago that Matt Drance was still an Apple employee and not one of us crazy indie devs. My apologies for the now flashback WWDC post.

Apple’s World Wide Developer Conference (WWDC) was earlier this month from June 7 through 12 and I was thrilled to be in attendance for my second year.

The official main reason to go to WWDC is to get edjumacated on all the new Apple hardware and software. My main reason is to connect with other developers. The information about new technology and APIs is critical, don’t get me wrong, but I can’t watch videos of me hanging out with newfound developer friends—or at least I hope I can’t. I’m not sure I want those published. The sessions, on the other hand, are published by Apple so I can watch some that I missed.

This year was even better than last because I knew exactly what I wanted to do. Last year I was following the advice of others; this year I was on a mission to really enjoy every moment of the trip. I knew enough to arrive on Saturday so I could relax and wander about San Francisco a bit before the chaos of the week began. This enabled me to register early on Sunday and meet with people on that morning and throughout the day.

Making Connections

A smart move on my part was putting together the cocoaFusion: podcast with Danny Greg. It’s not like I planned that far in advance for WWDC but having that podcast gave me a chance to meet more developers through the “I listen to you on cocoaFusion: introduction” and it also opened up doors for a couple of non-Apple activities.

Since Danny works for Realmac Software and André Pang used to work for Realmac but now works for Pixar, I was invited to go with them to visit this animated movie wonderland. It was a great tour and André was very generous with his time. They also slipped me an invitation to the Pixel Assembly party that was co-hosted by Realmac and I was able to hang with the ADA award winning Sofa crew. At this event, I also sat and talked with an Apple Xcode engineer and another fellow that worked with Apple on its website store. Both these gentlemen were great to exchange information and ideas with and further proved that not all technical help comes from WWDC sessions or labs.

Not everything went smoothly that night. At this party, I had an Eric Stratton moment when I met Craig Hockenberry, “Hi, Kevin Hoctor, MoneyWell, damn glad to meet you.” So eloquent. Such a firm grasp of the English language and so very interesting to listen to. Sorry Craig, I’ll step it up in 2010. In my defense though, your fame and your height were both a bit intimidating.

Unplanned and Unexpected

Sometimes, cool things happen at WWDC without your even having to make them happen. For example, young Mr. Greg tweeted that he was going to a Core Data Lab so I asked if he would mind me lurking on his session. (I didn’t have any questions on my own but thought I could learn from his.) He said no problem so I went down to the lab to meet him. As it turned out, he was delayed so I thought I’d park myself at the dining tables near the lab and get some work done. As I wandered over, I saw the Karelia Software guys, Dan Wood and Mike Abdullah at one of the tables so I plopped down across from them. As it turns out, I had a great discussion about how to hire a support person and their feedback on the whole experience. Unplanned, unexpected, yet invaluable advice.

Several other serendipitous situations like this one occurred throughout WWDC with me on the giving end at times. Hopefully I was as helpful to others as they were to me.

I finished up the week in style by standing outside Moscone West talking to Matt Drance, Mike Lee, and Scott Stevenson then I turned around to say hi to John Gruber (just happened to have one of my Daring Fireball T-shirts on so I looked like a proper fanboi) and then proceeded to make a fool of my self. The person to the left of John said he had several people talk about who they met at WWDC and Kevin Hoctor was in their list. I said, “Thanks, and you are?” and then Brent Simmons introduced himself.

Now this would not have been so embarrassing if I hadn’t spent nearly an hour last year at the Chieftain talking to Brent who came over to our table to ask who we were and what we did. I apologized and said that he looked different and Gruber came to my rescue saying that Brent has lost weight. You are looking really good Brent. I’m still an idiot but lets call this one your fault anyway, okay?

Good Times

In addition to learning plenty and making a fool of myself, I had a ton of fun. My most memorable moment is probably standing in line for the Keynote with several of the Realmac guys, Mickey Roberson, and Michael Fey (a.k.a., Mr. Rooni), who started the infamous Steve Jobs rumor.

Whether it was sharing software ideas or code, checking out early versions of iPhone apps, or just enjoying great food, drink, and conversation, there was a constant stack overflow of good times. Thanks to all the guys and gals that took time to say hello to me (even the quick ‘hi’ by Sophia Teutschler on her way to the bathroom).

If there was any concern that my second year at WWDC wouldn’t stack up to the first, that’s been eradicated. Barring natural disasters or loss of limb, I’m planning to make sure I set aside the time and money to make this event every single year.

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.

Sharpening the Saw

As a Mac ISV, I’m fairly isolated here in The Woodlands, Texas. That’s why I love it when I get a chance to get out and meet with other developers and small business owners to discuss ideas and sharpen my skills.

Last year was my first time to attend Apple’s WWDC and it won’t be my last. There was plenty of learning to be had from the speakers at the conference but I gained just as much knowledge, if not more, from other developers who I met there. The fellowship was worth the price of attendance alone and the connections I made are still reaping rewards.

One conference that I’d love to go to but just don’t have the time and budget for right now is the NSConference run by Steve “Scotty” Scott of The Mac Developer Network fame.

The speaker list is great and there are so many developers that are going to be there that I’d love to hang with. Unfortunately, I don’t think I could sneak away to Europe again without taking my wife (I’ve been there several times and she hasn’t at all). I think my daughter would have a throw down fit too so the budget wouldn’t be just the inexpensive conference and lodging costs plus a bit of airfare but instead, it would turn into a family vacation with all the requisite tourist activities—more than I care to spend right now.

But if you are in Europe or can invest a little time and money on travel, plan on attending this conference. Then you can come back and leave comments here about all the cool stuff I missed and make me very, very jealous.

Peace.