Looking for an insight into what makes an award winning mobile solution amongst Oracle's customers? The following Q&A exert captures an online interview with Andrew Paterson
from Rubicon Red
, sharing his experiences in building a mobile solution for Australia's National Pharmacies that won the Enterprise Mobility Award at Oracle Open World
2014. The application was built using Oracle technology, a combination of Oracle's Mobile Application Framework
(MAF) for the mobile front end, and Oracle's SOA Suite
of products at the back end.
Hi Andrew, I had the pleasure of meeting you at Oracle Open World, but for our audience could you please introduce yourself, your role and organisation you work for.
Andrew: Hi, my name is Andrew Paterson and I work for Rubicon Red
– a company based out of Australia that provides products and services relating to Oracle Fusion Middleware. My role is Practice Manager, which involves a mixture of line and resource management, pre-sales and consulting work for clients.
Mobility is my main focus area at the moment, as we are increasingly finding that it is something customers now see as being core to their business.
What was your background before working on mobile solutions?
Andrew: I have quite a varied background, having worked previously with Ada, Lotus Notes, Java and building Web and Portal applications. The past 7-8 years has been focused on SOA and BPM, through development and consulting.
My interest has always been in delivering solutions that make the users' lives easier. Typically with SOA this is abstracting away the complexities of the underlying systems and then exposing services that can be easily consumed.
As a developer, what’s changed since you took up the “mobile first” mantra?
Andrew: The key phrase would be “build for change” - Mobility innovation and trends move a lot faster than traditional applications or web. For example, in the timeframe of the current application build (last 6 months) we have seen the Samsung S5 and Apple iPhone 6 devices launched, along with a new iOS and Android Lollipop being released this Friday. Coupled with these are changes to the UI styles and expected patterns of operations.
The challenge is to keep up with these trends. This was one of the main reasons we picked Oracle's Mobile Application Framework. We don’t have to worry about maintaining the underlying structures to keep apace with these changes, MAF takes care of this for us. Our focus is instead on what we can do differently within the app and whether we need to evolve the UI.
The next noticeable change is that mobility has changed the way customers view SOA. Previously it could be a hard sell and often it was typically only used to replace existing integrations. The benefits of SOA as an approach were often lost and it was hard for them to see the value in building re-usable services and having a service catalogue. Now, it is impossible for a customer to build mobile applications without having a services layer. A well-structured and performant API is critical for being able to build applications that work well for consumers.
A minor but important change is that the presentation layer infrastructure is now something we don’t need to provide and maintain. The app runs on the users device, saving both money and time.
Finally, it is crucial to now see the application as being something you are in for the long term, with multiple and frequent development cycles to add or improve features. The nature of the interaction with the user is more personal and direct, so whatever is built needs to evolve. Users expect this change – look at any app on your phone that hasn’t updated in the past year or so and it probably looks dated and clunky.
Could you give us an outline of what Oracle Mobile Application Framework applications you’ve built or been responsible for?
Andrew: Prior to MAF we had worked with various customers to build ADF Mobile [Editor's note: ADF Mobile was the precursor to MAF] applications, mainly for sales order entry and purchase order approval (typically moving these functions out of Oracle ERPs). These came about through the use of SOA and BPM to build services, which were then easily consumable via a mobile front-end.
With our latest application, we are using MAF and working on a consumer application for a membership based pharmacy organisation. This app will deliver a new channel of interaction for their members, to view prescriptions, membership details and to interact with the company. Providing the app will also mean members no longer need to carry a plastic card to prove membership.
Can you outline the size of your teams, your apps, the timelines involved?
Andrew: The current project consists of a solution architect/mobile developer to design and build the front-end application and a SOA developer for building back end services in Oracle API Gateway and SOA Suite. The customer’s marketing team are responsible for providing a style guide to build the application to.
The breakdown of work is around 80 days, with 40-50 of these being the work required to expose services that interact with the internal systems.
That's interesting, so more than 50% of the work was with the back end services rather than just the mobile UI front end. Was that your experience in the earlier mobile apps you built too?
Andrew: It was probably similar percentages, although we’ve found MAF easier and quicker to build apps compared to ADF Mobile. Some of the tool improvements and framework changes have reduced the development time considerably. For customers who have been on the SOA journey, it should be relatively simple to build an app that utilises their existing services.
Arguably a mobile app can just be a reflection of an existing desktop or browser based system. Can you talk to the qualities of your app that makes it “mobile”, in other words what’s unique to the solution and what benefits did it bring over the original systems?
Andrew: Whilst some of the features in the application are available on the website, the big change is that it provides a channel for direct interaction between the member and the organisation and adds features more related to the ‘now’ moment. For example, members will be able to receive notifications that their prescriptions are ready.
Also, whilst it isn’t being leveraged at the moment, we will be able to detect that a member is in-store and this opens up scope to provide spot/local promotions and to improve the interaction between the member and the shop staff.
What advice can you give for anyone wanting to start their first Oracle Mobile Application Framework application?
Andrew: Don’t be afraid! The framework is relatively easy to understand and you can quickly build a nice looking app that exposes enterprise data from multiple sources. Consider your use cases – a big one for us was to be able to work ‘offline’ – i.e. the user shouldn’t need to login to view some of their data. Look for common issues faced within the organisation – for example, what are the top five reasons that users call your customer services department and how could these be alleviated by exposing a self-service application?
The framework also provides a lot of functionality out of the box, so make sure you look through the examples provided to see what is possible. Also take a trip to the MAF tutorial videos
as these provide a really good introduction to the overall framework.
We’ve found that using an actual device for development and testing was easier than using the emulators. Getting this set up and working also helps you gain an understanding of the tools available and how various components work.
As mentioned before – build for change. Always have in mind how you will add new features and functions and the impact these will have on the app you are designing.
Finally – UI style changes are frequent so do not focus too much effort on a pixel perfect rendering. Build something that looks nice but understand it will likely need to change within a year. The critical aspect is the functionality – users are unforgiving of errors and poor performance.
What qualities do you see an “enterprise” mobile apps having over consumer apps? Do you bother to differentiate them?
Andrew: I see there being subtle differences between an app built for the enterprise and one for consumers. An enterprise app is likely to expose more interactive features (i.e. create/update/delete of data), whereas consumer focused apps will typically show the status of data from within various systems.
This means that the enterprise app will likely need more consideration to different levels of access and security roles. As you are exposing functions that change corporate data, you’ll likely need to hide/show things like fields and buttons accordingly.
However, outside of that there probably isn’t much to differentiate. It’s tempting to say that an enterprise app may not need as frequent UI changes, but I’m not sure that is true anymore!
When gathering requirements for mobile applications from your customers/users, was there anything that took you by surprise?
Andrew: Typically, when building web or BPM apps it can be difficult to get business users to explain what they require, as often they are not aware of the functionality that is available or what is possible. Mobility is a reverse of this – people know quite well what a mobile device can or can’t do, the features available and have an expectation on how things should work. Design becomes a lot easier as everyone is sharing a common terminology and understanding of what and how things should work.
Another noticeable effect was there were a lot of creative ideas proposed around what the app could provide. Whilst some of these have been put to one side for the initial launch of the app, they have been useful for providing an understanding how we should construct the app to cater for these future enhancements.
In developing a mobile solution for your customers, what advice can you give them in considering mobile applications for the first time?
Andrew: Be clear about why you are launching an app and the features and functions that it will provide. What is the intent and why would someone download and keep the app? Having decided this, break the features into bodies of work that can be completed in phases no longer than a couple of months each. If it takes you longer than a couple of months to get a release out (for a consumer focused app), then you’re likely to fall behind the market due to amount of innovation and change that is occurring.
Related to this is don’t fall at the first hurdle through ‘analysis paralysis’. If a feature is too complex to decide upon now, then roll it into the next release. The key thing is to get an app out there that you can expand upon. If you’re not sure what features the users want – then ask them through a survey or similar.
If we focus on Oracle’s Mobile Application Framework, if you were to pitch the positives to a new customer, what would you cover?
Andrew: The key point to pitch is that it provides a fully featured framework to build an app that can then be deployed to both iOS and Android. This greatly speeds up development and reduces costs, as the developer doesn���t need to focus on writing Android or Objective C page structures and navigation.
The approach for data controls and pages is based around ADF and is a proven way to build applications. The ease of wiring in services means that it can be very quick to build an application that interacts with your existing systems. For customers with Oracle systems you have that reassurance it has been built to work seamlessly with these.
Finally, it’s worth re-iterating that the product is constantly evolving and adding new features. The ability to get these for ‘free’ without needing to invest time to build yourself cannot be understated.
And to be fair, let’s cover the negatives too?
Andrew: At times we have hit some quirky device related issues that have been hard to resolve. Mostly MAF protects you from these issues, but this is compounded due to the variety of devices that exist (particularly for Android). Often a bug is with a particular device or version of phone operating system, so this can be frustrating (especially when trying to explain how to recreate it and the person can’t).
Documentation can be sparse at times as well or at least, examples that cover more complex use cases. There are times where parameters or features are skipped over as though it is obvious how it works. However just like MAF, Oracle is rapidly evolving the documentation set too so this will improve over time.
Do you see any unique challenges in the Australian mobile market?
Andrew: Australia is quite unique due to the proliferation of people that have smart phones. I heard a statistic the other day that the top 2 providers have 29 million mobile contracts between them – more than the population that exists today.
Another consideration for Australia is that once you get out of the cities the connectivity can drop off quite significantly. This needs to be factored in when building your app – what is needed to keep the app running in this situations.
Any predictions for enterprise mobility in 2015 and 2020?
Andrew: 2015 is probably easier – the tools will evolve to support multi tenancy on the device. i.e. a work profile and a personal profile. Some of this exists today, but again it will get easier to manage as the tooling gets better.
2020 – who knows, better interactivity with our rocket cars :-) I have a HTC Desire that was released around about 5 years ago and the difference in form and function is shocking. It seems barely usable and horrendously slow. I think the big change will be towards ease of access and ‘always on’ connectivity to enterprise data.
Thanks very much for your time Andrew, and sharing your experiences and expert insights into the mobility market. Best of luck with your next mobile application!
, an Australian Oracle Gold partner is an innovative IT professional services firm focused on enabling enterprise agility and operational excellence through the adoption of emerging technologies such as Service-Oriented Architecture (SOA), Business Process Management (BPM), Cloud Computing and Mobile solutions.