So you want to build an app… (part 3)

Welcome to part 3 of building an app, if you are reading this then you have more than likely read and completed part 1 & 2. If that is the case you should have for your app:

  • A Basic Description of the core application and what it does to share with others so they are clear of the overall intent
  • A series of Functional Requirement statements that your MVP (Minimal Viable Product) needs to have to create value for your users
  • Use Cases which demonstrate the steps your average users would go through to complete interactions with the app as you see it
  • Some Wire Frames of the application to give an idea of the layout & perhaps Mock-Ups showing how those Wire Frames connect together

If you don’t have these figured out then go back and read part 1 and part 2 of this series. Otherwise lets look at the last steps involved in bringing your idea into reality.


Making it Pretty

The short of it is, users are pretty superficial. Not only does your app need to do the job but it needs to look go doing it. There are over One Billion Apps right now in the Apple App store, if a user doesn't like your app it is easy enough for them to just use one made by someone else.

Making it pretty involves taking the wire frames you have created + the use cases you wrote and producing an interface that will be intuitive and appealing to your ideal user. While it might be quite possible you are capable of doing this work yourself I would highly recommend looking to a professional to do it for you for the following reasons. A Designer can:

  1. Ensure that your designs and intent actually works for someone who isn't as involved with the app as you are.
  2. Ensure all the content produced for the developer to use matches the exact resolutions and formats needed to produce a product
  3. Providing you allow a level of flexibility, can produce designs which may vary from your original vision but take into account User Experience considerations you may have not thought of

A good Designer can also help with minor adjustments in relation to their work if there are any issues with the materials produced that prevent them from being used.

Where do you find a Designer? There are plenty of places to look such as Fiverr.com, Guru.com & ODesk for basic freelancers. As a recommendation I would suggest looking at sites that promote portfolios such as Dribble.com OR looking to referrals from trusted individuals as to Designers who produce quality work to specifications required.

From your Use Cases, Wire Frames & Mock-Ups a designer should be able to produce a quote for the work to be performed which should be agreed up front as a fixed price with allowances for adjustments.

Making it Work

By this point you should have all the collateral you need to make coding the , next step. There are a lot of options here to make this work and while the popular answer is ‘just start coding’ in quite a lot of cases that is possibly the worst advice to give. But not in every case.

There is a Software Engineering adage that is - You can have it Fast, you can have it Cheap OR you can have it Good. Pick two.

Deciding how you are going to get your coding done comes down to just that. If you want it Fast & Good then you wont get it Cheap meaning that you will pay a premium for someone to do it for you. If you want it Cheap and Fast then it is pretty likely it wont be Good.

Option 1 — Build it Yourself

As mentioned you can build the app yourself. There are lots of options here from coding courses offered by Google, Apple & Udemy to learn how to use the standard tools to build your app natively. Alternatively there are sites like Stamplay, AppMachine & Meteor (to name a few) that provide a more graphical interface if you are less code inclined.

As a third option a lot of mainstream apps come from templates that can be bought at modified. If your app is “Tinder for X” or “Uber for Y” then maybe this is something you should look into to give yourself a head start to customise.

If you know how to build an app yourself you probably wouldn't of been reading this. Learning to code can be fun and a useful skill but it’s not for everyone & not everyone can make a career of it.

Option 2 — Outsourcing

Outsourcing is pretty common for development. Unless you are a dedicated software house or have a need for continuous development you probably wont have on staff programmers.

There are more than a few existing software houses that you can go to for professional services that are in the business of developing applications. If you are after Fast & Good as your preferred development then this option wont be Cheap but it will be the other two.

Alternatively you may consider an independent developer. Fiverr.com, Guru.com & ODesk mentioned earlier are havens for Developers where you can find one that may suit your price point. If you go this path then the collateral you have created so far (use cases, wire frames, work from the designer, etc.) are absolutely essential.

If you are going to go outsourced it is important to have an upfront understanding about the expected costs. While negotiating a fixed price might be an option in some smaller cases most app development will be on a per hour based fee which can vary based on skill of the developer, geography, development language, etc.

Before approaching an outsource group do an estimate of your application as to the ballpark of hours it should take to do, then when you are working through the selection criteria with the developers use your estimate against their quoted amount. If you are fairly good at estimating you should be able to tell the difference between developers with a good understanding of the work to be done and those who are going to take you for a ride.

How to Estimate (the cheating way)
Estimation of Applications is a bit of a skill but as a crash course look at each ‘screen’ your application has and assign it a level of complexity (High, Medium or Low) in terms of how much is on the screen that has to do things, does it have to talk to back end stuff or external APIs, etc.
So a screen which is just an image with one button that bring up another screen might be Low, but say a login screen with only one button but that button uses an API from Facebook will be a higher level of complexity. If you aren't sure then over guessing the complexity is better.
Once you have rated all your screens then you use a predefined value against each depending on how available skills are. So Low for a iOS app might be 2 hours but in an Android app you might have 4 hours. These values will change over time and depending on developer but for most simple apps, iOS (2/5/10) & Android (4/8/15)
If there are back end components required to make this work you will also need to add time for those AND you should add 20% variance at least for unknown factors or just not estimating correctly.

If you are going to outsource you should ABSOLUTELY ensure you have an idea of the complexity of what you are going to do prior to committing to an outsource group. If you aren't sure about your estimates then get some help or accept you may have to pay extra.

Well, now what?

What comes next is down to you, this series was intended only for the creation of a basic mobile application. There is a lot more that could be said about how to make a application successful.

At this point you have clear functional design, UI and a developer on board (whether it is you or someone else). If you have gone outsourcing then you should be prepared to perform regular testing and make yourself as available as possible to the developer as possible. The developer will also be able to advise you on distribution of your app (App Store requirements or Google Play Store for example).

This series was written up to the point of wanting to take an app from a concept to a reality but in truth to build a successful app there is quite a lot more that should be done. If you want to build your app into a successful startup then there is even more again (check out Business Model Generation for an idea of a starting point).

Hopefully this gives you at least some foundation to build on.