Simplicity Wins

Usually when you hear a good idea, the first thing you do is think of necessary features in order for that idea to work. You probably jot down (or think) of all the things you want this project to do and have. Most of the time, you’ll over feature the project. It’s ok; we’ve all done it. Up until recently, when new ideas were thrown at me, I would write down everything I wanted the project to do and would spend hours and hours building it. Most of these projects ended up nowhere. As it turns out, when you add too many features, your to do list becomes bigger and bigger. When your to do list gets too big, you tend to get unmotivated and end up never finishing. Even if you do finish, you won’t be 100% satisfied with your end product. Had I been smart back then, I could’ve used my time for better things. It turns out that all I had to do was think in simpler, more realistic terms.

The first thing you have to realize is that your product is probably not going to make it. That’s depressing to hear and you probably hate me now, but let’s just think for a minute. If you spend all of your time working on these unnecessary features now, you’ll never know if your actual base concept works. Why not try it out first? Finding out whether or not people are interested in your core product should be your #1 priority. To see what you really need, just ask yourself “What do I need to have in order to see if this idea will take off?”. Look at it realistically – don’t dream of things. When you’re realistic about your idea, you’ll find your set of core features a lot faster.

When you have something out there that people are using and that you’re getting feedback on, you’ll know what you need to add. It’s always best to add things to your project when you know what people are actually using it for. Look at Twitter for example; when it came out, the @mention system wasn’t there, and I’m pretty sure trending topics weren’t even something they were thinking about when they were building it. However, as the platform got more and more popular and they saw first hand what people were using it for, they started expanding the concept and adding more features.

I strongly believe that if you start simple, you will win. You’ll be able to test out the waters before going too far and receive valuable feedback from the people who matter the most – your users. It’s always good to receive emails asking for something to be added, but you probably won’t be too happy when you receive a comment saying your product is too bloated and complicated to use.

Be motivated and passionate about your project; be realistic and cautious when adding things to it.

Some personal experiences

ProjectSpot, my very first web app was pretty impressive. I started it back when Facebook Pages weren’t as popular as they are today. The basic concept was simple, a social network that allowed people to post up their projects and ideas so that others could become fans, comment and share with friends. I must have spent at least 2 months working on it; solely believing that everything I was adding was amazing. It ended up nowhere. It was extremely complicated to use and didn’t work properly most of the time. Had I only launched it with some core features and tested it out first, I would’ve realized that spending more time on it would’ve have been foolish. Oh well, you live and you learn; right?

Grip’d’s QR Scanner app started out extremely simple. It only recognized URL QR codes in the beginning. What a pain, right? It was probably the most under featured scanner in the App Store. However, people loved the fact that it worked as soon as it was launched, and we grew a huge user base off of that fact alone. We got emails nearly every day asking for more and more features, and once we reached a certain point, we released an update with support for more QR formats. We could’ve launched in the beginning with all the amazing features in the world, but if the app hadn’t caught on, we would’ve wasted valuable time.

I've been programming ever since I was 13, learning Visual Basic. After a while, Visual Basic got really boring. A friend of mine started learning PHP and showed me some cool little sites he was making. I started learning PHP the weekend after. 4 years later, I'm was able to create amazing websites using PHP, MySQL and jQuery. I started iPhone development a few months after the SDK was out, and that's how I became an app developer.