As many companies have experienced, when it comes to developing an app for business systems, there is no one size fits all solution, no magic bullet, and no shortcuts – it will take time, effort and commitment to stay the course.
Adrian Frielinghaus, director at application development company Maxxor, says that with the incredible advances made in the mobile space, companies are presented with some tough challenges when it comes to development. “Getting in-house skills was, historically, a practical solution because you only needed a single skill set. You could have one developer building a web application for you and that was all you needed. Today, however, you need to think across a variety of platforms – Android, iOS, Blackberry – which makes it far more difficult to maintain your own in-house team,” he says.
There are, however, some fundamental questions to answer. These include: What is the minimum cost of getting into the game? Which platform do you choose? How do you translate your service offering onto a mobile device? According to Frielinghaus, to keep costs down, starting slowly is the key and keeping things simple are a must. “The process that we have found which works best for our clients is scoping down the initial version onto a single platform and value proposition. Ultimately, you have to be on all the platforms, but you don’t want to start that way because fast tracking on a single platform is far easier than doing so simultaneously over four different ones. Coupled to that, the first version of the app will include some kind of database, web backend, etc., so once that is built it does not have to be redone once the migration cycle begins.”
Create relationships
For small business, it is CEO at Realm Digital, Wesley Lynch’s opinion that outsourcing is key, especially if building a consumer application where the company doesn’t have control over the platform and wants broad access to
markets. “You have to develop for so many platforms nowadays that it is just not viable to have all the required disciplines in house. You cannot support an infrastructure where you have developers for all the different platforms and constantly have to upskill them and ensure they are all working toward a common goal. That said, when looking to outsource you have to look for a relationship that is more partner-centric rather than supplier-centric. This is a relationship that will go on for some time and the company needs to understand your needs and desired outcomes perfectly.”
One mistake is to base the purchase purely on price, since developing and maintaining an app is in essence a long term endeavour. It is not a simple box drop like traditional software and requires maintenance, upgrades and constant monitoring as technology changes and evolves, especially in the mobile space. “It is sometimes hard to get clients to understand the true cost of professional software development,” says Frielinghaus. “App development should, in fact, be seen as an Opex expense. The nature of the development cycle and long-term relationship one needs to build with the supplier means that it will not be a once-off Capex expenditure but an ongoing process.”
Choosing the platform
When looking at where to start, platform wise, there are a number of factors to take into consideration. The choice is, however, not clear-cut and there are pros and cons to every platform. “This is a difficult question,” says Frielinghaus. “It depends largely on which market you are targeting. In South Africa there is not a massive difference between the Android and iPhone market. Android is bigger, of course, but iPhone penetration is significant. Taking this into consideration, if you are building an app that requires a lot of complicated hardware integration then often iPhone is a better place to start as it is a much cleaner eco-system. There is a limited range of devices available so it is easier to ensure your app works on all models and versions. Conversely, there are hundreds of Android devices, in various configurations, that take a lot of effort to cater to. That said, if the app is not too complicated Android makes a lot of sense, as roll out, testing and versioning is quicker. You do not have to wait for the app store to vet and approve your app, you can create an app, put it on the store, and a few hours later people are downloading and using it. On the iStore you can wait a few weeks for approval every time you want launch a new version of your app.”
Before starting
While app development is maturing as an industry, in relation to the IT environment it is still in its infancy, with lots of trial and error development going on. If companies can take some pearls of wisdom from the industry experts it would be to define what they want to achieve and consult the experts before getting the ball rolling.
Understanding the Platforms
According to Daniel Hall, country manager of platform development company Magic Software South Africa, there are three basic development methods to develop the mobile apps that enterprises are looking for:
Native Development (for native apps): Requires individual coding languages (such as Java, C++, etc) per operating system and platform (iOS, Android, BlackBerry, Windows, etc). This doesn’t remove the necessity to develop the server-side of the app with server development technologies. This increases the overall cost and duration of the project and requires many different skilled resources.
Web Development (for web/hybrid/native apps): Requires HTML, JavaScript, and CSS technologies along with a variety of different tools to create native, web and hybrid clients. In addition, multiple developments on the server side are also needed to set up the required logic.
Middleware development (for hybrid and native apps): Uses end-to-end development platforms which cover client-side, server-side and the integration development. You would have only one development stream and the whole process is optimised for best quality, time-to-market and high flexibility.