Lessons Learnt on App Development

The problem I was solving

I seem to have a lot of gift ideas throughout the year, but when the time comes to gift a person, I typically scramble and grasp at straws to come up with an idea and eventually buy a gift that mostly is irrelevant and expensive.

How did I solve the problem?

I thought it was my personal problem. But I figured that I am not alone on this.

So, I went about creating an iOS app to store the gift ideas and organize them with the tags and potential recipients, so I can buy those gifts when I need to without thinking too hard. iOS app development is a new territory, although I am a big fan and heavily inspired by some of the apps. Yes, it meant learning a new programming language Swift in a platform/ecosystem I don’t have much clue on. But, boy isn’t that fun to learn something new!

I am all set to build an app in a month, but it took almost 2 years to build one, toiling away evenings and weekends. But a year later, I pulled it out from the app store and shut it down. 


In this post, I am journaling the lessons learnt so my future self can refer to it and not fall in the same pitfall or this can help someone to learn from my mistakes and possibly be successful in their attempt.


When I think about the lessons learnt, this is the first that comes to mind. Although the app took 2 years to launch, I finished the core functionality of the app in 3 months. It could have been easily launched in 3 months as it was in a pretty decent shape.

  • Did I have a way to monetize the app in 3 months – No.
  • Did I fix all the bugs – No.
  • Was it a perfect looking app that everyone will fall in love – heck, No!

But, all the above shouldn’t deter from launching an initial product. What’s the point in making a perfect product when you are going to struggle to find the customers or the customers to find you in the first 6 months anyway. The 6 months after the launch would be plenty to fix the bugs and even test the waters to see if anyone really wants your app.

It is easy to find the MVP features. How do I figure that out?

  • Will this feature not allow me to tell my story?
  • Will this feature not allow the customer to test my product?
  • Will it allow to collect the validated learning about my customers with the least effort?

If the answer is yes to the above questions, the feature in question needs to be in the MVP. Rest all features must be out. Remember, it is actually easier to identify the MVP features than you think, but it is harder to follow that through without deviations.

What I ended up creating is a MLP – Minimum Lovable Product. I am not saying that MLP is bad. But MVP is certainly a starting point and don’t jump the gun.

To put this in perspective, I launched with 10 features, out of which 7 features were ready to ship in the first 3 months of the product development and the remaining 3 features took longer because those were technically very complex to build it perfectly.

I could have easily launched without these 3 features, but I failed to do that.

In summary, think about launching first and keep iterating consistently. There are so many parameters like Timing, Idea, Expertise, Business Model, Funding that plays a role in the success of the app in the long run. Before you invest your years and years of your life away, just launch lean and early.

Launching early gives plenty of time to understand your customers better, what they think about the product, which features they use. One can easily spend 6 months of evenings and weekends on building a feature that no one is going to use. That time in retrospect could have been spent with your kids. What a waste!

Don’t try be an artist

We see a lot of these apps that are amazing and it is easy to get drawn and inspired to create our own apps of that same quality. There is nothing wrong with that. But what we forget is that, these apps haven’t started like this. It would have taken the developer many iterations to get there.

I spent a lot of time worrying about the 1 star reviews. As long as you are solving a niche problem and the customers want your product, they will try your product. Listen to the customers feedback and interact with them if possible.

“It is not a painting or a piece of art, a lot of people want to be artists, startup world is very unforgiving to artists”.

Michael Siebel

Monetization can wait

For most situations, monetization need not be part of the MVP. Monetization makes us to deviate from our core MVP philosophy as well as strongly inculcates the need or the app to be perfect. Who wants to piss off the paying customers? We may even go to an extent to setup a customer desk to answer any queries and so on if we are to monetize the app.

If we take the monetization out of the equation, the process can be so much simpler and you can perform the validated learning about your customers without looking over your shoulder all the time, which can be stressful.

Do I have an army of employees to pay their salaries or worried about putting food on the table for my family? – No! Then why am I thinking of monetization to begin with?

In my situation, I had a few features that can be unlocked by in-app purchase. I took too long to work on these features and the psychological need for wanting it to be perfect so the paying customers are extremely satisfied. The In-App purchase feature took 1 year to build and costs $5 a piece. Yes, 4 people bought it – they did not buy because they liked those features and are essential for them – those are my friends who bough them to encourage me in my efforts.


If we develop the app as quickly as possible without trying to be an artist and not worrying about the monetization, we will be left with so much time that perseverance becomes a bit easy to practice. There is a difference between spending a few years and getting discouraged by seeing very less downloads versus spending just a couple of months and seeing less downloads. In the latter case, you are much more tolerant to failures and wanting to try new features by consistently iterating and persevere in the market.

Think about other important things

These days, developing an app is just a piece of the pie. We need energy and mental space to think about how are we going to market? What different platforms are available? How do I use the social media influencers? Launching an app within a few months as opposed to a few years can provide that energy to think of these parameters to establish the app.

When a women is pregnant, she nourishes the child in the womb, but she needs the plan and energy to push the child out. One can’t keep the child in the womb forever and wait for the world to recognize.

Talk to other app devs if possible to figure out what worked for them. Find websites/podcasts that spotlights brand new apps and see if your app can be enlisted.

Technology certainly plays a role, but not to an extent that we ignore everything else. I wish I had read the books and watched YouTube videos on product management before the app failed.

Two of them really influenced me in this area are:

  • Michael Siebel – Y Combinator CEO
  • Eric Ries – The Lean Startup (Book)


  • Launch the app in under 2 months with MVP features and consistently iterate.
  • Don’t try to be an artist. Just go with the rough sketches to validate what you want to do; what your customers want you to do.
  • Instead of worrying about monetization, think about
    • How to market
    • Ways to interact with customers
    • Learn a lot of what others do in similar situations
  • Create an environment where perseverance becomes easy to practice.

What else have you learnt that I missed? What else would help some one? Please sound off in the comments.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s