The software engineering rules required to make your awesome apps a sure-fire success

Wednesday, 5 July 2017 00:00 -     - {{hitsCtrl.values.hits}}

01In part one of this series Mitra Innovation – a Sri Lankan/UK company with years of experience in digital transformation, programming, app development and Cloud-to-Cloud integration – looked at the ‘What’ and ‘How’ of building high class apps in our mobile, always-online connected world. In this second and final part, we take a look under the covers: at the software engineering required to make your business apps a sure-fire success, and to minimise cost of ownership throughout their lives

By Derek Bell 

1. Technical architecture: get the foundations right

A house wouldn’t survive long if the foundation is not strong, or if the utility pipelines have not been installed properly. It’s the same with software design and architecture. A software system without a good and structured architecture will break down over time, and cost more to maintain over its whole life. Therefore, never underestimate the long term value for your business, of taking a little time upfront to get the foundations right.

2. There’s no substitute for good software design

An inevitable truth with software is that it is prone to change requirements very frequently. The users will use the applications, and they will suggest improvements. Your development team itself may also think of cool new ideas for the software. 

Applications which were initially very good, often deteriorate with time due to a lack ofgood design. However, if your developers use a good modular design, fewer changes and side-effects will occur when you ask them to add a new feature. This leads to high cost-effectiveness throughout the life of the app.

3. Software bugs damage app credibility

All software has bugs and defects. We know this. But if your business launches its app with bugs which damage the user experience, then your users will quickly abandon your app and find alternate ways to get their stuff done. High class mobile apps may not be perfect – but they should not have significant bugs which impact user experience (UX).

4. Smart use of documentation reduces whole life app costs

Often overlooked or under-valued, documentation is one of the most important factors of building a very good software system or app. It acts as a manual and should show various diagrams which are aimed at explaining how the software system works. So, when a new developer comes into your business, he/she will have a very good insight on how the system works, where to find what etc. Which makes them more effective more quickly, and reduces the risks of them writing bugged code, through a misunderstanding of how the system works. For bonus points, keep the documentation fully maintained throughout the lifecycle of the app.

5. Enforce pragmatic coding standards

Having high quality, structured code is good when developing apps. And having it documented by your developers is even better. But, in order to maintain a project well, your developers also need to have coding standards. 

Coding standards maintain the consistency and integrity in how different people write the different parts of software. Technically speaking, the same function can be implemented by different developers in many ways. But without coding standards, this isoften not the case. 

One such problem is that readability gets reduced as different people take different approaches to writing the same software. They may inadvertently introduce software bugs as a result of not understanding the system.

Coding standards means it is far easier to understand the system if everyone uses the same convention. Your people will make fewer mistakes. And mistakes that are made will be easier to spot. Which will ultimately get your businessthe high class mobile apps you crave.

6. Embrace new technologies

It is critically important to consider which technology to use when building apps. If your developers are going to build an iPhone app, then theymay use either Objective-C or Swift. If they’re building an Android app, they can use Java. You may need to have two teams building two separate projects if your app is for iPhones and Android. 

Alternatively, there are technologies such asXamarin which enable developers to build one app which then works on IOS and Android using the same code. At Mitra Innovation we expect frameworks like this to become increasingly popular, as they simplify the challenge of “build once, use many” across a range of device types.

Usually mobile applications work with a back end. The backend part is usually a hosted web server which runs logic related to your service. Usually the big players are .NET, Java and PHP. But now, there are also other technologies which are emerging such as NodeJS. 

Each of these technologies have their pros and cons. There’s no single right answer: the capabilites your app needs, together with skillset availability in your business will likely be the main drivers in your technology selection – and getting it right can be the decisive factor between having an okay app and a classy mobile app.

Summary

Mobile apps will be with us for years to come, and the technologies to build great apps will continue to rapidly evolve. We hope our guidance on building high class mobile apps will enable your business to create amazing apps that your customers will love.

(The writer is COO, Mitra Innovation.) 

COMMENTS