1. 9 Keys to Successful Enterprise
Mobility Projects
1
2. Don’t Get Overwhelmed by the Chaos!
Multi-platform applications
Web/HTML5 App stores
What should I do?
Native Online/offline
development
CRM Javascript
User Interface
User experience
Performance
Hybrid Cloud-based Native
applications Smartphones
2
Legacy
security
Manufacturing Future proof
5. Lack of / Gaps in Development Standards
• J2ME
• Not an option for iPhones
BlackBerry • Incomplete & inconsistent implementations of
MIDP 2.0 profile make it “write once, port
everywhere”
• J2SE
Android • Incompatible with J2ME
• Incompatible with iPhone
• Objective-C
iPhone • Proprietary scripting mixed with C
• Limited iPhone
• Windows Mobile
Windows • Metro
• .NET
• HTML5, JavaScript, CCS
“Cross
• JavaScript/HTML5
Platform”
• So many compatibility issues
5
6. 9 Keys to Success
Business Connection to Platform & Native
Processes Enterprise Systems Feature Support
Development
Mobile Architecture User Interface
Strategy and Tools
Deployment and Project
Security
Monitoring Implementation
66
7. Business Processes
Innovation
TCO Reduction
Adaptability
Simple business logic
7
8. Connection to Enterprise Systems
Enterprise IT Systems
Cloud
DMZ
CRM system ERP system Legacy
system
HR system
Spaghetti!!!
8 Smartphones (BYOD, corporate) Tablets (BYOD, corporate)
9. Connection to Enterprise Systems
Enterprise IT systems
Cloud
DMZ
CRM system ERP system Legacy
system
HR system
Integration
Layer
Smartphones (BYOD, corporate) Tablets (BYOD, corporate)
10. Platform and Native Feature Support
Define your targeted mobile platforms
Define native mobile functionalities to leverage and how
Hardware, Services, User Interface forms
How to catch up with new platform capabilities?
How to manage platform’s different capabilities and technologies?
10
11. Platform and Native Feature Support
Solutions/technologies
Advantages Disadvantages
Native access (via OS Richness, security, Low-level, not reusable
SDKs) performance for multi-platform
High-level, multi-platform Multi-platform, time-to- Common denominator
native APIs market, richness,
performance
Native wrapper Web/Javascript access, Lower performance,
(phonegap) off-the-shelf components lower quality, lack of
richness
11
13. Architecture Definitions
Enterprise IT Systems
Server Business Logic
HTML
rendering
Communication Logic engine + client
business logic
Native App Mobile Browser Native Container
10110011000010110
1011001100001010 <html>
<head>xxxxx <html>
1010000001111000
<script> YXCVBN <head>xxxxx
0101010100001011
… </head>
1100001010101010
… <script>YXCVBN
1010010101001010
… </script>
0111001011110010 UI elements
</script> </body>
1100000001111010
</body> </html>
</html>
Device API’s Device API’s
Native App Web/HTML 5 App Hybrid App
13
14. Development Strategy and Tools
Different tools and languages
Agility, reusability, functionalities
Impact of productivity, quality
and cost
14
15. Native Development Process for Native
Apps
Client-side 2. Server-side 3. Integration
1. (one dev per platform) (a few devs) (point-to-point)
AJAX, PHP, Ruby, …
Test, deploy,
+ Server communication,
authentication,…
+ Business logic, session
mgt, device mgt, security…
4. maintain
16. Web Development Process for Web/Hybrid
Client-side 2. Server-side 3. Integration
1. (cross-platform) (a few devs) (point-to-point)
AJAX, PHP, Ruby, …
Test, deploy,
+ server communication,
authentication,…
+ Business logic, session
mgt, device mgt, security…
4. maintain
17. Middleware Development Process for
Hybrid/Native Apps
One single development for multi-platform client, server and integration
Model / metadata
Mobile App Development
Integration and Deployment Platform
Client-side Server-side Integration-side
17
18. User Interface
Requires mobile UI and design
expertise …
3 phases:
Requirements per screen
Wireframing/mockups
UI design
Need a good UI, not the most
fancy one
18
19. Security
Secure Enterprise Access (SSL)
Device Security Manager
Mobile Application Manager Enterprise systems (MDM solution)
(MAM/App Store solution)
Internet Connection
Mobile devices
Device/Application Control Device Access Control
(Trusted configuration and (Identification/Authentication,
device/app provisioning) wipe out..)
Data Encryption
Secure Enterprise Access
(SSL)
19
20. Deployment and Monitoring
Decide on distribute channels: OTA, Web, USB/SD card, etc.
Update management policy, versioning
Capture app usage to improve user experience
Solutions/technologies
Private App stores / MDM
Instant update management
Monitoring console, analytics
21. Project Implementation
From Scratch? Extension of existing Considerations:
app or via 3rd party? • Shortage and expensive
development skills
• Immature, high
development tool/platform
fragmentation
21
23. Magic Mobile Capabilities
Multi- All major mobile OS – iOS, Android, BlackBerry, Windows
Platform Mobile (and Desktop) in one development effort
Enterprise Develop secure enterprise applications, integrated with your
Integration in-house enterprise system (CRM, ERP, Finance, etc.)
Deploy native applications, with native Look&Feel and use
Native
any mobile device capability (camera, GPS, local storage,
Client etc.)
Any Form Develop solutions for smartphones and tablets with any
Factor interface (touch or keyboard), size and screen density
Develop native, HTML5 web or mixed (native container with
Hybrid HTML5 front-end) applications
25. Advantages of Working with Magic
Reduces number of skills
Speed of delivery
Scalable
Align costs with business
benefits
Future proof
Flexible and competitive
pricing models
I am not going to try to convince you that enterprise mobility is expected to be hot in 2013 and beyond, but if you are attending this webinar, it is because you see enterprise mobility as an opportunity for your organization.1/ Either for your company internal workforce to be more productive and get real-time access to enterprise system data for fast and objective decision-making processes2/ Or for getting your customers engaged with your company, wherever they are2/ Build your company competitive advantage or company business transformation with mobile-specific business processesBut at the same time, they are risks that decision makers and IT managers need to be aware of and have different options to minimize these risks.In an technology environment that is un-mature and changing, I propose today in this webinar to go through a checklist to be successful in your mobile enterprise application projects.
Today, you can hear many buzzwords around mobile enterprise application: technologies like HTML5, Javascript, native, hybrid, cloud but also mobile capabilities, user interface…there are many philosophycal debates that makes decision-makers and IT managers a bit lost or at least very cautious in their strategy or later at the implementation phase.The changing environment is mainly driven by 2 main trends:
First main trend is the Bring-Your-Own-Device trend. Employees using their personal mobile devices for business purposes.. The trend to limit mobile CAPEX investments by IT makes BYOD a lasting trend in the future.Even though as an IT manager you say :”There will not be BYOD policy in my company”, which will be difficult to go against, you will need to make sure that your enterprise mobile applications can run on safely on different mobile devices with different forms and capabilities because it is mostly the case that your company will support tablets and smartphones, for at least 2 mobile device vendors.And we come to the second main chaotic enterprise mobility trend: Platform fragmentation
As an IT manager you need to look at mobile Operating System Market Share in your countries !!!!!!The WW smartphone OS market is highly fragmented and has dramatically changed over the past few years. RIM market share has plunged while Android for instance has plummeted.Even fragmentation can exist within the same operating system and this is the main problem of Android.Android: versions: 2.1 to 4.2 (10 different versions)4 different sizes (small, normal, large, extra large). For each one, you have 4 different densities (low, medium, high, extra high)This platform fragmentation in term of OS, form factors, processing…is a key issue when succeeding in entreprise mobile app projects, and obviously knowing exactly where mobile enterprise apps will be deployed on is essential.But before deployment, you have the development phase with technologies, languages and tools and here too, multiplicity but also proprietary and non-standard technologies and languages make everything complex.
You have a pretty long list of technologies to develop native applications, these technologies can not be reused from one platform to another, except for HTML5 technology which is a cross-platform development language. Moreover, these development standards are client-oriented only. To build a mobile enterprise application ,server-side development with integration capabilities (Enterprise backend systems, databases, cloud…) is absolutely required.
We see 9 keys to unlock the real value of mobile enterprise applications, from the business process definitions to the implementation phase. These 9 keys should help to define a strategy that will not lock you in technology, business or implementation pitfalls.
Let’s start with the most important question in mobile enterprise application projectsand this is not the technology, not the User Interface, not the development tools.First question to address is “What business processes to mobilize” and how to leverage the fact that internal workers, partners or customers are now mobile, always connected and take business-impacting decisions via a intelligent device that has a GPS, camera, 3G/4G broadband internet access or is a mobile wallet.By utilising mobile technologies, businesses can re-design processes, make them simpler, friendlier and easy use. An Mobile Enterprise Application is not a web/desktop application adapted to a smaller screen. To have the equivalence of desktop applications on a mobile device (like a CRM application for instance), this is hard work to display the right business logic and the right data. Usually several mobile apps are needed, each achieving a part of total business processes of a desktop app.The second question is how to deliver benefits from innovation in technologies, such as GPS, camera, location services and more. The most innovative mobile apps are becoming transaction-oriented and leverage key mobile technologies and end user behavior.Adapt to ever change customer demands, and addressing them closer to the customer “just think about a presentation a product catalogue on an iPad , which is connected to real-time ERP system, without the need to keep latest version, printing etc.” ...Obviously types of users, if they are internal users, external users is a key input for a mobile enterprise application project and has impact on user experience requirements, management infrastructure, security... These mobile business processes require to be innovative to have them adopted by their users, and be a business differentiator for the enterprise. You can even think of integrating other types of business processes like Machine-to-Machine communicationsMobile enterprise projects have an objective to reduce the total cost of doing businesses and improving the bottom line.They require adaptability as they may evolve with user experience, device capabilities or business transformation. They will change over the time and will be optimized .
The second main topic to address is how to connect to the Enterprise with multiple systems ?The connection to enterprise IT systems is most often, under-estimated and bottleneck in a mobile project compared to client-side or User Interface development. It usually represents a high effort and cost in the overall project because it often requires expensive, specialized resources both on the technical and on business side.. In a recent report, MGI Research assessed it as a 70 % add-on on the mobile project cost.There are two ways to approach it:1/ The Custom, point-to-point, non standard data integration that leads to an unmanageable and non-enterprise grade solution
2/ Or the best way, standard, future proof SOA-based data and application integration solution for legacy, on-premise, hosted or cloud-based environments. They are very few solutions that can cover the full scale of requirements.Enterprises should invest time and effort in it becausethis is key for application functionality, for performance, scalability, time-to-market and security.It is very important that enterprises define backend system integration points and technologies and choose a solution that is future proof, standard, scalable (which is key for transaction-based mobile applications) and support multiple application architectures like cloud, legacy and on-premise.There are some technologies based on web services/XML, JSON and multi-platform integration layers that should be considered.
The third main point is to know on which mobile operating systems and forms to deploy your mobile enterprise applications.This has an effect on the business logic of the application, on the user interface requirements but mostly on the native capabilities of the device and its operating system that can be leveraged.Secondly, what mobile features (whatever hardware and software –related) can you use and leverage, and what technology to use. Then, how to catch up with new functionalities that will be implemented over the time. Native functions are added over and over at a pace that standard technologies/HTML5 can hardly manage to catch up. Finally, how to manage platform differences and get the best of each platform capabilities without sacrifying productivity and user experience.
The discussion here is around native client built-on direct APIs calls, a native wrapper like Phonegap providing high-level, multi-platform Javascript/web interfaces that can call native APIs or browser-based HTML5 client. Every technology has his pros and cons, but we see a strong trend for high-level, multiplatform native APIs complemented by limited and controlled native code.
Mobile architecture is one of the most controversial topic discussed today between supporters of HTML5 pretending HTML5 is the most productive, feature rich architecture for multi-platform enterprise applications, and supporters of the native approach, saying that native apps have superior performance, user experience, better native integration.The rest would support the hybrid approach taking the best of the two worlds focusing HTML5 technology for User Interface or native container that HTML 5 code can interface with to access native APIs.
Basically, the right architecture will depend on the application type, content type, level of native integration, offline support, performance objectives and security requirements.For Basic, content-based apps : HTML5 architecture is mostly suitable knowing its limitations (performance)More complex apps, transaction-based apps with strong device integration capabilities would mostly be native or hybrid with parts of the UI or business logic wrapped in a native container.In term of tools and solutions, an important criteria for enterprises is the flexibility to choose the right architecture for their changing needs.
The fifth question that comes now is whichstrategy and tools to choose for developing your mobile enterprise applications, for best time-to-market and quality. Different languages and tools are provided by OS manufacturers or 3rd party technology providers, they can be adapted to client-side business logic (like Objective-C for iOS or J2SE for Android), server-side business logic or the type of application architectures that are targeted.To choose the right languages and tools is important in term of agility, reusability and functionalities and is not necessary correlated to the mobile architecture you are looking for.Many development tools are based on Eclipse or Visual Studio that are already used by many developers but development strategy in term of languages and skills has a huge impact on quality, productivity and cost, not only on the development phase but also on the application upgrade and maintenance phases. For example, If you choose a low-level development language, what you will earn in flexibility, you might loose in productivity or quality.
I would like to give an example of developing a native application with a native development language.A typical project would start with a client side development with one stream per targeted platform, then multiple server-side development streams using for example PHP, AJAX or Ruby.Then you would add as many integration development streams as required for point-to-point integration.Obviously you would need to develop also the communication layers and test, deploy and maintain all these.The whole process is quite heavy, risky in term of quality and not adapted to fast time-to-market environment.
Let’s take now a web or hybrid application developed with web technologies.A typical project would also start with a client side development using HTML5 for example, with this time one development stream for all the platforms , then multiple server-side development streams for server-side logic.Then you would add as many integration development streams as required for point-to-point integration.In the same way, you would need to test, deploy and maintain all these.The whole process is less heavy and risky but still not optimized .
Finally, last example is developing hybrid or native applications using an end-to-end development platform covering client-side, server-side and integration development.You would have only one development stream this time and the whole process here would be optimized for best quality, time-to-market and high flexibility.
Let s now address the user interface aspect.First, we see many times that the developer is also responsible for UI design and this is a mistake. Every mobile application project must have a designer thathas expertise in user experience, mobile usability and OS capabilities.We see 3 different phases here: The requirement phase with input from the end-users, Mockup creation (you can use interesting tools like Balsamick or other free tools) , and UI design which looks at the colors, pictures, event/action management.An important point is that mobile enterprises applications do NOT need the most fancy UI like for games or other B2C applications because other parameters are counting like performance, efficiency, business-oriented user experience
Security is also an important aspect and has different layers:First, at Device-level by providingSecure communication between mobile device and EnterpriseEnterprise data protectionIdentification, Authentication and access right management to enterprise systemsPolicy managementSecondly, at Application-level by providingProvisioning, access management, sandboxing, policy managementSolutions/technologies2 different solution types that will merge over the time:*Mobile Device Management (MDM) (including https, authentication/encryption, policy management/enforcement, remote lock or Wipe out…) *Mobile Application Management (MAM)
Deployment is all about distributing the right application to the right devices. It can be made very simply, manually by the IT department with USB connection or SD card but this solution is not scalable and is time and cost-consuming OR It can be pushed automatically towards the mobile devices when they connect to the network in a secure way, for a B2E application or via public app store for a B2C application.For B2E segment, there is a main trend to have a private app store where users will discover enterprise-validated applications to them and will be able to download them remotely (OTA) or via a URL link.For B2C segment, public app stores are the solution which need to be compliant with OS vendor rules.These solutions make easier the app update process which is often forgotten in the process or difficult to achieve with lock-in development solutions.The usage of private / public app stores with the association of MDM solutions enables a better control and management for getting application usage to optimize the applications and user experience. In some private app store solution, you can push updates based on policies that you define.
The last key to consider is how you will implement your mobile enterprise application project:Are you considering working from scratch ? Or extending your existing desktop-based application (can be client/server based or web based) ?Do you consider working with your own resources or using third party resources ?Two considerations to look at:1/ Globally, there is a shortage of development skills which therefore become expensive2/ the development platform market is very fragmented and immature Here too, there are some balance to find and strong choices which must part of a long –term strategy
So how all this process would look like ?I give you some screenshots of projects done with Magic mobile solution and obviously we would be happy to help you in any mobile enterprise application project you may consider.
Enterprise-grade application platform: Not only platform for development but also for scalable, enterprise-grade deployment tackling security, performance, robustness, management…Instant app publishing: thanks to metadata paradigmCloud + On-premise deployment models