Wednesday, September 22, 2010

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.