I’ve been developing applications both as a hobby and professionally for quite some time now. I’ve released top ranking mobile applications to the various app stores and even sold the rights to applications.
One question I get asked quite a bit is in regards to how I come up with those ideas and execute on them for a successful release. Being a solid developer is one thing, but having a solid plan is another.
I’m going to share my process so you can be more successful with your web and mobile application releases.
There is a lot of work involved when it comes to application development beyond just the programming side of things. If you want to be successful, planning will have positive results.
Before you write even a line of code, you need to come up with an idea. When I come up with ideas, the following goes through my mind:
All of the applications that I’ve released were built for me. In other words, I had a particular use case, so I built an application to solve my use case. Let’s use my application, SQLTool Pro, for this example. Yes it is a mobile application, but it doesn’t really matter.
I built SQLTool Pro because I had numerous databases that I needed to manage on the go. Who else needs to access databases? Database Administrators and Developers need to access databases as well, so my target audience was Database Administrators and Developers.
So I identified what I wanted to solve and who I was trying to target, but what if my idea already exists (it did)?
There were a few mobile database clients on the market with a range of positive and negative reviews. Knowing that your idea isn’t original is enough to deter a lot of people, but it shouldn’t. This is an opportunity to make your idea better than the competition. Was my application better than the competition? Maybe, but even if it wasn’t, it didn’t stop it from selling.
Do your research and come up with a plan.
Once you’ve defined your ideas, you need to define your business logic. The business logic definitions has significantly more depth than figuring out your audience or the problem you’re trying to solve. This is where you figure out features, user experience, and other things that make your application without actually having your application.
Let’s use another example of an application I released. Let’s look at a mobile application I released titled, Solar Flare for Cloudflare. Remember, I do a lot of mobile application development, but everything I’m explaining will apply to web applications or even games as well.
Solar Flare for Cloudflare was created so that way I could control my Cloudflare account without using an annoying web interface. When defining my business logic, I decided I need my application to have the following:
The above is only some of my business logic. However, would you have thought to cache the remote data from the beginning? If you didn’t plan for it, there could potentially be a lot of programming logic changes when you figure it out later which could result in a slower release.
The more you can define up front without touching code, the more successful you’ll be when it comes to writing your code. Don’t come up with ideas as you’re coding because you’re going to end up sending yourself in circles.
So you’ve got your idea hashed out and the business logic is defined. This means you should be ready to start writing code to execute those ideas.
Remember that business logic that you defined previously? See if you can write your application around everything you came up with in a modular way. Let’s say you’re building an e-commerce rival to Amazon.
You might be able to break down your application into the following parts:
So why might you want to break the application into parts and make it modular? For one, everyone likes to see results, so trying to do everything at once might delay visible results. Instead, let’s say that you work on the account functionality. When the account functionality is completed, you’ve got a portion that is a result.
Want to take it a step further? Why not create a microservice out of every component.
With the application split into parts you’ll potentially end up with cleaner and more maintainable code. Remember before RESTful APIs were a thing and people bundled their PHP in their HTML markup? That wasn’t very maintainable long term was it?
You can even go as far as saying that each component of your project is a feature and features can be released on a roadmap instead of all at once. You can continue to add features to your application as it progresses.
After you’ve built your application, the work doesn’t end.
To have a successful application, it isn’t enough to just publish it, even if it is the best application in the world. You need to market it to your audience.
Here are some methods that you can use announce your application:
Those are just a few examples. You need to tell people that you’ve released something and tell them why it is so great. You also need to be consistent because one day of press releases won’t get you very far. You need to be advertising your product daily, weekly, monthly, or whatever makes sense.
Marketing is an art and I personally find it more complicated than programming or any other part of the development or planning process. Take a look at a previous article I wrote titled, So You Made An App, Now What?. Much of it is still relevant today.
Coming up with an application idea and executing it in development and post-release marketing is a process. You have to figure out what you’re trying to solve and who your audience is as well as define all your business logic up front before you start writing code. After you’ve modularized your application and finished development, then you need to focus on getting the word out through a marketing campaign.
Like I mentioned earlier in the article, one of my applications was the App of the Day on Amazon. SQLTool received more than 80,000 downloads in that single day. I also sold rights to an application, but due to a non-disclosure agreement (NDA) I’m not allowed to talk about it.
Have your own development story? Take a moment to share it in the comments. Everyone has their own process towards application success, so the more opinions the better.