SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
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/13



Monday, March 25, 13

1. Perception of the end client that wants an app developed is that if it is free or only costs a
small 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 Leader

Monday, March 25, 13

1. Hobby - learning how, part of a virtual resume, filling a need
2. 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 to
make $
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 time

Monday, March 25, 13

1. Of course the end client doesn’t care about the cost of a Mac for the developer, they expect
them 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 to
put a value on our time, so how much time might it cost to develop AppStore apps?
Some AppStore
                                 Examples
                       • Twitterrific: 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://stackoverflow.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, 13

1. Numbers are hard to come by for retail app development costs, but a few have been
shared in various forums and discussions.
2. Not all apps are the same in terms of complexity or scope. Wide range of development
cost 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 field)
                       • Potentially higher value data, services or
                         processes

Monday, March 25, 13

1. Doing custom development means in most cases that the code is handed over to the
client at the end, other than support or additional enhancements, that means that this is the
only time to make money.
2. Complexity factors play a large part in developing both enterprise and retail but with
enterprise it is much more likely that there are existing systems and processes that have to
be utilized.
3. The data being handled or services rendered have a higher likelihood of being extremely
valuable 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 Complexity

Monday, March 25, 13

1. Systems may be using legacy formats, or may not be service accessible at all. Mobile
clients do not have long running sessions. May disconnect suddenly and not be seen again
for 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 efficient for mobile
                         clients
                       • Systems may not have service front ends at
                         all
                       • Multiple systems and processes may be
                         involved
Monday, March 25, 13

1. Aside from very basic or self contained apps (brochureware, wrapping HTML) normally
need service support. This adds complexity and cost.

2. Systems may be using legacy formats, which take custom parsing on iOS. XML & JSON
well handled. Basic SOAP.

2. Mobile clients do not have long running sessions. May disconnect suddenly and not be
seen 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 and
requirements 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 specific
                         requirements (HIPAA)
                       • Corporate branding or policies

Monday, March 25, 13

1. Client may have privacy requirements imposed by internal policy, state or federal
legislation.
2. The app may handle data or IP that is critical to the operation of the company requiring
extra validation and/or protection.
3. Other domain specific requirements may come into play. Examples like HIPAA for
medical.
4. Could be very specific corporate restrictions that might have to be followed (reporting for
public 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, 13

1. Need to use secure protocols such as HTTPS, secure authentication mechanisms like
Secure ID, CRYPTOCard, certificate based, VPN standard technologies
2. Identify and limit access by app, device, user and re-check at the service level. Do not
automatically trust a connection from an app.
3. When a passcode is set, iOS automatically provides cryptographic secure storage on the
device. Consider folding passcode use into mobile policy.
4. Use the built in facilities like Keychain to store information securely. It is extremely easy
to look at the contents of apps on the device. Example next slide.
iExplorer




Monday, March 25, 13

1. Available for $34.99
2. Contrived example but real applications have been released with this type of information
stored this way.
Inspecting Files




Monday, March 25, 13

1. 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
                         yet
Monday, March 25, 13

1. Don’t go overboard with custom controls and transitions, users have a level of familiarity
with standard iOS control operations and making them learn a lot of new ones to use an app
creates difficulty.
2. Lots of custom transitions and splash screens take time, introducing delay when the user
just wants to use the app to get something done.
Lighter Branding




Monday, March 25, 13

1. Lesser level of branding. Corporate colors and logos.
Deeper Branding




Monday, March 25, 13

1. Still includes corporate color scheme and logos but also provides themed headers and
backgrounds that relate to the various industries the client has a strong presence in.
Standard Split View




Monday, March 25, 13

1. Default look of one of the standard controls. Used in the iOS Mail.app. Very plain.
Custom Split View




Monday, March 25, 13

1. 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
                         iPhone




Monday, March 25, 13

1. Navigation and layout can change, sometimes drastically between devices, especially when
moving from the iPad to the iPhone, however even though the iPad mini has the same
resolution as the non-retina iPad the smaller physical screen may require design adjustments
to 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


                                           VS




Monday, March 25, 13

1. No longer have a precision pointing device to select controls or portions of the screen.
iOS takes the surface area contacted by the finger and “interprets” where the user touched.
2. Makes densely packed interfaces hard to use, causes “miss-taps”
Don’t Crowd




Monday, March 25, 13

1. Example of interface elements too close together, end up bringing up search when trying
to tap buttons below to change the view type.
QA & Testing

                                                 How’s Your Testing?




                       iPad photo by: mauritsonline http://www.flickr.com/photos/mauritsonline/

Monday, March 25, 13

1. What’s the testing strategy? Good to have user testing and feedback but should not rely
exclusively on it. Automated testing often left out or overlooked.
2. iOS provides facilities for logic unit testing and application unit testing. Provides
repeatable and reliable safety check when modifications and enhancements made to the
code.
3. More critical for important information or process flows that the app may be involved in
when used in an enterprise setting.
External System
                               Integration
                       • Payment gateways
                       • Reservation systems
                       • B2B integration with partners
                       • Social networking or even private
                         collaboration sites



Monday, March 25, 13

1. Not unique to enterprise software but not necessarily excluded either. Each integration
point requires design, development and testing.
Support & Maintenance
                       • Applications need ongoing care and
                         maintenance
                       • Apple changes iOS behavior and interfaces,
                         sometimes intentionally
                       • Difficult to stay on older versions of iOS
                       • Retire support for older versions of iOS to
                         reduce testing and development complexity


Monday, March 25, 13

1. Need to renew provisioning once a year
2. Apple changes even documented interface behavior (deprecation) or unintentionally
through bugs. These need to be fixed in order for the app to continue to work on newer
devices.
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 put
images on.
4. The more versions of iOS supported the more complexity is added to the development
and testing effort. Older versions also introduce the possibility of older hardware with less
resources 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 factors


Monday, March 25, 13

1. Some potential classifications 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 even
double 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 as
off-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 factors


Monday, March 25, 13

1. Starts to become a lot more client specific, making generalizations more difficult. The
complexity factors have much more effect.
Example App Types &
                              Ranges
                       • Large complex enterprise app. Multiple
                         integration points and process flows across
                         the entire client. All client user base,
                         including customers with deep branding.
                         Enterprise reliability and scalability. Domain
                         specific security and requirements.
                         Deployment/Mobile management
                         assistance. $150k and up


Monday, March 25, 13

1. Extremely client and problem domain specific. Very difficult to approach in generalities.
2. Usually very good candidate projects for some of the cost control recommendations
coming 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
                         release


Monday, March 25, 13

1. Hard to pin down everything at the beginning but need to have some idea of major
direction and capabilities.
2. Possibly even more important to have an idea of what you DON’T want it to do. Helps
keep the project from becoming a “kitchen sink” affair.
3. Most important, get intermediate versions as soon as you can. Being able to see and
touch the app will definitely 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. Get
something 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 apply


Monday, March 25, 13

1. A lot of what we’ve talked about applies to multiple types of custom software
development, desktop, enterprise web development, etc.
2. The new platform and medium provide additional challenges and opportunities but don’t
want to get carried away in the rush.
Questions?


                       • Q & A and Discussion



Monday, March 25, 13
Contact Info

                       • steve.mccoole@objectpartners.com
                       • Twitter: smccoole
                       • www.objectpartners.com/social/weblog


Monday, March 25, 13

Weitere ähnliche Inhalte

Was ist angesagt?

Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...
Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...
Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...
InSync2011
 
Impact 2014 The Mobile Enterprise
Impact 2014 The Mobile EnterpriseImpact 2014 The Mobile Enterprise
Impact 2014 The Mobile Enterprise
Andrew Coleman
 
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT Group
 

Was ist angesagt? (20)

Infrastructure Fitness and Design Simplicity for IBM Mobile Connect
Infrastructure Fitness and Design Simplicity for IBM Mobile ConnectInfrastructure Fitness and Design Simplicity for IBM Mobile Connect
Infrastructure Fitness and Design Simplicity for IBM Mobile Connect
 
Considering The Cloud? Thinking Beyond The Readme File
Considering The Cloud? Thinking Beyond The Readme FileConsidering The Cloud? Thinking Beyond The Readme File
Considering The Cloud? Thinking Beyond The Readme File
 
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
Tip from IBM Connect 2014: What You Shouldn't Care About With Cloud, But Do A...
 
Lotus Notes Mobile Application Development Using XPages
Lotus Notes Mobile Application Development Using XPagesLotus Notes Mobile Application Development Using XPages
Lotus Notes Mobile Application Development Using XPages
 
Innovate 2013 session 1243 mobile testing.v3
Innovate 2013   session 1243 mobile testing.v3Innovate 2013   session 1243 mobile testing.v3
Innovate 2013 session 1243 mobile testing.v3
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...IBM Connect 2016 - Don't give up on Domino!Introducing Darwino: A New Lifeli...
IBM Connect 2016 - Don't give up on Domino! Introducing Darwino: A New Lifeli...
 
Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...
Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...
Developer and Fusion Middleware 1 _ Christian Ledwidge _ Application Performa...
 
Become an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 MinutesBecome an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 Minutes
 
Sametime 9 - The Best Audio and Video Meetings
Sametime 9 - The Best Audio and Video MeetingsSametime 9 - The Best Audio and Video Meetings
Sametime 9 - The Best Audio and Video Meetings
 
Webinar on Enterprise Mobility Strategy
Webinar on Enterprise Mobility StrategyWebinar on Enterprise Mobility Strategy
Webinar on Enterprise Mobility Strategy
 
Collaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile SoftwareCollaborative lifecycle development for Mobile Software
Collaborative lifecycle development for Mobile Software
 
Impact 2014 The Mobile Enterprise
Impact 2014 The Mobile EnterpriseImpact 2014 The Mobile Enterprise
Impact 2014 The Mobile Enterprise
 
Build and Connect Enterprise Mobile Applications from developerWorks Live!
Build and Connect Enterprise Mobile Applications from developerWorks Live! Build and Connect Enterprise Mobile Applications from developerWorks Live!
Build and Connect Enterprise Mobile Applications from developerWorks Live!
 
PCTY 2012, Developing for Mobile Enterprise Application Platform v. Peter Eibak
PCTY 2012, Developing for Mobile Enterprise Application Platform v. Peter EibakPCTY 2012, Developing for Mobile Enterprise Application Platform v. Peter Eibak
PCTY 2012, Developing for Mobile Enterprise Application Platform v. Peter Eibak
 
Build Smarter User Interfaces for Legacy Applications with IBM Rational Host ...
Build Smarter User Interfaces for Legacy Applications with IBM Rational Host ...Build Smarter User Interfaces for Legacy Applications with IBM Rational Host ...
Build Smarter User Interfaces for Legacy Applications with IBM Rational Host ...
 
Lync mobility accross devices
Lync mobility accross devicesLync mobility accross devices
Lync mobility accross devices
 
Enpowering your workforce to work anywhere anytime
Enpowering your workforce to work anywhere anytimeEnpowering your workforce to work anywhere anytime
Enpowering your workforce to work anywhere anytime
 
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
We4IT lcty 2013 - captain mobility - mobile domino applications offline capab...
 
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
XPages: You Know the 'How to'. Now Learn the 'Why and What'.XPages: You Know the 'How to'. Now Learn the 'Why and What'.
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
 

Andere mochten auch

Guy Thier Keynote Presentation
Guy Thier Keynote PresentationGuy Thier Keynote Presentation
Guy Thier Keynote Presentation
Mobile March
 
Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March Olson presentation 2012
Mobile March Olson presentation 2012
Mobile March
 
Continuous Integration for iOS Developer
Continuous Integration for iOS DeveloperContinuous Integration for iOS Developer
Continuous Integration for iOS Developer
Sven Günther
 

Andere mochten auch (14)

Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile march2012 android101-pt2
Mobile march2012 android101-pt2
 
Guy Thier Keynote Presentation
Guy Thier Keynote PresentationGuy Thier Keynote Presentation
Guy Thier Keynote Presentation
 
Mobile march2012 android101-pt1
Mobile march2012 android101-pt1Mobile march2012 android101-pt1
Mobile march2012 android101-pt1
 
Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March Olson presentation 2012
Mobile March Olson presentation 2012
 
Beginning i os part 2 sam kirchmeier
Beginning i os part 2   sam kirchmeierBeginning i os part 2   sam kirchmeier
Beginning i os part 2 sam kirchmeier
 
Beatles&webdesign
Beatles&webdesignBeatles&webdesign
Beatles&webdesign
 
Bannin mobile march_2012_public
Bannin mobile march_2012_publicBannin mobile march_2012_public
Bannin mobile march_2012_public
 
Mobile marketing meltdown
Mobile marketing meltdownMobile marketing meltdown
Mobile marketing meltdown
 
Olson mobile march presentation 2012 03-16
Olson mobile march presentation 2012 03-16Olson mobile march presentation 2012 03-16
Olson mobile march presentation 2012 03-16
 
Unity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisUnity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh Ruis
 
The Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkThe Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-Spark
 
Automated interactive testing for i os
Automated interactive testing for i osAutomated interactive testing for i os
Automated interactive testing for i os
 
IP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesIP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest Grumbles
 
Continuous Integration for iOS Developer
Continuous Integration for iOS DeveloperContinuous Integration for iOS Developer
Continuous Integration for iOS Developer
 

Ähnlich wie Developing Custom iOs Applications for Enterprise

Webinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devicesWebinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devices
Perfecto Mobile
 

Ähnlich wie Developing Custom iOs Applications for Enterprise (20)

2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
 
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobile
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobileMobilizing Enterprise Data - Strategies to succeed in enterprise mobile
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobile
 
How to Overcome the Challenges of Cloud Application
How to Overcome the Challenges of Cloud ApplicationHow to Overcome the Challenges of Cloud Application
How to Overcome the Challenges of Cloud Application
 
Data driven approaches in a technology startup
Data driven approaches in a technology startupData driven approaches in a technology startup
Data driven approaches in a technology startup
 
Microsoft Power Platform Governance with Runpipe
Microsoft Power Platform Governance with RunpipeMicrosoft Power Platform Governance with Runpipe
Microsoft Power Platform Governance with Runpipe
 
infox technologies
infox technologiesinfox technologies
infox technologies
 
Cloud Scars: Lessons from the Enterprise Pioneers
Cloud Scars: Lessons from the Enterprise PioneersCloud Scars: Lessons from the Enterprise Pioneers
Cloud Scars: Lessons from the Enterprise Pioneers
 
Cloud scars: Lessons from the Enterprise Pioneers
Cloud scars: Lessons from the Enterprise PioneersCloud scars: Lessons from the Enterprise Pioneers
Cloud scars: Lessons from the Enterprise Pioneers
 
Cloud technology for msme sector sujit panigrahi v2
Cloud technology for msme sector   sujit panigrahi v2Cloud technology for msme sector   sujit panigrahi v2
Cloud technology for msme sector sujit panigrahi v2
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
 
Principles of responsible suppliers
Principles of responsible suppliersPrinciples of responsible suppliers
Principles of responsible suppliers
 
A step-by-step guide to mobile application development strategy
A step-by-step guide to mobile application development strategyA step-by-step guide to mobile application development strategy
A step-by-step guide to mobile application development strategy
 
CIO 101 for Entrepreneurs (2016)
CIO 101 for Entrepreneurs (2016)CIO 101 for Entrepreneurs (2016)
CIO 101 for Entrepreneurs (2016)
 
FedRAMP Is Broken (And here's how to fix it)
FedRAMP Is Broken (And here's how to fix it)FedRAMP Is Broken (And here's how to fix it)
FedRAMP Is Broken (And here's how to fix it)
 
Cloud Applications Management Nirvana
Cloud Applications Management NirvanaCloud Applications Management Nirvana
Cloud Applications Management Nirvana
 
3433 IBM messaging security why securing your environment is important-feb2...
3433   IBM messaging security why securing your environment is important-feb2...3433   IBM messaging security why securing your environment is important-feb2...
3433 IBM messaging security why securing your environment is important-feb2...
 
IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...
 
Webinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devicesWebinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devices
 
QB Express Monthly webinar
QB Express  Monthly webinarQB Express  Monthly webinar
QB Express Monthly webinar
 
Mobilizing SharePoint - August 1 2013
Mobilizing SharePoint - August 1 2013Mobilizing SharePoint - August 1 2013
Mobilizing SharePoint - August 1 2013
 

Mehr von Mobile March

Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsUsing Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Mobile March
 
Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication
Mobile March
 

Mehr von Mobile March (16)

Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
Cross-Platform Mobile Development with PhoneGap-Vince BullingerCross-Platform Mobile Development with PhoneGap-Vince Bullinger
Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
 
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
 
Building Wearables-Kristina Durivage
Building Wearables-Kristina DurivageBuilding Wearables-Kristina Durivage
Building Wearables-Kristina Durivage
 
LiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenLiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel Gerdeen
 
The Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidThe Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew David
 
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeUsing Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
 
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsUsing Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
 
Introduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroIntroduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason Shapiro
 
Product Management for Your App
Product Management for Your AppProduct Management for Your App
Product Management for Your App
 
Robotium Tutorial
Robotium TutorialRobotium Tutorial
Robotium Tutorial
 
Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication
 
Beginningi os part1-bobmccune
Beginningi os part1-bobmccuneBeginningi os part1-bobmccune
Beginningi os part1-bobmccune
 
Android ui patterns
Android ui patternsAndroid ui patterns
Android ui patterns
 
Windows phone 7
Windows phone 7Windows phone 7
Windows phone 7
 
Mmtc2012 app-full
Mmtc2012 app-fullMmtc2012 app-full
Mmtc2012 app-full
 
Get your liaise on
Get your liaise onGet your liaise on
Get your liaise on
 

Developing Custom iOs Applications for Enterprise

  • 1. 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
  • 2. 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/13 Monday, March 25, 13 1. Perception of the end client that wants an app developed is that if it is free or only costs a small 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.
  • 3. Why so low? • Hobby or experimental • Volume sales • In-app purchase • Loss Leader Monday, March 25, 13 1. Hobby - learning how, part of a virtual resume, filling a need 2. 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 to make $
  • 4. 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 time Monday, March 25, 13 1. Of course the end client doesn’t care about the cost of a Mac for the developer, they expect them 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 to put a value on our time, so how much time might it cost to develop AppStore apps?
  • 5. Some AppStore Examples • Twitterrific: 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://stackoverflow.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, 13 1. Numbers are hard to come by for retail app development costs, but a few have been shared in various forums and discussions. 2. Not all apps are the same in terms of complexity or scope. Wide range of development cost is to be expected for retail and enterprise.
  • 6. Why is Enterprise Different? • Revenue Model - App delivery, possible support and on-going enhancements • Wide complexity range • Less opportunity to develop from scratch (green field) • Potentially higher value data, services or processes Monday, March 25, 13 1. Doing custom development means in most cases that the code is handed over to the client at the end, other than support or additional enhancements, that means that this is the only time to make money. 2. Complexity factors play a large part in developing both enterprise and retail but with enterprise it is much more likely that there are existing systems and processes that have to be utilized. 3. The data being handled or services rendered have a higher likelihood of being extremely valuable to the client. Lost or corrupted data, security breaches, etc are far more harmful.
  • 7. Complexity Factors • Integration with existing systems • Specialized requirements or restrictions • Security • Customized Controls • High Design Complexity Monday, March 25, 13 1. Systems may be using legacy formats, or may not be service accessible at all. Mobile clients do not have long running sessions. May disconnect suddenly and not be seen again for hours/days. Extra costs involved in developing/enhancing services for mobile.
  • 8. Complexity Factors 2 • QA and Testing • External service integration (payment gateways, geo location, B2B partners, social networking) Monday, March 25, 13
  • 9. Service Integration • The App isn’t always the whole story • Legacy formats • Services may not be efficient for mobile clients • Systems may not have service front ends at all • Multiple systems and processes may be involved Monday, March 25, 13 1. Aside from very basic or self contained apps (brochureware, wrapping HTML) normally need service support. This adds complexity and cost. 2. Systems may be using legacy formats, which take custom parsing on iOS. XML & JSON well handled. Basic SOAP. 2. Mobile clients do not have long running sessions. May disconnect suddenly and not be seen 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 and requirements unfamiliar to the client. Additional infrastructure and expertise may be needed, adding to the cost.
  • 10. Requirements & Restrictions • Privacy requirements • Sensitive corporate data or IP • Client business domain specific requirements (HIPAA) • Corporate branding or policies Monday, March 25, 13 1. Client may have privacy requirements imposed by internal policy, state or federal legislation. 2. The app may handle data or IP that is critical to the operation of the company requiring extra validation and/or protection. 3. Other domain specific requirements may come into play. Examples like HIPAA for medical. 4. Could be very specific corporate restrictions that might have to be followed (reporting for public companies, etc.)
  • 11. 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, 13 1. Need to use secure protocols such as HTTPS, secure authentication mechanisms like Secure ID, CRYPTOCard, certificate based, VPN standard technologies 2. Identify and limit access by app, device, user and re-check at the service level. Do not automatically trust a connection from an app. 3. When a passcode is set, iOS automatically provides cryptographic secure storage on the device. Consider folding passcode use into mobile policy. 4. Use the built in facilities like Keychain to store information securely. It is extremely easy to look at the contents of apps on the device. Example next slide.
  • 12. iExplorer Monday, March 25, 13 1. Available for $34.99 2. Contrived example but real applications have been released with this type of information stored this way.
  • 13. Inspecting Files Monday, March 25, 13 1. 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.
  • 14. 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 yet Monday, March 25, 13 1. Don’t go overboard with custom controls and transitions, users have a level of familiarity with standard iOS control operations and making them learn a lot of new ones to use an app creates difficulty. 2. Lots of custom transitions and splash screens take time, introducing delay when the user just wants to use the app to get something done.
  • 15. Lighter Branding Monday, March 25, 13 1. Lesser level of branding. Corporate colors and logos.
  • 16. Deeper Branding Monday, March 25, 13 1. Still includes corporate color scheme and logos but also provides themed headers and backgrounds that relate to the various industries the client has a strong presence in.
  • 17. Standard Split View Monday, March 25, 13 1. Default look of one of the standard controls. Used in the iOS Mail.app. Very plain.
  • 18. Custom Split View Monday, March 25, 13 1. Standard controls can be re-skinned to provide enhanced visuals and branding.
  • 19. Design Complexity • Screen navigation and layout • Think about navigation and transitions • Portrait vs Landscape, iPad vs mini vs iPhone Monday, March 25, 13 1. Navigation and layout can change, sometimes drastically between devices, especially when moving from the iPad to the iPhone, however even though the iPad mini has the same resolution as the non-retina iPad the smaller physical screen may require design adjustments to 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.
  • 20. Design for Touch VS Monday, March 25, 13 1. No longer have a precision pointing device to select controls or portions of the screen. iOS takes the surface area contacted by the finger and “interprets” where the user touched. 2. Makes densely packed interfaces hard to use, causes “miss-taps”
  • 21. Don’t Crowd Monday, March 25, 13 1. Example of interface elements too close together, end up bringing up search when trying to tap buttons below to change the view type.
  • 22. QA & Testing How’s Your Testing? iPad photo by: mauritsonline http://www.flickr.com/photos/mauritsonline/ Monday, March 25, 13 1. What’s the testing strategy? Good to have user testing and feedback but should not rely exclusively on it. Automated testing often left out or overlooked. 2. iOS provides facilities for logic unit testing and application unit testing. Provides repeatable and reliable safety check when modifications and enhancements made to the code. 3. More critical for important information or process flows that the app may be involved in when used in an enterprise setting.
  • 23. External System Integration • Payment gateways • Reservation systems • B2B integration with partners • Social networking or even private collaboration sites Monday, March 25, 13 1. Not unique to enterprise software but not necessarily excluded either. Each integration point requires design, development and testing.
  • 24. Support & Maintenance • Applications need ongoing care and maintenance • Apple changes iOS behavior and interfaces, sometimes intentionally • Difficult to stay on older versions of iOS • Retire support for older versions of iOS to reduce testing and development complexity Monday, March 25, 13 1. Need to renew provisioning once a year 2. Apple changes even documented interface behavior (deprecation) or unintentionally through bugs. These need to be fixed in order for the app to continue to work on newer devices. 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 put images on. 4. The more versions of iOS supported the more complexity is added to the development and testing effort. Older versions also introduce the possibility of older hardware with less resources than current models making feature parity harder.
  • 25. 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 factors Monday, March 25, 13 1. Some potential classifications 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 even double 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 as off-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.
  • 26. 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 factors Monday, March 25, 13 1. Starts to become a lot more client specific, making generalizations more difficult. The complexity factors have much more effect.
  • 27. Example App Types & Ranges • Large complex enterprise app. Multiple integration points and process flows across the entire client. All client user base, including customers with deep branding. Enterprise reliability and scalability. Domain specific security and requirements. Deployment/Mobile management assistance. $150k and up Monday, March 25, 13 1. Extremely client and problem domain specific. Very difficult to approach in generalities. 2. Usually very good candidate projects for some of the cost control recommendations coming up next like multi phase approach.
  • 28. 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 release Monday, March 25, 13 1. Hard to pin down everything at the beginning but need to have some idea of major direction and capabilities. 2. Possibly even more important to have an idea of what you DON’T want it to do. Helps keep the project from becoming a “kitchen sink” affair. 3. Most important, get intermediate versions as soon as you can. Being able to see and touch the app will definitely 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. Get something useful integrated and working and build upward from there.
  • 29. 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 apply Monday, March 25, 13 1. A lot of what we’ve talked about applies to multiple types of custom software development, desktop, enterprise web development, etc. 2. The new platform and medium provide additional challenges and opportunities but don’t want to get carried away in the rush.
  • 30. Questions? • Q & A and Discussion Monday, March 25, 13
  • 31. Contact Info • steve.mccoole@objectpartners.com • Twitter: smccoole • www.objectpartners.com/social/weblog Monday, March 25, 13