Archive for Enterprise Mobility

Cloud Based Load Generators For Web Applications And Blogs

Let’s face it, we are in web apps era! All the services that we get are all on the net mostly fetched via a cloud provider such as Amazon Web Services or Heroku or so. We expect lots of people to avail those services and at reasonable latency. Page rendering should in less than a second for people to stay interested.

So how do we make sure the web apps or blogs are indeed capable of delivering the value adds in those fraction of second? We need to make sure 100% that the web apps are responsive, scalable with no bottlenecks.

This can be done reasonably easily. There are hosted web traffic generators who will come in handy. Mostly they are paid and premium. However, basic services are part of free tiers and we will look few of them here

Blitz

Blitz offers a comprehensive set of tools to perform Load Testing from the Cloud. It helps developers to perform Load testing for websites, web apps, and REST APIs. Very intuitive screens and reports that tells the current performance stats such as response time, http errors, caching needs etc. Very informative and lets one to take corrective measures. You can generate traffic from various part of the world – America, Asia, Europe, Brazil and so on. There are few services that you can test for free say 1000 simultaneous hits to your Web App..

 

load testing

 

Check out here and a case study here

BlazeMeter

A fully compatible Apache JMeter on the Cloud is BlazeMeter. It is a life saver for developers with fine tools to measure software performance, reliability and volume testing. Check out here

load testing

SOATest

A Parasoft product that helps to analyze, testing and validating APIs and API-driven applications.

Check out here

HP LoadRunner

Highly scalable, affordable on-demand load testing in the cloud another great tool for developers.

KeyNote LoadPro

KeyNote LoadPro can generate 1 million concurrent hits or more. It is one of the prominent Load Testing tools around. Check out here

Free Open Source Mobile Application Management to Distribute your Apps Securely

One of the key requirement to enterprise in distributing its mobile application is an internal app store through which enterprise users can download the apps and keep them up to date. While there are apple’s Enterprise App Store or one could use Google Play to make the apps available to there employees via regular channel, most enterprises don’t feel comfortable with this approach and they look for a simply hosted internal app store through which they can distribute their applications. While there are a number of commercially available Mobile Application Management solution available like App Central, Partnerpedia, Apperian, RhoGallery etc. they all come with a fee structure that a small and medium enterprise may not be willing to invest right away. So for those enterprise which are at an early stage in investing into a mobility infrastructure landscape, there is a need for a cost free solution that provides ability to authenticate, secure, deploy, and manage apps for their employees. Open Source solution is one of the ways where enterprises can try our distribution before they start investing into various mobile infrastructure components like MEAP, MAM and MDM.

One such MAM is Knappsack that gives technology managers a secure way to deploy apps within their own organization.

Mobile app distribution

Knappsack is a open source mobile app distribution software ( Mobile Application Management software ) that allows companies to securely deploy app within their organization. One can install knappsack internally and manager all the enterprise apps of the company for free. For developers, it gives a platform to deploy apps to their clients, distribute securely to their clients and customize the platform according to the need.

If you are a developer, don’t forget to contribute back to knappsack.

Download here from GitHub and use it for free!

Enterprise Mobile App Development – Quick Guidelines for Sizing Efforts

In this post we look at key cost factors for developing an enterprise app and provide a quick reference for sizing the effort for developing and deploying the app. Please use this as a guideline only and actual cost may vary depending of various factors like company’s mobility strategy, experience/skill in mobility, off shore cost etc.

Now lets look at the primary cost drivers for developing and deploying an app for enterprise. There are six key cost factors to be considered.

1. Devices to be supported – various form factors like phone, tablets, special device like ruggedized device etc

2. Mobile Operating Systems to be supported – iOS, Android, Windows Phone, BlackBerry

3. Integration to Enterprise Backend – access to enterprise backends like ERP, CRM, CMS, Databases etc. that are behind the firewall

4. Native App or Cross-Platform development – Native iOS & Android vs apps developed using MEAPs (Mobile Enterprise Application Platform) or Mobile App frameworks

5. Deployment – via Apple App Store, Google Play or MAM ( Mobile App Management )

6. Support and Maintenance – is app support and enhancements required

How to size the development effort?

Having understood the key cost driving factors, now let’s start the estimate with a general thumb rule as a baseline and then consider the cost factors one by one to modify the baseline effort. For a typical sizing of effort, lets follow the general thumb rule of 25% + 50% + 25%. Use the general thumb rule, the total effort is a combination of:

1. 25% effort for UX Design and Functional Design – includes functional design, process flows, wireframes, screen mockups with HTML based clickable prototypes

While there is a base effort, the key factors that would affect the base effort are:

  a. Support for multiple operating systems

More the number of operating system, typically there would be double the UX and VD effort. Efforts needs to get added for designing wireframes for different operating systems and visual assets catering to the UI guidelines of the mobile operating system. Also the support of portrait and landscape would add additional effort especially in cases where the apps transform into a different screen in portrait. As an example, in the portrait mode it could show sales numbers and in landscape mode it switches to a graphical view.

  b. Support for multiple form factors table/phone

Tablet support would add UX efforts if the layout completely changes on a tablet vs phone. In addition there would be Visual Design effort to support different sizes of screens with different aspect ratios based on the screen sizes to be supported. If an iPhone app needs to be supported on iPad using “2X” option, all visual assets needs to be doubled in size and provided. So the visual design effort would get added to the base effort.

2. 50% effort for technical design and development – includes technical design, development, unit test, code reviews etc.

Here again the base effort of technical design and development would get added/modified based on a number of factors:

  a. Number of mobile operating system support

Typically the development effort would repeat for each operating system you plan to support depending on the technology chosen to develop the app. In case of a cross platform development like a MEAP, there could be roughly 70-75% of effort saving depending on which MEAP is used. The usage of UI controls also plays an important factor in effort estimate. The efforts easily become overextended when custom UI are designed instead of using the native controls provided by the underlying operating system. Custom mobile menus require more polish than the built-in version. As an example, if the UI is designed with a dark iOS interface, the developer could start with a simple grouped table view in Xcode and set the new background color, but the other UI elements wouldn’t match the background colour. They need more effort in polishing the UI controls. In iOS 5, some interface elements can be given a tint. All these adds to the base effort of development. Similarly supporting portrait and landscape modes would take additional effort especially in cases where the screen transforms into a different layout all together when switched from portrait to landscape.

  b. Integration to enterprise backend

This is the most important part of any enterprise mobile app and connecting to the enterprise backend is major effort driving factor. Authentication to LDAP, accessing systems behind the firewall, setting up a intermediate server in the DMZ would all add to the base development effort and also call for a new set of web services integration skills in addition to UI design. If the web services needs to be completely developed as compared to consuming existing tested web, services would all increase the development and integration effort.

3. 25% effort for integration testing, QA and deployment – includes app testing from end user perspective, mobile operating system perspective and hardware perspective. Which includes, usability testing, performance testing, security testing, end to end integrating testing with the enterprise backend.

  a. Support of multiple operating system and multiple form factors would increase the testing effort as the app needs to get tested on different OS, different screen sizes ect. The test cases would get repeated of the backend integration code base is different for different operating system.

  b.Integration to enterprise backend would also needs to be tested for app on each supported operating system if the integration code base is different. Here again the usage development technology plays a role. In case of MEAP, the framework would provide common code based for writing integration/source adaptors that are used across apps on different platform.

Now having understood the thumb rules, let’s review a use cased to do an effort estimate.

Use Case: An app on iOS and Android for SalesForce CRM

 

Please use this as a thumb rule and actual effort varies on number of factors. Expect around +-20% variance for the efforts.

This app is targeted for a sales personnel who is always on the move, uses SalesForce to update and maintain his customer data base, track leads and update the status.

High-level requirement

Lets start with noting down the high-level requirement. Doing a white board session would help us arrive at a rough estimate on the number of main screens required to be designed for the app. Lets say 8 screens are needed to be designed. Apps needs to be developed for iPhone and Android. Support for iPad also using “2X” option.

High-level effort sizing

Lets start with a baseline of 1 week per mobile screen as a starting point for sizing the overall effort. Basic 8 screens would take 8 weeks of effort. Using our 25% + 50% + 25% thumb rule

2 weeks for UX, 4 weeks for technical design and development and 2 weeks of testing and integration. This is a good start as a base without having to go through the gory details of work breakdown structure.

Now next of level gets into the details:

UX design and Functional Design : 2 weeks of base effort

- Support for 2 operating systems would need two sets of wireframes catering to the UI guidelines of the mobile OS. Let us assume we use the same wire frames as it is an enterprise app and not a consumer app, let us not give too much importance to two sets of wire frames and do with one set for both. If the visual design need to be different then add 50% of effort i.e 1 more week. If you choose to keep the visual design also same, keep the effort same as base effort. In this case lets assume same set of visual assets too for both iOS and Android. However supporting “2X” option on iPad would need the visual assets to be created with two different sizes. So lets add 1 weeks to the base effort. The total effort would now be 3 weeks .

Technical Design and Development: 4 weeks of base effort

- Support of two operating systems doubles the development effort typically if the apps are developed using Native development languages as the app needs to be written using xCode for iOS and Android SDK for Android. So 4 weeks would become 8 weeks. Consider a case where cross platform development middleware like MEAP is used. Typically, MEAPS would save 75% of the development effort. In other words 75% of the code can be reused. So the 4 weeks effort would become 5 weeks.

- Integration to enterprise backend would again increase the effort. as in this case salesForce is a service on cloud, a lot of plumbing work in opening the firewall, authenticating to a LDAP behind the firewall etc gets avoided. Assuming web services already exists ( salesforce.com being popular cloud based CRM offering ), the web service development efforts also is not needed. However there needs to be an integration effort factored in interims of consuming the web services from the app. Lets factor in an additional 25% of development effort for web services integration with salesforce CRM. That would make the development effort to increase by 1 week.

- So in case of development using native, overall development effort would be 9 weeks and in case of development using MEAP, the overall development effort would be 6 weeks.

Integration testing, QA and deployment – 2 weeks of base effort

Usability testing on 2 different mobile operating system iOS and Android would increase the end user perspective testing effort in case of both native and cross platform app development. In case of native, 2 apps needs to be tested, so 2 weeks would become 4 weeks, whereas in cross platform ( MEAP) development, 50% efforts can be saved. Its not 75% saving in testing effort here (unlike development effort) as the app needs to get tested on different screens, different mobile operating systems though the code based is same. So the testing effort in case of cross platform development would be 3 weeks. Integrating testing with salesforce CRM would be less as the tested stable web services provided by salesforce is being used. Only the app side needs to get tested which can very well be covered by 4 weeks and 3 weeks of test effort in case and native development and cross platform development respectively.

So the total effort for the Enterprise Mobile App for Salesforce CRM would take:

Native app development: 3 weeks + 9 weeks + 4 weeks = 16 weeks of effort

Cross platform (MEAP) development: 3 weeks + 6 weeks + 3 weeks = 12 weeks.

Considering $100 for 1 hr, it would take 640 hrs and $64K cost +/- 20% for an app that is developed using native app development. For apps developed using cross platform app development like MEAP, it would take 480 hrs and $48K cost +/- 20%.

Open Source MEAP – Mobile Enterprise Application Platform

Explosion of Mobiles, tablets is making enterprises to act fast on mobile strategies. Rapid demand of BYOD – Bring Your Own Device, Mobilizing work force are some of the key requirements of today’s enterprises.

 

Statistics speak:

     

    1. There will be 1 billion smartphones in use worldwide by 2016, 350 million of these being used for business.5

    2. By 2016 nearly 70% of internet users will use more than five network-connected devices. There will be 10 billion internet-enabled devices globally, and smartphone traffic will grow 50 times the size it is today.

        3. The growth rate of smartphone and tablet adoption between 2007-2012 is more than four times that of personal computers between 1981-2000.

        4. Smartphones now account for half of all mobile phones used in the US.

        5. 63% of US adults regularly go online wirelessly with their mobile devices.

        6. Average smartphone data usage nearly tripled over the last year, to 150MB per month.

        Source: Antenna research

         

        While there are quite a number of frameworks and platforms for developers to achieve enterprise mobility, one can not ignore the open source power. Listed few are some of the emerging Open Source MEAP products

         

        OpenMEAP

        open source MEAP

        A Mobile Rapid Application Development environment, The OpenMEAP platform enables the existing web development teams to create applications once, which will work on every platform by using HTML5, CSS3 and JavaScript for a true device agnostic solution. Read more

         

        Convertigo

        open source MEAP

        Easily bring your IT asset on mobile devices using Open Source MEAP product – Convertigo. Connectors to a large variety of enterprise apps such as SAP, Salesforce.com, Oracle Apps, Microsoft Dynamics and many others. Read more

         

        Openmobster

        A lesser known Open Source Mobile Enterprise Backend. Read more

        15 Free Cross-Platform Mobile Application Frameworks for Rapid Development of Mobile Apps

        Phone application framework is a software framework that is designed to support development of phone applications using web technologies like HTML, CSS, JavaScript etc but the framework may leverage native phone capabilities like camera, GPS, contact list etc. The advantage of using such framework is the ease of development due to the web technologies involved and the cross platform development as these framework supports write once and build app for multiple devices. Most of these frameworks HTML5, CSS, JavaSript etc as the development language and support iOS and Android, the two popular mobile platform OS. Here are 14 such frameworks which are available under the open source license as free:

        1. PhoneGap

        image

        PhoneGap is a free and open source framework that allows you to create mobile apps using standardized web APIs for the platforms you care about. It can easily be categorized as the most popular framework that us used to develop develop app using HTML5, JavaScrip and CSS technology and also provide the ability to access low level device APIs.

        More information here.

        2. Dojo Mobile

        image

        Dojo Mobile is a world class HTML5 mobile JavaScript framework that enables rapid development of mobile web applications with a native look and feel on modern webkit-enabled mobile devices such as iPhone, iPod Touch, iPad, Android and RIM smart phones and tablets.

        More information here

        3. Appspresso

        Appspresso

        Appspresso is a hybrid cross-platform mobile framework which wraps source code developed with web technology by each mobile platform runtime and builds them into native mobile apps. Currently, developers can build Apple iOS apps, Google Android apps. Appspresso is free for individual, corporate, and commercial use.

        More information here

        4. iUI

        image

        iUI is a framework consisting of a JavaScript library, CSS, and images for developing advanced mobile webapps. It was originally made with only iPhone in mind in the first place (reason of i UI), but now supports most smartphones & tablets running iOS and Android. Its a free open soucre framework available under the MIT license.

        More information here.

        5. QuickConnectFamily Hybrid

        image

        QuickConnectFamily Hybrid is the first full framework for JavaScript, CSS, and HTML development of installable, application for iOS and Android. It lets you use your web skills to create installable mobile applications, write your iOS or Android app in HTML5, CSS3, and JavaScript and still access the device. Its a free open soucre framework available under the MIT license.

        More information here

        6. Rhodes

        Motorola Solutions

        Rhodes is an open source Ruby-based framework to rapidly build native apps for all major smartphone operating systems (iPhone, Android, RIM, Windows Mobile and Windows Phone 7). These are true native device applications (NOT mobile web apps) which work with synchronized local data and take advantage of device capabilities such as GPS, PIM contacts and calendar, camera, native mapping, push, barcode, signature capture, Bluetooth and Near Field Communications (NFC).

        More information here

        7. Appcelerator Titanium

        Appcelerator, Inc

        Appelerator Titanium lets you create rich native iOS, Android, hybrid, and mobile web apps from a single JavaScript-based SDK. The Titanium cross platform mobile application SDK empowers you to choose the right way to reach your end users on android, iOS, hybrid, and any other device. It is available under the Apache Public License v2.

        More information here

        8. iPFaces

        image

        PFaces is an open source framework developed by Edhouse for simple creation of native application for iPhone, iPod Touch, iPad, Android, BlackBerry and devices with Mobile Java (J2ME). This solution is dedicated for web developers experienced either in ASP.Net, Java or PHP.

        More information here

        9. MoSync

        image

        MoSync provides free, easy-to-use, open source tools for building cross – platform mobile apps. MoSync® Reload is a tool for the rapid development of mobile applications in HTML5 and JavaScript for iOS, Android and Windows Phone mobile platforms.

        More information here

        10. Canappi

        canappi-logo-v2b.png

        Canappi is a modern Code Generation Platform based on “mdsl”, an easy to learn and compact programming language: you can write a full cross-platform app quickly.

        More information here

        11. Mobl

        mobl

        mobl is a new free and open source language designed specially to speed up building mobile applications. Using modern HTML5 technologies, mobl offers you ability to build your mobile web applications faster than ever before and deploy on iOS, Android and other phones supporting HTML5 technologies.

        More information here

        12. Sencha

        image

        Sencha Touch, a high-performance HTML5 mobile application framework, is the cornerstone of the Sencha HTML5 platform. Built for enabling world-class user experiences, Sencha Touch is the only framework that enables developers to build fast and impressive apps that work on iOS, Android, BlackBerry, Kindle Fire, and more. It is available as GPL v3 and commercial edition.

        More information here

        13. Next

        iA

        NEXT is a free, open source Java and HTML5 framework for building Native Looking web applications for smartphones and tablets. NEXT is provided under a Apache license and is available on GitHub for forking and contribution.NEXT is device agnostic and runs on 6 different platforms: iOS, Android, BlackBerry OS6+, webOS, Samsung bada and BlackBerry PlayBook. It is completely based on web standards like HTML5 and CSS3.

        More information here

        14. Codename one

        Codename One

        Codename one is a free and open source framework that lets you easily create amazing, fast, native mobile apps using Java™ for all platforms – iOS, Android, RIM & J2ME

        More information here

        15. Kivy

        Kivy – Open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps on iOS and Android platfroms.Kivy is 100% free to use, under LGPL 3 license.

        More information here

        Related Posts with Thumbnails