As an indie developer, I've created a variety of apps for children, adults, and even dogs over the past couple years. If there is one thing I can tell you about staying in this business, it's this: You need to ship your apps!
While this might seem obvious, shipping an app is actually the hardest part of the development process. Today I'm going to discuss the different kinds of motivation - both positive and negative - that will help you along in your development quest, as well as some tips, tricks and checklists for getting across that final finish line.
The single most important factor in shipping an app is getting motivated, and the best way to build motivation is through incentives. You need to get worked up about your app - get excited about getting it done! So let's look at some positive motivation techniques that can help.
Visualize the Completed App
First, visualize your completed app. Think about how good it will be when it's finished and published on the App Store. Think about how excited you'll be to tell your friends and colleagues about your new release, and how many people around the world will be able to download your work with the touch of a button. Think of the fame and fortune- the world can be yours if you can only get this software out the door!
Remember, it was Woody Allen who said "80 percent of success is showing up."
Create Social Pressure
Tell your friends about your impending release too - there's nothing wrong with creating a bit of social pressure to get yourself over those last hurdles. Knowing that your friends are expecting to see it finished soon helps create a bit more pressure.
Think About Revenue
Another big incentive for releasing your app is revenue. Every app studio needs revenue to survive. The longer your app remains in production, the longer it's not out on the App Store making money. There's also the chance it could do really well and you could be the next Candy Crush, but you'll never know until the app is shipped!
Don't forget about the larger app store industry. Making apps was a gold rush for the first couple years when the app store launched in 2008. As the novelty factor wore off, users started downloading and spending less on apps. Christmas season was traditionally hottest app season of the year, but it's seen steady decreases in downloads and revenue since 2011. Don't procrastinate your way out of a viable market!
Make Time for the Next Project
Apps also have a way of taking up a lot of the resources of an app studio (well, that's what an app studio does, after all). But when production drags out, it can waste a lot of time and energy. Keep an eye on the clock and the calendar. It's not always a great idea to spend too much time on the one project when there are other projects due to be worked on.
Consider the other projects you can't spend your full time and attention on yet! All your other projects are waiting until this is off your plate. The sooner you can get it shipped and out the door, the sooner you can move on to create the rest of the app catalog that you've always dreamed of.
Don't neglect your other projects. Keep moving.
Don't forget about the best incentive of all - treats! Think about something you'd like - maybe some extra leisure hours, a nice meal out, or even a Steam gift card...just for you. Don't go bananas, make sure that whatever you choose as a reward isn't too expensive - you don't want to spend your profit before you make it. But a little reward for shipping an entire app, why not? You deserve it!
Set Firm Deadlines
Probably the most successful tactic that I've ever used is to set a firm deadline and stick to it. Mark it down in your calendar in ink- make it real! This is the day that you are shipping your app! If you have a date set in stone, it's a lot easier to put in the the all-nighters and the extra hours that you need to really finish an app.
If you are working on self generated projects, it's so easy to put things off endlessly since there can be no real deadlines. If there is a formal launch date you'll be sure to get it shipped on time. At the very least, the guilt will eat away at you every day past your ship date until you get it done.
Look to the real world for deadlines. Contests are a great option, as are game conventions, holidays or any kind of time-sensitive event. Pixel Prospector put together a great list of indie game contests- see if there's one near you to enter!
Plan ahead and ship on time if you pick a real world deadline - you don't want to end up submitting your New Year's Eve app late and launching on January 3rd.
These are all good ways to generate positive incentives, but it's worth talking for a minute about the negative consequences that can come from not shipping your app as soon as you possibly can.
You Mistime the Market
The app market changes very rapidly - trends change, games change, competition changes, even pricing models change. What's popular now is not going to be at the top of the charts in six months. By delaying your ship date past it's prime, you risk going up against market factors that you might not have considered when you started making your app.
Years ago, app developers were able to price their apps successfully at 3.99 and up and make a good profit. Free and 99 cent apps are the most popular now, and an app has to really stand out to charge more than that. This happened over a few short years- don't let those be the years you're stuck in development.
One of the most dangerous market changes to the average app developer is competition. This has happened to me more times than I'd like to admit - one of my competitors released an app similar to one that's been kicking around my studio for a while. Not only do they get to reap the rewards of the genius idea that we both came up with, but I also have to cross that off my list (or think of some new twist).
Keeping Up with Technology Change
We all know technology is updating constantly. Apple releases new software every year for Mac and iPhone, and that's not even considering all of the Android and other market technology to keep up with. If you're working with an app SDK, that will likely have rolling updates as well. New hardware features are always being introduced, and more attention tends to be lavished upon software that adopts the new features.
Not only can it be difficult and expensive to stay on top of the software and hardware required, but you also have to keep your code, well, up to code. If your project has been in production for a while, it very well might need patches and bug fixes to be compatible with the current app technology. As developer Rod Gammon says, "Just to stay still in this market, you have to update the app constantly."
Consider subscription costs - Apple charges $99/year, and lots of app-related software is sold via subscription. If you take part in these services, procrastination is costing you...literally!
Letting Perfect Be the Enemy of Good
This tactic is more about psychology. As a developer, you want to ship the perfect app. In regards to actual bugs, it should be working as perfectly as possible. But in terms of polish, be careful not to spend lots of time noodling around in details that don’t really matter. I see a lot of devs fall prey to this, myself included - spending time endlessly perfecting one app and sometimes never even releasing it at all.
Consider how much the user will notice the details that you're working on - if it's extra shadows on a menu bar or some other inconsequential element that you're spending hours and hours on, it's probably okay call it done and move on.
If it requires extra polish, then by all means polish it, but don't use excessive polishing as an excuse put off shipping.
Let it be close enough. Be willing to accept 90% instead of only 110%.
One of the most effective methods of getting things done is the "feature lock." Once you're at a certain point where you need to finish the project, declare that you done adding new features.
If anything, you may want to remove features at this point. Don't let scope creep sneak up on you! If you want to add more features at a later stage in the game, start a list for Version 2.0. Don't stretch out your development timeline for 1.0 any further. Don't use new features as an excuse to not release an app.
Getting Your App Out the Door
We went through some fun, positive motivations and some more dire motivations on the course to shipping your app. Don't put too much pressure on yourself during the production process - it takes time and energy to create a quality piece of software. When you know it's finished, though, it's time to turn the heat up and get that thing out the door.
Take a Breather
Once you're actually up to the shipping process, take a deep breath, and relax. Make sure you are well-rested and well-fed. There are inevitable hiccups and mistakes in any shipping process. If you're stressed out, it'll make things ten times worse. Take a deep breath or a short cat nap.
Crossing the Finish Line
When you're ready to submit, GO!! The finish line is in sight.
Submitting an app is one of the trickiest parts of the development process. Technical requirements abound, and, especially if it's your first app, it'll be difficult stuff that you haven't dealt with until this stage in the process. There's a lot of data entry and uploading, verification, certification, keys and profiles - all kinds of wonderful and daunting things.
Here's just a sample checklist of shipping an iOS app:
- Make the app
- Finalize app title
- Get your computer's app developer certificate installed, if this is your first app you're building on your current computer. More information
- Create an App ID in the iOS Developer Console.
- Create and download your development/adhoc and app store Provisioning Profiles. A helpful walkthrough.
- Install the Provisioning Profiles in Xcode
- Create new app in developer console
- Create In-App Purchase products, if you have them. These take a day or two to resolve, so it's best to create these early
- Create test logins for In-App Purchase testing, if this is your first time using IAP
- Build a development/adhoc build using your new profiles.
- Test basic app functionality on device
- Test app cross-platform (if applicable)
- Do any market research (keywords, ASO, etc)
- Prep your keyword list
- Write your description
- Write a short description (for Amazon), and an even shorter tagline (for Google Play)
- If localizing, see my tutorial on how to localize an app
- Prep content to be translated
- Order translations
- Register domain name (if applicable, if you have a developer website, adding another app page to it is fine, domains are not necessary for every release.)
- Set up app website
- Optimize app- code, graphics where possible
- Test optimizations on device
- Review translations
- Add in translations
- Test localization in all languages
- Test localization cross-platform
- Final build test on device
- Take screenshots
- Create customized screenshots and promo banners for Android (if applicable)
- Create promo video (30 seconds max for Apple)
- Upload screenshots, icon, promo graphics and/or video.
- Enter metadata (in all languages, if applicable). Note: metadata can be edited after you submit and while waiting in the queue, all the way up until it's marked "In Review."
- Enter pricing information
- Set release date
- Submit IAP along with submission, if you have an IAP
- Submit Binary
The next day...
- Re-test app
- Double check submitted information
- Wait for release - This helpful site has average review times
- Launch the app. App takes 6-12 hours to appear, from when you get the "Ready for Sale" email to when it appears on the App Store.
Keep in mind that this is the last hurdle. Your app is done, and you've worked so hard on it - it's time to send it out into the world so it can shine!
It'll probably take at least a day or two to get through the submission process. When you're done, high-five the person nearest you and take the rest of the day off.
Double Check the Details
Come back in the next day, and go over everything with a fine-toothed comb.
There are a lot of little details in an app submission and a lot of places to go wrong. Do a post-ship test of your app. Are you sure there aren't any bugs you missed? Did you include everything in the metadata? Screenshots? Does the description have everything it needs?
If you catch something, don't worry. It's much better to catch errors the day after shipping and to lose one day in the queue, instead of catching one after 7-8 days and having to go back to the end of the line.
Even worse is doing an initial launch and then finding a bug that requires an urgent patch.
The app details are still fresh in your mind, and when the app launches you'll be lost in a whirlwind of launch festivities - so it's best to double check everything the day after you ship.
Once you've double checked (and re-submitted if necessary), then you're really done! Go celebrate for real! Go buy that reward you promised yourself, tell all your friends, and be proud. You have officially finished and submitted an entire app and, if this is your first app, then you're now an official app developer! Congratulations all around!
Extra thanks to Scott for helping with the ship checklist above.
Illustrations © 2014 Laura Tallardy