How do you know the firm or developer you hired is developing a solid app? Are there any security risks with the app design? Are there issues that could cause problems in the future?
Having an app developed is expensive and, depending on the complexity, can cost you from $10,000 to over $150,000. Spending that kind of money can be stressful. However, it can be even more stressful when the app you paid for does not work as expected, or you’re surprised by the maintenance cost.
This blog post will briefly overview what I mean by “second opinion” and why it’s essential for anyone considering developing an app.
Why do you need a second opinion on your app?
Early into my software consulting days, I started to see a pattern. Many business owners are unaware of the technical issues with their app or the app they are about to have built, including broken deliverables or features, promises, and security flaws that could expose user data.
Having a third-party developer review the code or technical documents can help you save money and ensure that the features you ask for function the way you want them to. It can also save you future headaches and reduce future maintenance costs by making sure the app is appropriately developed.
Are you getting a fully customized app, or are they using a theme?
Depending on how much you are paying for your app, you might get an app based on a template or theme, a cookie-cutter solution. Themes and templates are an excellent way for developers to get apps out to the market fast.
However, the app theme or template the developer uses might not be customizable enough for your business or the kind of app you’re looking for. They might even have features you didn’t ask for that confuse your users looking for something more basic or straightforward. And app themes, in most cases, don’t work as planned and cause more headaches in the future when adding features or upgrading packages.
Knowing the limitations of the theme and what issues may arise from it helps you plan for the future and improve the success of your app.
Why does someone need to take the time to know your business and its security and compliance issues?
While it does not seem so—and this is a topic for another discussion—users expect some basic security today regarding their information. Their passwords are protected, and any information they privately share should only be with those who grant access. Depending on where your business is, you may also be required to comply with specific guidelines and compliances with the government.
Having a third-party review the code and how the app is designed can help you stay compliant with governments and help identify potential security issues. I have seen apps with plain text or passwords with weak encryption. I have also seen apps that used weak security keys that could allow anyone with the key to access the entire user database.
You want to protect your business and brand’s reputation for something that could have been prevented by just taking some basic security measures.
Are you getting what you paid for?
Some features are more challenging to develop than you expect and require a lot of thinking and problem-solving to ensure it is done correctly.
For example, multi-regional apps can prove especially challenging considering the timezone and currency conversions. A lot has to go into consideration when providing a good user experience. To get around it, I have seen some developers code an app to look like it can operate multi-regional when they only use one timezone and currency for everything.
Improper development of features can take a lot of development time, costing you a lot of money, to fix. A problem that should not have been there in the first place. It’s better to find out that the developer is in breach of their contract before you sign off and get the necessary changes done early.
Do you understand what it will take to maintain your app?
You may already know that you must spend some extra capital in the future to maintain the app. You will need to add features, fix issues, or install upgrades. But did you know that if the app is not developed correctly, it can also increase maintenance costs?
Code-related issues impacting future development and app changes are called “technical debt” in the software development world. Without proper considerations during development, this dept can be so bad that it takes months or even impossible to get things done and make the necessary changes.
Some examples of technical dept that I have seen that have cost business owners thousands:
- Improper or no automated testing. Without proper tests, changes to the existing code have a greater chance of breaking and causing new bugs; tests, while not a perfect solution, will help catch bugs before they make it out to the public.
- Using technology you don’t need, i.e., selling you buzzwords, “we use ____, the latest technology,” instead of using the right tool for the right job. The wrong technology can make a project more challenging to maintain and more complicated to make changes.
- Over-engineering the app rather than keeping it simple; as an app grows, it’s expected to get complex, but complexity should not be designed from the beginning. You will be wasting money on development time. In addition, complexity makes it harder to track down bugs and fix them and makes it more difficult and time-consuming to make changes.
- Solving future problems that your users are not facing now. Just because company X does it does not mean you will face the same issues. Just like over-engineering and using technology you don’t need; you will be wasting money on development and making the app more complex than it needs to be.
- Not using proper development techniques that make future development impacts the app’s maintenance. There are a lot of best practices in the software development world, each with its purpose and why we should use them. It does not mean that you need to use all of them. Still, you must ensure that the correct practices are followed so that the app is easy to understand by future developers, maintainable, and easy to add features.
- Using outdated or internal libraries without being upfront about the risks and if they are strongly maintained. It is usual for developers to use third-party libraries, but they should be active and have a strong following. Using outdated libraries or libraries with a high likely hood of no longer being maintained can make future updates nearly impossible. I have run into this with clients where the previous developer used a library that is no longer maintained, and the documentation is no longer available.
- Improper or no documentation for future developers to follow. Documentation is the last thing for a developer to think about. Still, there needs to be some documentation available for future developers to follow on how to deploy the app, run the app in a development environment, and any unique information related to running the app. Some architectural diagrams should be present as well. Spending a little time upfront will save you a lot of money in the future development and maintenance of the app.
If you plan on developing an app, it is a good idea to put some money aside and hire a third-party developer or consultant to help you decide on a firm to hire. In addition, having someone review the code as it is being built and before you sign off on the app can help ensure you’re getting the app you want and help save money in the future.
Are you looking to develop an app or worried you’re not getting what you wanted? Do you need someone to make sure the basic security practices are followed or do you need someone to make sure your app is compliant?