Tuesday 5 August 2008

How Not to Start a Software Company


OK, let's face it, I've made some mistakes already. That's even before I've released the web application.

Let's start with my top five rules I've learnt by doing the complete opposite.

1. Release Early, Release Often.

Everybody knows this right? I knew this. Yet why has this site still not been released after 10 months. Ouch, that hurts just writing that.

I started off with careful planning. I even planned a version 1 and 2 so I knew the full scope of the first version.

So how do it go so wrong? What lies and excuses do I tell myself?

"It's Only 2 Weeks Away". I know I can code a hell of a lot in 2 weeks. On that premise, being 90% there, surely I can get it done. No you can't. After two weeks you realise that 90% was really 75% and after another 2 weeks it will be done. And so it goes on.

"But this feature is essential". By saying this I'm proving that; I didn't plan version 1 in enough detail. If that feature is so essential, why didn't I include it in my version 1 design?

"It's not polished enough". I'm acting like a perfectionist. My friends and family will judge me based on this, so its got to be great. So it needs this this extra feature. No. No. No. They won't care if its not polished, it's just a beta version for testing. You add the polish once its on the web.

2. Think Small

I didn't think small enough. I wanted a big project to get my teeth into. A project that has big potential.

Why didn't I start by releasing the first bit of code as a small useful utility? Ah, but that was to be the core part of my web application and I didn't want to give away my hard work did I? But then others could copy the code and they would become competitors.... Stop. Why and how would anyone compete with that small utility? People would only start competing if that small utility application became successful and profitable. Two magic keywords which would propel any start-up to greater things.

3. Focus on the Essentials

A forum is essential, right? Contact form, also essential? Blog? Of course! Content management system for managing the website? These all have to be integrated to look neat and pretty.

Wrong.

All the basics such as forums and blogs can be set-up easily on 3-rd party sites like getsatisfaction.com, blogger.com, or wordpress.com.

Some might say its important for a professional site to have everything on its own domain. Whilst that would be nice, it's certainly not important. Your software is the most important thing. Other stuff can wait.

4. Too much time.

I never thought anyone could have too much time. Too much time means too many features. Too much faffing, too much scope, too much to do.

Less time focuses the mind. You don't have enough time to code everything so you code the most important stuff.

I remember learning this from 37 signals. I love their less is more mantra.

5. Who is making you look stupid?

I kept this project to myself. What a mistake.

By this I mean, I wanted to work on it quietly and release it with a fanfare and show everybody at once. Wow, that's a lot of pressure I was putting myself under.

I did have a mentor to help me on the business side of things, but I stopped talking to him. I felt I couldn't trouble this person too often since he always seems to be busy. Either I should have contacted him on a weekly or monthly basis, or found someone else to fill his shoes.

I feel it's important having someone or several people to report to. If you don't deliver what you said, you look stupid. I was counting on my users to do that job. That would be fine if I released the software on time!



Hopefully by acknowledging these mistakes I can learn from them and move on. Like when you must admit to an addiction before you have any chance of conquering it.

No comments: