I didn’t notice how it happened but I got to a point where my app on the app store was there without an update for a few months even though I was working on it daily. I didn’t intend it to be like that but it crept up on me because I didn’t want to cause bugs and issues to users by making new releases. I avoided small problems from small releases and now I had a big problem and a big release to do.

At some point the version of the code I had locally was so different from the previous released version that I was afraid I was going to break everything and make the app unusable for existing users. What happens if there is a critical bug I didn’t notice? Will I have any users left while waiting 10 days for Apple to review a bug fix? Maybe Apple will approve an expedited review? I didn’t want to find out.

My new version had many bug fixes but also a lot of refactoring that made it almost a complete rewrite of the original version. It worked well for me but I was worried it will break for many existing users. I thought that if that happens, users will be disappointed, get upset, leave the app and switch to my competitors. I saw it as if I have two options: release the new code I have and try to fix issues that come up as fast as possible or go back to the old version of the code I have and start adding the new changes gradually while releasing a new version each time with minimal changes. I chose to do nothing. The app was generating income that I needed very much and it had a lot of users which made me feel good, finally I was not writing code for myself. Also it already had a few thousands reviews with a 4+ average and I didn’t want to reset it with a new version. Sure, some people were sending me angry emails complaining about bugs here and there but the majority of users were happy and I didn’t want to upset them.

The problem was that besides bug fixes I also couldn’t release new features I added. I didn’t want my app to be left behind because it’s not updated with new functionality that I already built anyway. Few of the bug fixes were critical because they made sure users with bad intentions can’t abuse the app and use it for things it was not supposed to be used for (which is a major problem this app has).

Then something happened. Turned out that some users did abuse the app. After being contacted about it I had to take the app down completely. It was bad. I got many angry emails from users and I saw all my hard work just go down the drain. I was sure that no one will use the app anymore and even if it’s back on sale, it will fall in rankings on Apple to the point where I will not have new users.

To my surprise it turned out to be a blessing in disguise. It pushed me to release the new version and make adjustments I wanted to do for a while. The release didn’t go smoothly and I did have to use Apple’s expedited review card. When I released the new version it was after a few days that the app was out of the app store and completely unusable for users that already has it on their device. And something amazing happened. It went back exactly to the way it was before. Apple kept sending many new users to the app and a lot of the previous users I had came back and kept using it and paying for it. Actually the sales went up. I think I underestimated the bugs I had before this release, and the new improved version is more stable and increases engagement which in turn increases sales.

While I would like to avoid downtime and major issues as much as possible, my take away from this experience is that it’s better to have minor bugs while doing small releases than it is to to avoid small problems and end up with a big one. My other takeaway is that users don’t do me a favor by using the app. They use it because they need it. They will be angry over issues they have but at the end of the day they will come back if it truly fulfills a need they have.