10 lessons I learnt from my side projects13 May 2015
A Smooth Sea Never Made a Skilful Sailor.
I’ve had a side project or two for as far as I could program. It’s on rare occasions that I would find myself completely free of anything to do, be it at work or on my own free time. Therefore I would like to share my knowledge on what I learnt about my latest project, Swipr, which can be found on the app store.
Without further ado, here are 10 things I learnt working on this project.
- Treat side projects like real, money generating projects, have a plan, set goals, break down your main goal into smaller achievable tasks. My goal was to reach 10k downloads/users, but before that I had to create a prototype, code the app, submit to the app store and promote it. I totally failed on the last one, but I still reached my goal —7 months later.
- Listen to your users from the word go, listen to their grievances, get a prototype out to your friends and listen to what they have to say. I shipped my app, got a tonne of e-mails, and did absolutely nothing with them, I got 1 star reviews as a result`. Work with your users to make your product better.
- Be proud of your project, ask yourself this, if you were invited to an interview at Facebook, would you be able to talk about your project with so much passion that it got you the job? Its not a chore, its a labour of love. My lack of passion showed through this app, the end result was a miserable project, a shadow of what it could have been. I never loved my project, it was buggy, and remained buggy, and apart from this blog, I never really talked it. I also never really used the app, it was never created for me.
- Which brings me to: Build a solution for yourself, or your loved ones, or your friends, basically build a solution that will help those close to you. Side projects should be fun, remember you will be the product owner, the PM, the developer, QA and everything else between, you should be a professional in the problem domain, and the reward for your hard work is an easy life for those around you.
- Start simple, I mean really really simple, I am talking one button on the screen simple. Remember why you are building the solution, fancy animations make an app better, but a working app is sweeter. Launch, iterate, rinse + repeat. Launch on v.0.7, fix it, get to v.1.0 and then let the whole world know about it.
- Early on in the project you will make a lot of assumptions about the problem and the users, don’t let this stifle your creativity, don’t have a one mind track, sometimes v.2.0 will be a different beast from what you started building, but remember, this is only possible if you start small.
- The app store has about a million and a half apps, thats a thousand thousand apps homeboy! a lot of zeros, a few heroes. As much as I encourage you to ship a simple app, please make it worth the users time. If you are re-doing an existing app, make sure it is better than the ones before, unless you come up with an app to mint money or cure cancer, quality is a must for you to break the ranks. Weirdly enough, a simple app could be more appealing than overly engineered ones, take a look at flappy bird, ‘nuff said.
- Integrate analytics, you need to know your users, what they are doing, and why. Is your app getting more traction in Kathmandu than in London? Maybe your next update should include localisation? Are your users leaving the app without visiting the main attraction hidden 10 screens down a navigation stack? Bring it to the main screen, make it more visible.
- Hacking is sweet, but please get permission first. When hacking existing technologies, make sure you have permission from the owners. If not, expect repercussions. Unfortunately Tinder does not appreciate my efforts and they’ve effectively asked me to close shop (more on this later) but am glad I was not making a living out of this app, otherwise it would have been painful.
- Lastly, but certainly not least, ship the damn thing. Whats good in a project that no one can use? Good engineers ship.
Remember, have fun, there is no point working weekends and evenings if you are not enjoying it, is the project tiresome and stressful? ditch it, get a new one. Open source the old project and maybe some interested party will fork and develop it. If its not fun, it ain’t worth doing.