Saturday, February 21, 2015

21 questions to answer before you start that mobile app

You have an idea for a mobile app that will help extend your business and reach out to new and existing customers. Great! But before you send a development team to work on it, you’ll want to make sure you’ve answered these 21 questions:

1. Do you have a release schedule? Will your app have multiple releases? If you are releasing on multiple platforms do you expect them to launch at the same time?

2. What assumptions are you making? Do you assume the app works on iOS8 only? Do you assume that you will pay for the cost of server hosting? These are assumptions you are making that software architects and engineers need to be aware of.

3. Have you created a product backlog? What are the app’s three core features? A backlog is where you define and prioritize the functional and non-functional requirements of the app. Each feature within the app must have requirements associated with it. If the development is left open-ended and lacks requirements, then you are more likely to get something you didn’t expect. You wouldn’t ask a contractor to remodel your bathroom without giving them your requirements would you? Without the requirements, you might end up with purple tiles, green shag carpet, and mirrors on the ceiling.

4. Who are your stakeholders? Who is the final decision maker? If there are two, then which one can overrule the other?

5. Have you identified and evaluated potential competition for your app? If yes, then has that evaluation been rolled into your project plan?

6. Will your app have a cost associated with it? Do you have a monetization strategy? If yes, have you thought about how you would do this? Would it cost money to download the app? Would your app require a subscription to use? Would it have in-app advertising? Would you have features that can be unlocked with a cost? Would you use in-app purchases for physical or virtual goods?

7. What will make this app a success in your stakeholders’ eyes? A certain number of users? An increase in orders? Will analytics need to be incorporated into the app to help measure the success? Developers need to be able to take this criteria into account when gauging success. Ideally, the criteria is measurable, but in some cases that may be very difficult.

8. Do you have a budget? I get it, no one likes showing their cards, but even a range is helpful when creating a proposal. App development costs are very difficult to estimate because there are so many variables. Knowing a budget allows a developer to work with your budget while keeping in mind your critical features. Developers can help you prioritize your features based on your budget and allow you to get your most important items finished first. It’s always the case that estimates will be as accurate as the project information allows.

9. Who are your target users? What problem is your app going to solve for your users? Why does a mobile solution solve this problem better than an alternative? What kind of things should they say or do when they use the app? What devices and platforms do they use? Can you do any user research prior to design or development? Put thought into these users and how this app will reach them.

10. What dependencies do you have before work can begin or be completed? If you are responsible for writing the privacy policy for the app, then that’s a dependency. The copy for the privacy policy must be complete before that screen can be implemented.

11. Do you already have the branding for your app or company defined (logos, colors, fonts, etc)? If yes, then great! Plan on providing this information when you first speak to an app development company. If no, the company’s design team can likely assist you with the branding of your app or business.

12. What risks do you foresee associated with the project, timeline, or other outside factors? Being aware of and discussing project risks early will allow developers to plan accordingly in order to reduce the chance of that risk occurring. An example would be if you have your team setting up the server environment but it won’t be ready for a few months. If the environment isn’t ready on time or has problems, then a domino effect will occur, potentially delaying several people and ultimately the project.

13. Have you identified and validated any application programming interfaces (API), outside services/systems, or third-party vendors that you want your app to integrate with? If not and you need to, then plan on the time needed to research and validate these things.

14. Do you anticipate the app needing support once it’s launched? Most app dev companies can support your app with bug fixes and minor improvements after it has been launched.

15. Have you thought about how secure you’ll need your app to be? What sensitive information will be gathered within your app and how will it be securely stored? Most developer companies should be able to work with you on this and recommend the best solution based on your product.

16. How familiar are you with Agile development? The majority of custom app development companies you will work with these days are working with some variation of an Agile process. This is an iterative process where features will be completed, tweaked, and approved before the project is finished. Each iteration will complete a small piece of the overall project so you can see progress without having to wait until the very end. While most companies can be flexible, you will want to familiarize yourself with the process as it works very well with app development. Odds are, regardless of your companies’ process, you will want to incorporate Agile into it for this project.

17. Can you easily explain your idea and business to anyone? When working with an app dev company, you will be working with people that know their business very well, but they may not necessarily know yours. Some features you want in your app may need to be evaluated to determine how they can be done. This is the consulting part of the cost that you can expect when developing an app. The app shop must take time to understand your business, otherwise the project will suffer.

18. What are the business objectives for the app? Is the objective that it will drive new sales? Will it allow your business to gain a competitive advantage? Will it increase productivity?

19. Are there any existing apps that you would like your app to use as inspiration? Think about other apps that you would like yours to look or feel like.

20. Do you have any wireframes created? Wireframes are designs that show how the user will experience and interact with the app. If you have created wireframes, have you had anyone with a technical background vet the wireframes? Is everything you want to do feasible on the platforms you are targeting?

21. Do you have any visual design done? Visual designs are used to show an example of how the screen will look when it’s in the app and working. This process is done after the wireframes are approved. A visual designer will abide by the experience design already set but will give the screens color and improve the visual communication within each screen. If not, then don’t worry, most app companies provide services for design.

If reading this has made you sad that you aren’t properly prepared to start making your idea a reality, don’t feel bad! It’s very rare that a company approaches mobile app shops with the ability to answer all the questions above.

(c) Justin Dombroski is lead project manager at Enola Labs,

Thursday, August 28, 2014

How Much Your Mobile App Costs

When talking about costs of a software product, 'vague' is the perfect word to apply here. No one can tell how much time and money your project will take. But you, whether you are launching a startup, or a cost-efficient app for presenting your business, an internal enterprise product, or you need software for any other business purpose - you need to plan your budget. You want to know how much your mobile app or website will cost. Nobody will tell you that exactly - but here we'll try to come as close as possible.

If you are driven by the idea but have no experience in hiring people to do software projects, this question will be especially acute, because you search for funding, you need to establish deadlines, you need to know how much you need for development, how much you will have for marketing, and how ROI will be eventually brought. You need to know when your product will be ready to launch it at the right time. You need to expect something.

How Long Will Your Project Take?

Now as you are able to imagine the hourly pricing, you need to know how many hours of work are required to lead your project from a bare idea to deployment of a ready product. It's all about the complexity of your product: its functionality, required tools, custom vs. standard solutions, presence/absence of backend, etc.

#1. The simplest apps with simple graphics, basic tools, containing up to 10 types of data (name, ID, email, comment, image, audio etc.), minimum input forms, up to 15-20 screens, a couple of menus, and minor updates from backend (such as updating quotes from an external source for a quotebook app) - approximately 200 hours (double it in case backend is required).

#2. More complex apps with about 40 screens, up to 20 types of data, interaction with social networks and/or native platform capabilities, basic CRUD (create/read/update/delete) operations, one user type, creation of account an minor social features – approximately 300-450 hours (+ 300-400 hours for backend).

#3. Even more complex interactions, personalization as for different user types (including administrator to access and manage CMS), location-based systems, e-commerce, smaller custom CRM systems, integration of payment systems, moderate enterprise solutions - 700 hours (+ up to 700 hours for backend).

#4. Complex logic, big volumes of data, security, storage and processing on the server side, complex server side, scaling, major social networks, custom CRM and ERP systems - 1000 hours (+ up to 1000 hours for backend).

Add 30% for testing (this number varies depending on the kinds of testing you require) and about 10-15% for project management (depending on complexity).

Of course, all of these numbers are very approximate, since there is no calculator to tell you the exact amount. The further your team studies the project, the more precise their estimates will be.

Expertise Over Cost

When you compare candidates for your project, always keep expertise over their hourly rates and their first estimates, which you receive after the initial dialogue. They differ greatly and are extremely vague. Don't trust an estimate based on vague explanations. Moreover, if you start comparing the first estimates given by different contractors, don't make them a reason to prefer one contractor over another. You may be mistaking when explaining your ideas, or they may be understanding you differently. You need to make sure you have the same detailed vision of the product. But this doesn't usually happen before this 'first estimate'.

Even moderate understanding of your project is impossible unless you have comprehensive documentation to hold on to. It's the only condition to have more or less precise numbers to operate with. All in all, it's the professional expertise that is able to create a high-quality product for you, not a low cost offer.

If we take a look at average hourly rates of software companies around the world, we'll get the following picture:

• USA - $40-$130
• Western Europe - $30-80
• Australia - $30-$70
• Eastern Europe - $25-$45
• Central/South America, Africa, Middle East, Central Asia (These areas are not the most popular outsourcing destinations) - $15-$25
• India - $10-$35 (on freelance marketplaces the most common range is about $12-$16)

These were average software development costs of companies, while for single freelancers subtract about 25-30%. But single freelancers mean a different approach which doesn't work efficiently for full-cycle projects. You will have to hire a designer, a developer, and a QA engineer at least.

Let's make this statement once again: cost is not an indicator of expertise. Although you should naturally beware of marginally low costs.

How Can You Reduce These Costs?

#1. Understand the real cost of your product. You will be tempted to hire the cheapest workforce that promises the lowest amounts of time - but if you get a bad product, you'll spend twice as much correcting what's been done wrong (or even hiring a new team and possibly remake it from scratch). Avoid this temptation and hire a good team from the beginning.

#2. You don't have to build it all here and now. Be flexible. It's usually reasonable to launch a minimum viable product and just leave secondary features for later, considering them by development - you will roll out new versions anyway, so leave it for the time when you start receiving revenues by monetizing your product. Your team (business analyst, project manager) will help you with defining what should be done now and what should be done later. Just make sure to address each feature in detail.

#3. The whole financial load is divided into iterations, so you are able to plan the budget more efficiently. For example, you have a large project that will last about a year, and the approximate estimate requires $85,000 budget. This means it will require about $7,000 monthly. However, it can start with $5,000 per month (analysis of requirements, design, project management), then in the middle of development about $10,000 (as the load is the biggest here, and all of the team members are involved); then again about $5,000 at the end, when comes the time of 'heavy' final testing. Don't hide the real budget - your team will help you plan the course of development in the most efficient way.

#4. Many of the risks that increase estimates, involve changes that you'll inevitably introduce during the development. Plan ahead, and don't hesitate to invest into documentation (such as requirements specification or user stories, which take time at the beginning, but drastically reduce the cost of error and save plenty of time during the development itself).

To conclude: app costs don't stop at the launch. Actually full-cycle development includes such post-release services as support, maintenance, and further upgrades of your software based on user feedback. That's one more important thing about choosing your software contractor - it must be reliable and professional enough to become your partner for long-term collaboration to keep your software fit and healthy, valuable, fully functional and admired by your users.


Sunday, January 1, 2012