I have had my share of failed applications from “Only A Quote” to “SimpleSafe”, including “Dating Age Tester“. All were fine ideas but all were lacking one thing or another. I’m sure you have experienced the same. Had an idea, developed it, tried to launch and mainstream it but failed. Isn’t that right? 🙂 Most likely. So let’s focus on the things that we CAN do differently to bring about user interest, increase usability, and market your app for long term goals.
My Failed App
I recently wrote an announcement that I will be rebooting SimpleSafe application, an application that I received initial funding from Kickstarter for, delivered on it but never went far enough in it to make it worth something. I feel like I failed my investors (it was only a $125 altogether which covered Android licensing and hosting so don’t think I took thousands and decided to keep it). Not only that, I use that app ALL the time for personal use and have grown weary of its UI. Note that I use it “ALL the time”, meaning that it actually has utility and is not just for show.
Just a quick overview of where it failed:
- bad marketing
- shitty UI
- that’s it
Here’s what it currently looks like in its Adobe Air version:
Before you start slamming Adobe Air, it was a great choice at the time due to its cross-platform support, ease of development, and functionality. Not only that but you could build a snazzy app with just HTML/CSS/JS without having to learn anything else or any additional frameworks.
What To Reboot
There are several steps you need to take to properly reboot an app and make it worth EVERYONE’S time. This time, you’re building something a user will WANT and crave and use it on a daily basis. And while my idea is out there and may not take off, I feel like it deserves a shot. Here are the main questions to ask yourself about your app’s current state:
- Does your app’s functionality add to a user’s experience? If your app does not directly solve a problem or provide entertainment, it may not be worth redoing. Or it may need to adjusted. In my case, my app is cumbersome to use since it shows up in a separate window. It adds an extra step currently and will not provide anything useful to a user if they don’t integrate it from the get-go. Remember, users are NOT patient. They click around, go to one thing then another. Users also don’t like to learn new things.
- Does your app’s UI allow for quick and easy use?
- Does your app fulfill its basic functions perfectly?
- Can it be used on most devices?
- Is there any following/usage?
These are important questions and will help me reboot properly and focus on the right parts. For most of these, I’d have to answer ‘No’. The UI is terrible, no one uses it, it CAN be cumbersome, and it doesn’t scale well between devices.
The first thing we’ll do is answer those questions above and figure out how to get a positive instead.
- How can your app’s functionality add to a user’s experience? My application right now can’t so how will it be able to in the future? Well, the only way my app can help anyone out is if it can solve a problem that either has cumbersome solutions or no solutions at all. The problem here is “remembering all of your site passwords, having a per-site password, and having complicated passwords”. To make my application a good solution will require not only the ability to hash passwords together but doing it quickly and easily with unique results and ability to use anywhere and everywhere.
- How can your app’s UI allow for quick and easy use? My application is not “quick and easy” at all so changing it will require better accessibility and usage over media. This leads me to believe that a “desktop” version is secondary buy cialis overnight delivery. Having a chrome/firefox extension and an android application may be all that’s necessary. For the extension, I”ll need a button and a central server which the extension can ping for information. The phone UI definitely requires more thought.
- How can your app fulfill its basic functions perfectly? Solid coding. The initial concept which got carried into an android and PHP app as well as an AIR app, is a bit aged and the coding isn’t as solid as it could be. My main requirement for a reboot is to include extra hashes. The current selection is not only daftly limited but also preys upon the insecurities of small password variety
- How can it be used on most devices? Right now it’s an AIR app but I also had a web-based version as well as an android app. My future coverage should be the same, especially if I create an extension + a web app. A web app that is responsive and does not require any heavy JS dependencies is a great way to proliferate the market. However, having a native app more often than not trumps a web app.
- How can you get a following/usage? This is pretty difficult to answer. It’s basically like asking what my marketing plan is. In my case, I’ll be using my own sites to promote my application as well as try to get on “Top 10” apps lists.
Outlining Your Journey
It’s definitely important to make a plan and a set of goals you want to achieve and figure out how you’re going to do it. With that in mind, let’s consider the main goals you’ll want to create:
- Aggregating Data – before even starting, you should do some research. Look at your competitors and at people with similar ideas. Take notes on what you find useful in other applications and what you find superfluous. It’s also important to take notes of how you’d use your application every day. For my purposes, I’d consider why I’d need a password hasher and if I’d use it every day. I take notes of how I’d like to use it. I also checked out password keyring tools and other such apps that are often cited as top productivity tools. Also, check out your target audience!
- Designing The Application – design today is just as important as the back-end of an application. Figuring out the best accessibility options, cross-platform implementation, and the general user experience is a big job of its own and screwing this part up can lead you to having to reread this article. In my own case, the design could have made it or broken it, I had enough downloads but usability was a bitch.
- Developing the application – Here’s this part. While rebooting, it’s perfectly fine to copy over old code. No one is asking you to give up all your efforts. However, it’s time to tie loosened ends. It’s also time to cut excess that is not necessary. It’s important to keep an application bug free and focused on its core functions. It’s better to do one thing extremely well than fifty things on a mediocre scale. One of my android apps failed to work properly once in a while, and it earned itself some bad reviews.
- Test! – test your application. And make adjustments. Don’t be discouraged my harsh critique. It’s all for the good. Many failed applications fail because they were not tested. Things didn’t make sense, or the app would break, and it would take a while to fix. Imagine launching with broken software.
- Launch and Marketing – This is another place where many apps fail. Without a proper launch and coverage by blogs, you’re pretty screwed. On a smaller scale, just having a blog with good traffic maybe enough to inform your potential audience of your app.
What can you do about ______ ?
Let’s look at solutions for each of the questions above as well as our journey goals.
Design & UX
Let’s consider design. I think that Apple is best example of how design can change A LOT. I’m not saying other computers weren’t as well designed but these products became icons of their own, easily recognizable from a lineup. And it’s all design. The enigmatic iPhone and a mac is no more than just a phone and a computer that will perform many functions for you that any other phone and computer can do. So yes, design make a difference but that goes beyond just industrial design. Here are a few resources to jumpstart you in design and get you thinking how your app will perform from the user’s side:
- hackdesign – a free design course for developers. It’s a really great aggregate of articles.
- http://readwrite.com/2012/05/01/10-beautiful-apps-websites-to-drool-over – check out the 10 most beautiful apps.
- http://android.appstorm.net/roundups/40-beautiful-android-application-interfaces-and-icons/ – 40 unique and beautiful UI for android.
- http://vandelaydesign.com/blog/galleries/web-apps/ – beautiful web applications.
I also, personally, recommend the following Apps to try out for their interface:
Development is kind of expected but I’m not here to tell you to “create your app”, that’s a given. What we need to discuss is the use of good coding practices:
- Organize your LESS/SASS – why? Read my article. The summary is that organizing your files and focusing on creating a CSS framework for your web application will help you not only in the future but in the development of the application and catching errors
- Zen Tips for Developers – if you need help with your coding, read these tips that help you stay on top of your stuff.
Keep in mind that you will be updating this application and that it needs clean coding. Catching bugs early and making sure your app is compatible where it’s supposed to be is crucial. For some ideas on how you should organize your application effectively, check out these repos:
Many applications offer beta testing and that often helps hype up the app. So perhaps, before beta testing, you should work on your marketing. Make a splash page, allow people to sign up for updates and then release beta invites.
Anyways, there are some things you should test against:
- server load for web apps. Can your app scale well? Try a load of 100 people (nothing) and several thousand a minute.
- usability reports and heatmaps. What do testers focus on? What are the issues?
- browser and hardware testing. Test your android app on numerous phones, and your web app on phones, tablets, and computers alike.
One of the biggest mistakes I made was saying “no” to marketing and also making it a separate product from my site. What I should have done was integrate it with my blog and promote it properly! Another thing you can do is get yourself listed on top apps lists, or sharing your progress with design and development on Forrst and Dribbble. But that’s not all. Having a strong blog and a way to pull an audience is crucial.
Marketing is yet another way products and apps fall into the background. Hopefully, you made a great product because that definitely helps!
Before just passing off this topic, I think you should see my own progress and what I’m doing to improve my product:
First of all, design needs to stem from an identity. An identity is a brand, an icon to represent your ideas and your products. SimpleSafe App was put together hastily one evening.
I am hoping to create a simple modern icon to place in my app. As you can see, it’s much less obtrusive than a big 90’s type logo. (No, I won’t be using a heart). Here are some of the mockups:
I’ll definitely go through several other iterations but I have a pretty good idea of what I want and how I’ll setup my branding.
I’d like to make this application run natively on all software platforms; however, I find that both cost prohibitive in terms of time and securing a foothold in different markets. So my plan for now is to make a responsive website that can easily work on all platforms via a browser. I can also employ PhoneGap or other similar resources. As far as desktops go, I can’t rely on Air anymore (obviously) so I might have to dive into C# for Windows and Objective-C for Mac as well as whatever else for Linux. I think that Windows and Linux will be my priorities since deploying for mac, I feel like, will be more difficult due to their new restrictions on installing non-market software.
Here is my current proposed stack for making this work:
- NodeJS as an experimental back-end. I have little experience with it so building user management in it may be difficult.
- Laravel 4 for a PHP back-end. I’ve learned that it’s better to start with what you know and quickly develop a model. If my app takes off, I can easily convert it into NodeJS.
- MySQL or PgSQL for database. No need to get fancy.
- Custom CSS3 framework based on Foundation. Foundation allows a plethora of customization so I’m hoping to take its components and spin it into my own framework.
- AngularJS for JS interactions. I’ve long been a proponent of KnockoutJS but I’m starting to get into Angular and I feel that it’ll be beneficial to use the JS library for the front-end.
Some of the best options in building your own stack is to stick with what you know until your app goes big. Then you can restructure. I’m not saying “make bad development decisions” but getting the up and running should be your priority.
Testing & Marketing
As far as testing goes, I am in a unique position to have several different platforms at the ready:
- newly acquired Macbook Air (from work) that I can use for basic testing
- Windows 8 laptop with Ubuntu installed
- Windows Phone 8 phone (HTC 8x)
- Android 4.2 phone (my old galaxy S)
As far as load testing, all I need to do is post a beta on Hackernews. If it gains any tracking, I’ll have 5K hits+ of people using it or just loading it. Stats from that kind of impact will help me make adjustments. With properly made tracking events via Google Analytics, I can easily “simulate” heatmaps.
Then as far as marketing goes, I’ll be regularly releasing designs to Forrst and Reddit for critique. I’ll also setup a landing page for sign ups to capture visitors from the different stages of development.
What are you up to?
I’d love to hear your own stories on what you’re doing with your applications, if any applications require a reboot and whatever. A healthy discussion may help you get back on track!