This blog post is the fourth in a series, describing how app development works in a typical client-agency arrangement. The intended reader for these posts is someone who is looking to get an app made, who wants to know how the process works. This series covers how you might work with an agency to build an app, and incorporates some of our learnings from our previous projects on what tends to work best.
So, you’re well on the way to having your app built. You’ve done your planning, you’ve gathered requirements, and you have a set of high-fidelity app designs. It’s almost time to get stuck into development, but not quite yet. First, it’s important to identify and make key technical decisions and plan the development cycle.
Change is hard
Key technology decisions you make at the outset of a project can be substantially difficult (and expensive) to change down the line, particularly if it involves increasing the amount of work or modifying work that has already been completed. For this reason, it’s vital that projects aren’t started without proper consideration over the decisions being made.
One trap that many app development agencies fall into is developing a standard set of technologies they use on all projects, even ones where they may not be suitable. Developing expertise in a core set of technologies can be very useful, as your team can benefit from all the learnings made in previous projects, but this needs to be balanced with making sure that those technologies are in fact fit for purpose. Of particular concern is long-term support for your project; the popular and ‘in-favour’ technologies of the industry-at-large change very quickly compared to other industries, and you don’t want to be left with a situation in which your app is built with a technology that makes it hard to find developers to support in a few years.
Factors to consider
Plan to your budget
Ultimately, the biggest factor in the long-term success of your app is your budget, and whether features that meet the requirements can be delivered within that budget. There are decisions and trade-offs that need to be made around trading long-term maintainability for short-term development efficiency.
One common trade-off in early-stage apps is sacrificing automated testing. Automated testing of code is very important for established apps that don’t want to risk functionality breaking for large numbers of users, but a new app under development might prioritise faster development at a lower cost than an extremely thorough testing process.
Web vs Cross-Platform vs Native Mobile
Apps can be built purely as a ‘web app’ or a website that has all the functionality of an app, as a cheap and maintainable way to support web, iOS, and Android. Mobile apps can be built for iOS and Android as ‘native’ apps, which means they’re written separately, specifically to run on that kind of device. This increases cost but improves the performance and the user experience of the app and allows more complex functionality. Technologies exist to bridge the gap between web apps and native apps. These are known as ‘cross-platform’ apps, often meaning they are built with web-app technology but can be exported as an app to go on the iOS and Android app stores. One downside of ‘cross-platform’ apps in their current form is the reliance on third-party tools and frameworks to add functionality, which, among other drawbacks, might mean it’s more difficult to make use of newer device features.
To summarise, the choice of platforms your app will support will have a huge impact on the cost to build and maintain your app, and on the final user experience of the app, so is worth carefully considering.
Apps can have very different intentions over their planned scale, depending on the target market. If scaling to many users is an important factor in the business case of the app, it’s vital that the ability for the app backend to scale to that increased level of throughput is planned into the development.
While you’ll hopefully have a long-term relationship with the agency building your app, there is always the possibility that you’ll need a different developer in the future to maintain or update your app. You may decide you need in-house developers to handle the project as the app grows. Because of these reasons, it’s important that the technologies chosen, and other decisions made in regards to the app, follow industry standards. By making sure your app is built with widely available and well-supported software, you won’t run into issues with being unable to find or hire an alternative developer in the future.
Software security is becoming ever more important as people become aware of their user data, and as incidents of hacking become more prolific. While a lot of security factors are small things that can be addressed during development, or in audits, there are decisions that affect fundamental aspects of the app that need to be made before a project starts to improve the security of the app, such as the user authentication method chosen.
Don’t get bogged down
While you should plan so you can make the right decisions, it’s important not to overthink the system before you begin. If you and your developers have considered all the main factors, and maintain a good degree of communication after development has commenced, your plan will probably work out fine. Software projects evolve a lot during development, so there’s no need to pre-plan for every detail, a solid foundation to get you started is enough.