Developing Custom iOS Applications for Enterprise Explaining the perceived value gap between retail app prices and customer Enterprise app development costs Steve McCoole, Principal Consultant Mobile Development Object Partners Inc.Monday, March 25, 13
Why Speak On This? • Average App Price: $1.58 • Average Game Price: $0.89 • Average Overall Price: $1.48 • 55.97% of current Apps are free. * Statistics from 148apps.biz 3/14/13Monday, March 25, 131. Perception of the end client that wants an app developed is that if it is free or only costs asmall amount, that it must not have taken a lot of time or expense to develop.2. Let’s quickly examine why apps are released for free or for a low cost.
Why so low? • Hobby or experimental • Volume sales • In-app purchase • Loss LeaderMonday, March 25, 131. Hobby - learning how, part of a virtual resume, ﬁlling a need2. Volume/In app - sell a LOT of them or a LOT of in app purchases (games, docs, subs)3. Loss Leader - drive customers to other products or services (big retail), not meant tomake $
What is the minimum? • Gold Rush - low entry barrier • Mac for around $599-$1500 • $99/year App Store developer license, $299/year Enterprise license • If you don’t put a value on timeMonday, March 25, 131. Of course the end client doesn’t care about the cost of a Mac for the developer, they expectthem to have it already and its cost is not passed onto the client.2. But the premise here is that we make money by developing custom software so we have toput a value on our time, so how much time might it cost to develop AppStore apps?
Some AppStore Examples • Twitterriﬁc: Code $200,000; Design $34,000; PM/Testing/Equipment $16,000 • Barack Obama app: $50,000-$150,000 • TechCrunch Poll of 96 Developers: Avg $6,453, several omitted development costs and did not include personal time. Safe to assume 5-10x when using a contracted team. http://stackoverﬂow.com/questions/209170/how-much-does-it-cost-to-develop-an-iphone-application http://techcrunch.com/2010/05/16/iphone-app-sales-exposed/Monday, March 25, 131. Numbers are hard to come by for retail app development costs, but a few have beenshared in various forums and discussions.2. Not all apps are the same in terms of complexity or scope. Wide range of developmentcost is to be expected for retail and enterprise.
Why is Enterprise Different? • Revenue Model - App delivery, possible support and on-going enhancements • Wide complexity range • Less opportunity to develop from scratch (green ﬁeld) • Potentially higher value data, services or processesMonday, March 25, 131. Doing custom development means in most cases that the code is handed over to theclient at the end, other than support or additional enhancements, that means that this is theonly time to make money.2. Complexity factors play a large part in developing both enterprise and retail but withenterprise it is much more likely that there are existing systems and processes that have tobe utilized.3. The data being handled or services rendered have a higher likelihood of being extremelyvaluable to the client. Lost or corrupted data, security breaches, etc are far more harmful.
Complexity Factors • Integration with existing systems • Specialized requirements or restrictions • Security • Customized Controls • High Design ComplexityMonday, March 25, 131. Systems may be using legacy formats, or may not be service accessible at all. Mobileclients do not have long running sessions. May disconnect suddenly and not be seen againfor hours/days. Extra costs involved in developing/enhancing services for mobile.
Complexity Factors 2 • QA and Testing • External service integration (payment gateways, geo location, B2B partners, social networking)Monday, March 25, 13
Service Integration • The App isn’t always the whole story • Legacy formats • Services may not be efﬁcient for mobile clients • Systems may not have service front ends at all • Multiple systems and processes may be involvedMonday, March 25, 131. Aside from very basic or self contained apps (brochureware, wrapping HTML) normallyneed service support. This adds complexity and cost.2. Systems may be using legacy formats, which take custom parsing on iOS. XML & JSONwell handled. Basic SOAP.2. Mobile clients do not have long running sessions. May disconnect suddenly and not beseen again for hours/days. Extra costs involved in developing/enhancing services for mobile.3. Systems may not have had service access developed. May be new technology andrequirements unfamiliar to the client. Additional infrastructure and expertise may be needed,adding to the cost.
Requirements & Restrictions • Privacy requirements • Sensitive corporate data or IP • Client business domain speciﬁc requirements (HIPAA) • Corporate branding or policiesMonday, March 25, 131. Client may have privacy requirements imposed by internal policy, state or federallegislation.2. The app may handle data or IP that is critical to the operation of the company requiringextra validation and/or protection.3. Other domain speciﬁc requirements may come into play. Examples like HIPAA formedical.4. Could be very speciﬁc corporate restrictions that might have to be followed (reporting forpublic companies, etc.)
Security • Service Access?Internal network only or external and mobile access? • Device owner has control, do not automatically trust what is sent • iOS secures storage when passcode set • Use iOS facilities to store information securely!Monday, March 25, 131. Need to use secure protocols such as HTTPS, secure authentication mechanisms likeSecure ID, CRYPTOCard, certiﬁcate based, VPN standard technologies2. Identify and limit access by app, device, user and re-check at the service level. Do notautomatically trust a connection from an app.3. When a passcode is set, iOS automatically provides cryptographic secure storage on thedevice. Consider folding passcode use into mobile policy.4. Use the built in facilities like Keychain to store information securely. It is extremely easyto look at the contents of apps on the device. Example next slide.
iExplorerMonday, March 25, 131. Available for $34.992. Contrived example but real applications have been released with this type of informationstored this way.
Inspecting FilesMonday, March 25, 131. Easy to do if new to iOS development and not familiar with the Keychain APIs.2. All factors that add to complexity and cost at the app and the service side.
Custom vs Standard Controls • How deeply branded or customized will the controls and views be? • Default controls provide tint and skinning ability • Extremely deep branding adds design and development complexity • Custom controls and transitions add more yetMonday, March 25, 131. Don’t go overboard with custom controls and transitions, users have a level of familiaritywith standard iOS control operations and making them learn a lot of new ones to use an appcreates difficulty.2. Lots of custom transitions and splash screens take time, introducing delay when the userjust wants to use the app to get something done.
Lighter BrandingMonday, March 25, 131. Lesser level of branding. Corporate colors and logos.
Deeper BrandingMonday, March 25, 131. Still includes corporate color scheme and logos but also provides themed headers andbackgrounds that relate to the various industries the client has a strong presence in.
Standard Split ViewMonday, March 25, 131. Default look of one of the standard controls. Used in the iOS Mail.app. Very plain.
Custom Split ViewMonday, March 25, 131. Standard controls can be re-skinned to provide enhanced visuals and branding.
Design Complexity • Screen navigation and layout • Think about navigation and transitions • Portrait vs Landscape, iPad vs mini vs iPhoneMonday, March 25, 131. Navigation and layout can change, sometimes drastically between devices, especially whenmoving from the iPad to the iPhone, however even though the iPad mini has the sameresolution as the non-retina iPad the smaller physical screen may require design adjustmentsto the user experience.2. Don’t want to scroll in most cases, clear gesture based hits like the “ dot dot dot “carousel metaphor.3. Make it obvious what parts of the screen are “active”4. Can’t always just turn a layout on its side when going from portrait to landscape.
Design for Touch VSMonday, March 25, 131. No longer have a precision pointing device to select controls or portions of the screen.iOS takes the surface area contacted by the ﬁnger and “interprets” where the user touched.2. Makes densely packed interfaces hard to use, causes “miss-taps”
Don’t CrowdMonday, March 25, 131. Example of interface elements too close together, end up bringing up search when tryingto tap buttons below to change the view type.
QA & Testing How’s Your Testing? iPad photo by: mauritsonline http://www.ﬂickr.com/photos/mauritsonline/Monday, March 25, 131. What’s the testing strategy? Good to have user testing and feedback but should not relyexclusively on it. Automated testing often left out or overlooked.2. iOS provides facilities for logic unit testing and application unit testing. Providesrepeatable and reliable safety check when modiﬁcations and enhancements made to thecode.3. More critical for important information or process ﬂows that the app may be involved inwhen used in an enterprise setting.
External System Integration • Payment gateways • Reservation systems • B2B integration with partners • Social networking or even private collaboration sitesMonday, March 25, 131. Not unique to enterprise software but not necessarily excluded either. Each integrationpoint requires design, development and testing.
Support & Maintenance • Applications need ongoing care and maintenance • Apple changes iOS behavior and interfaces, sometimes intentionally • Difﬁcult to stay on older versions of iOS • Retire support for older versions of iOS to reduce testing and development complexityMonday, March 25, 131. Need to renew provisioning once a year2. Apple changes even documented interface behavior (deprecation) or unintentionallythrough bugs. These need to be ﬁxed in order for the app to continue to work on newerdevices.3. Apple makes it hard to stay on old versions. Newer models ship with the latest version.Apple closes the signing window on older releases making it difficult to restore them or putimages on.4. The more versions of iOS supported the more complexity is added to the developmentand testing effort. Older versions also introduce the possibility of older hardware with lessresources than current models making feature parity harder.
Example App Types & Ranges • Self-contained app. No integration, custom controls, minimal design: $10-20k +/- complexity factors • Simple enterprise app. Limited number of integration points, standard formats and protocols. Light customization and branding. Security, user interface & testing: $50k +/- complexity factorsMonday, March 25, 131. Some potential classiﬁcations for projects and possible ranges.2. Need at least one Mac for App Signing and the $299/year license.3. Can vary widely due to complexity factors. Especially on the lower end. Costs can evendouble if you have a lot of ambiguity.4. Assuming rates for skilled multi-discipline development resources that can handle app,services, assistance in deployment planning, etc. Can use less expensive resources such asoff-shore but more responsibility shifts to you. Less likely to have multi-discipline skill sets.More risk as the complexity factor of the projects rise.
Example App Types & Ranges • Medium enterprise application. Multiple integration points, deeper branding and design for client customer facing interaction, enhanced user experience, scalability. Wider range of users. Integration in enterprise processes. $100k +/- complexity factorsMonday, March 25, 131. Starts to become a lot more client speciﬁc, making generalizations more difficult. Thecomplexity factors have much more effect.
Example App Types & Ranges • Large complex enterprise app. Multiple integration points and process ﬂows across the entire client. All client user base, including customers with deep branding. Enterprise reliability and scalability. Domain speciﬁc security and requirements. Deployment/Mobile management assistance. $150k and upMonday, March 25, 131. Extremely client and problem domain speciﬁc. Very difficult to approach in generalities.2. Usually very good candidate projects for some of the cost control recommendationscoming up next like multi phase approach.
Controlling Cost • Know what you want (as much as possible) • Know what you don’t want • Get intermediate versions often, review and revise • Multiple versions rather than one big releaseMonday, March 25, 131. Hard to pin down everything at the beginning but need to have some idea of majordirection and capabilities.2. Possibly even more important to have an idea of what you DON’T want it to do. Helpskeep the project from becoming a “kitchen sink” affair.3. Most important, get intermediate versions as soon as you can. Being able to see andtouch the app will deﬁnitely have a large impact on what you want to do going forward!4. Don’t try for absolutely everything at once, especially if mobile is new to the client. Getsomething useful integrated and working and build upward from there.
Doesn’t this apply to non-mobile? • Yes, actually it does! • The “newness” of mobile sometimes distracts from what we know of good practice • Exciting capabilities and new ways to work but the basics still applyMonday, March 25, 131. A lot of what we’ve talked about applies to multiple types of custom softwaredevelopment, desktop, enterprise web development, etc.2. The new platform and medium provide additional challenges and opportunities but don’twant to get carried away in the rush.
Questions? • Q & A and DiscussionMonday, March 25, 13
Contact Info • firstname.lastname@example.org • Twitter: smccoole • www.objectpartners.com/social/weblogMonday, March 25, 13