It’s clear that technology is an important part of everyday life. But with the word technology being applied to such a broad field and used to reference so many things, it is difficult to express how to choose the right technology without first giving a definition to what is being referred to when referencing technology in this article. Taking a step back and looking Canada goose Parka at the origins of the word will help us with this.
Technology is derive from the Greek τέχνη, or techne, meaning “art, skill, cunning of hand” and λογία, -logia a suffix denoting “the study or knowledge of something”. A dictionary definition denotes it as the “application of scientific knowledge for practical purposes” and a quick wikipedia search makes it out to be “the collection of techniques, methods or processes used in the production of goods or services or in the accomplishment of objectives” Although the word technology can be used as a blanket term to refer to the latest gadgets, computing devices, software, machinery or medical tools, this article looks at technology from an app development perspective. The primary focus therefore is on using the best processes, software or techniques to achieve our given goals or objectives when developing mobile applications. Given the origins of the word and indeed how we rely on technology to help us become more productive and efficient with our routine activities, we are justified in considering how we can improve our decision making in order to deliver functionality or a service through an app the best way possible.
So why it is so important to pick the right technology for your app?
When developing an app the main aim is to deliver functionality that is reliable and consistent. Given there are so many choices of technology, there are multiple combinations for how to deliver this functionality. It is possible to spend large amounts of time researching open source libraries, API’s, software tools, Standard Development Kits (SDK’s) or frameworks that all appear to work well and deliver you a solution to your given problem. After that a lot more time needs to be invested to learn the chosen software and how to integrate it into your project and time is money. Any business, entrepreneur or someone with just an idea always requires an app to be delivered as quickly as possible for this very reason – money. Projects taking a long time to deliver can lead to high costs, missed market opportunities and losing out on valuable users to the competition. However, trying to speed up the delivery of an app can lead to cutting corners, which ends up with unreliable functionality, bugs and users put off using your app for life due to things not working how they expect. Picking the wrong software will mean longer time spent on integration, more time taken fixing unforeseen issues and even worse case scenarios like having to switch software completely and integrate a different library or changing the framework after realising the chosen one won’t be scalable or suitable enough for your purpose. This outcome is very expensive!
Answering these key questions is the best way to prevent such expensive outcomes:
Questions that lead to the best technology choices
Does it do what you want?
When choosing the right technology this is the first and foremost thing that should be considered. Although this seems like an obvious question to ask yourself, it is very easy to reach for the nearest software library or package that seems to fit the bill. Not having done your homework properly can later on lead to the realisation that actually, the framework doesn’t even do what you thought it would do in the first place.
Is the software actively used, developed and supported?
There are plenty of open-source projects out there that have an active thriving community. Usually this is due to the project solving a very common problem. Developers will contribute by writing the software, updating documentation and knowledge sharing because they need the software for their own purposes anyway. By doing this as part of a large community, however, they get peer review from other developers about the quality of code they have written. They receive feedback about bugs and potentially fixes to their bugs. They also gain recognition in the industry for being good at solving a particular problem. What this means for the end user of the software is they have the benefit of using software that is going to be reliable, easy to gain support from the contributors and other users of the software and updates and fixes are free flowing. If your problem is not so common, however, you might find that there are little or no community developing the software for your particular need. In this particular instance, you might find yourself having to go with a particular vendor or software company that can deliver you such a solution.
Is it scalable?
A common thing that is overlooked is whether you can rely on your chosen software to grow and still keep on delivering high performance at the same rate your user base grows. For the software used inside of the app itself there is probably less need to consider this, but if your app, like most apps do, talk to some form of REST API or web service, can it handle the amount of traffic that having a large amount of users of your service will require? Was the API designed to handle potential spikes in traffic due to some media coverage your app got or did you choose a cheap solution only to find yourself burdened with a lot more expense now that you have to integrate with some other software solution that better suits your needs?
Does it have good documentation that is up to date and well maintained?
Software and technology in general is a complex thing. Not many of us like to spend time reading a manual on how to use our new gadget we just purchased. For using a software library or framework, however, this is not just a requirement, it is an essential part of delivering the functionality that this software will offer you. The better the documentation for the chosen software, the easier this is to do. Having poor documentation will increase your time for integration and missing key things about how the software works will lead to miscellaneous bugs creeping into your app. If possible, choose software that has video documentation as this means the developers actually care enough about how their software is used and perceived that they went to the extra time and effort to make sure you fully understand.
Does the software have a future?
If development and support of a software packages ends, due to lack of funding or because the software has been superseded, you could find yourself with unsupported and rapidly decaying software. Obviously, you want to avoid this!
How is the software provided?
In order to integrate the software, use the framework or SDK, there is usually some sort of initial setup phase. Do you run an install script, or does it come as an app? It can be very costly and frustrating when you have to sit down for hours trying to work out what went wrong setting it all up. The more steps there are to it the more that could possibly go wrong. Prefer software with well documented install instructions and minimal amount of steps and requirement to get you up and running.
Is the software easy to use, understand and extend?
Picking up software that is easy to develop with will increase productivity and a quick turnout of features. The code if provideed should be understandable and modular, and is straightforward to build. Does the software have support for testing it? As you develop new features, especially with complex software, it is important to make sure the feature hasn’t broken any existing functionality. Regression tests can help reduce this risk. Ideally, the software should allow you to rapidly build and test against newly developed features.
Ask the experts
It is worth considering that if you make bad choices when developing your app, your could be saddled with a huge bill, a failing startup, or an app that is doomed before it even reaches the hands of your users. Making the right choices is important to give every chance of success your app deserves. There are individuals in the industry that already have a track record of doing these things and are willing to pass this knowledge on so that as many individuals can benefit as possible. Taking to these experts is the most sure way of knowing that the choices you make are the right ones. At iMobilize we consider knowledge of the technology involved in delivering great apps in the most efficient way possible of the upmost importance.