Consumerization of IT: A perspective and recommendations
-
Upload
ramarao-kanneganti -
Category
Technology
-
view
244 -
download
1
description
Transcript of Consumerization of IT: A perspective and recommendations
Consumerization of IT
Dr. Rama KannegantiHCL Fellow
http://www.kanneganti.com
Core theme
• What is consumerization of IT?• How does it effect IT departments?• What should the IT departments do?
Q: How were applications being developed by Enterprise IT departments?
To understand how consumerization is impacting IT, let us see how IT develops applications in the enterprise.
Enterprise Apps for people: A brief Introduction
1950’s
• IT gave businesses growth
• IT supported large scale information processing
1980’s
• IT started large scale automation of business activities
• Ubiquity of client server computing
• Rise of Object Oriented systems
1990’s
• IT started with packaged apps
• 94% of custom apps failed
• Rise of ERP systems
2000’s
• Internet era• Integration as
the main theme
• ERP upgrades leading to rise of BPM
• Rule Engines
The focus for IT has been on business and business support. People are incidental – that is, applications are developed for functionality.
Typical application development in the enterprises
• Map the enterprise need to a technical capability• Establish a business case with ROI plan• Can be business need or business strategy driven
EA Planning
• See if there is a packaged application• Plan the customization per requirements and strategy• Understand where custom app development is needed
Technology planning
• Use the technology standards to choose a stack• Choose a methodology that suits the team and the
problem• Develop/customize the application
Development
• Make it a part of the offering: (Desktop standard deployment)
• If web, make it a part of the portal• Publicize through standard change management processes
Delivery
FOCUS on the user’s stated needs
Tends to be large and complex applications
There are no simple apps; every application is assimilated into a large application as a an additional requirement.
The summary is that process is tilted towards applications that are built to last. “big industry approach”
Enterprise IT apps: Characteristics Applications take long time to develop
Typically they are large, and serve long term needs of the enterprise
Applications serve common denominator They address most common needs
Applications lag behind the market needs Do not handle new technologies well – go for longevity
Applications, developed based on consensus needs, lack focus They do too many things
Applications are expensive to develop Compared to consumer apps
Q: How were applications developed in the consumer world?
The consumer world is different; let us see how those applications were developed historically.
Consumer application development through history
Desktop PC era
• Purpose: Mostly towards PC users and hobbyists
• Chief Characteristics: Mostly stand alone. Focus on using the machine the best.
• Distribution mechanism: Via disks, magazines, and FTP sites
Internet era
• Purpose: General users of internet
• Chief Characteristic: Leverages information in the world. Focus on transactional world
• Distribution Mechanism: Internet and search engines
App era
• Purpose: All users• Chief Characteristic:
Integration of physical, personal, social, and location information and transactional world.
• Distribution mechanism: Internet and app stores
Consumer application development: Salient facts
• Based on the user needs• Addressing long tail• Limited focus: Do one thing well
Which apps are developed?
• Aligning with the industry leader (Example: Microsoft, Apple, Google, Facebook etc.)
• Built on an API or SDK or eco-system
How do they develop apps?
• Often controlled by the platform or eco-system provider
• Need to upgrade and support if the platform evolves
How are the apps delivered?
FOCUS on the end result not on the user’s stated needs
User’s inferred needs also a part
User needs are subordinate to end result
Prune the stated needs to build focus
The summary is that process is tilted towards applications that are built to change. Also, focus on specific needs of people.
Consumer Applications: Salient facets
Only interesting applications get developed Developers are impatient with problems they do not
understand
All user needs may not be satisfied Focus only on the larger segment of users
Replication of capabilities in many applications => Waste of energy in solving the same problems Think how many account balance apps will be there!
Lack of uniformity in solutions (depends on the platform) Need for control and governance on the applications
11
Consumerization: Why should the IT care?
Reason 1: In some industries, IT is forced to deal with consumers
• In several service industries like retail, retail banking, entertainment, and health, IT department is forced to work with consumers, whose ways of working and expectations
• Examples: Customer facing websites; customer communications; gathering data from customer systems; marketing campaigns; customer support; innovative apps to encourage customer advocacy; customer driven information gathering …
Reason 2: Internal users are behaving like consumers
Aging workforce means new incoming
workforce are used to consumer technologies
Existing users use consumer technologies to conduct activities on
the devices and the net.
1. #1 web site for spending time for people: Facebook.
2. Most people discover service outlets using apps like Yelp.
3. Consumer technologies are shaping the way users use technology.
Reason 3: Consumer technologies are becoming cheaper than enterprise technologies
• Public cloud is cheaper (often) than internal machines• Compute servers (open computer servers etc) are cheaper
than commercial equivalents
Consumer hardware is becoming cheaper
• Most of the development tools are focused on consumer technologies.
• Open source is prevalent on the consumer tech -- the frameworks and tools favor consumer focused development
Dev tools are cheaper for consumers
• Innovations in interactions, usage patterns and best practices are driven by consumer technologies.
• Technologies supporting those innovations come from the consumer world as well.
New innovations focus on consumers more
Most enterprise IT departments are looking to consumer technologies to reduce costs and improve quality in the enterprise apps.
15
Consumerization: What does it mean to IT?
What we need: to get the best of both models of app development
Best of enterprise IT• SLA’s• Governance• Robustness• Alignment to the
enterprise
Best of consumer IT• Choice of apps• Extreme
segmentation of users
• Quick turn around
• Alignment to users
How it changes the IT landscape
Small number of large applications
Large number of small applications
Future status
Move towards consumerization
Current status
Note: App here means an isolated functionality that people useApplications may be replicated to focus on different user groups.
3. Deployment?4. Support?5. Enterprise architecture?6. Goverance?
Questions: How does this move change:1. Development?2. Life cycle plan?
Challenges in transitioning enterprise to consumerization – I
• Enterprise apps calculate ROI over long period (ex: 7 years to 5 years).
• Enterprise apps need stability over such long term: means they don’t use cutting edge technologies
• Enterprise apps are large and monolithic – changes or contributions are difficult to make.
Development Cost Unless we make changes the way we develop, large number of small apps increase development costs tremendously.
Example: Google development of applications.IPhone applications
Challenges in transitioning enterprise to consumerization – II
• Enterprise apps are geared towards slow and careful deployment. Quarterly releases are common.
• Enterprise deployment often means training of users, support staff, and operational staff
• Enterprise has only one deployment at a time; more versions of software is not often attempted in enterprise.
Deployment cost If we need to deploy large number of small apps, it makes the deployment lot more complex and costly.
Example: On average, Amazon can deploy an app every 11 seconds
Challenges in transitioning enterprise to consumerization - III
• Enterprise apps are optimized for supporting users over many years. In fact, the ROI banks on decreasing the ops cost over years
• Enterprise apps mature over years to reduce the operational cost.
• Enterprise apps
Operations cost If we need to deploy large number of small apps, it makes the deployment lot more complex and costly.
Example: Instagram supports 100’s of Terabytes of DB with 2 ops persons.
Recap: What consumerization means• Consumerization of IT means offering choice to users,
evolving apps quickly, and agile offerings to customers.• “LARGE NUMBER OF SMALL APPS” (APP = small unit of
meaningful functionality for a consumer)• The way IT operates, this demand increases
– Development cost– Deployment cost– Operations cost
However, best in class app development reduce the costs, while moving towards consumerization.
Dealing with consumerization in IT: A recipe
A framework for consumerization of IT
What to develop?
How to develop?
How to let others
develop?
How to get people to
adopt?
We have to reduce the cost of changing technologies and
bring domain focus.
Platform based development with DevOps
Question Key Challenge Key Concept
We have to make use of the existing enterprise assets.Innovation has to have ROI
Pace Layered Architecture
We have to create an eco-system so that others
(partners, other divisions, clients) can develop apps.
API based development
We have to get people to discover the right apps for them without spending on
support costs.
Modern App stores
Pace Layered Architecture
25
Pace Layered Architecture: What it means to IT
Systems of Record
Systems of Change
Systems of Innovation
Standard Processes
Differentiated processes
Innovative processes
COTS, ERP Packages
Customization via SOA, BPM
Custom apps, Decision support
systems (Data related)
No uncertainty: What to do and
how to do
Partial certainty: We only know
what to do, but not how to do.
Full uncertainty: What to do and
how to do.
EA perspective Process perspective App perspective IT perspective
Consumerization mostly effects systems of innovation.We need to let different parts of IT evolve at different paces.
Pace Layered Architecture in action
• Based of technology maturity• Based on the existing IT landscape
Identify the different layers of
architecture
• Based on the differentiated focus• Based on industry directionsAlign the layers with
business vision
• Different layers evolve differently • Standardize at the systems of record• Support diverse technologies at innovation
layer
Establish governance for different layers
differently
Platform based development with integrated DevOps
Platform based development
• A reference architecture implementation• A platform ready to be deployed for
development, testing, and production use• A platform that standardizes on core support,
deployment processes and tools (DevOps)
What is it?
• To reduce the support and deployment costs• To focus on the core domain problem =>
reduction of development cost
Why do we need it?
• Long answer: create an integration ready, cloud ready, enterprise ready platform with coherent elements
• Integrate DevOps tooling into the platform
How do we develop it?
Example platform:1. Google platform2. Facebook platform3. Azure platform4. SFDC platform
Key lesson learnt: 1. Enterprises need
multiple platforms2. Pattern based
development of platforms
3. Industry specific platforms to solve specific pain points
API based development for external and internal needs
Target state architecture: Technology Perspective using API’s
30
Web applicati
on
Web application
+ Progressive enhanceme
nts
Web application +
Native extensions
Native applicati
on
IOS/Android
HTML + Platforms (ex:
Phongap)
HTML5 + shims
HTML5
Internal Web applications
Web workflow
Older style web apps; driven by the functional requirements
However we change, we will deliver the same functionality => no transformation.
All form factorsMobile apps
New style apps; driven by the art of possibility
Well integrated; services offered to partners => creating partner ecosystem
Services taken from partners and public => transformed apps
Greater need for flexible apps and quicker ROI
Partner web
External web applications
Partner web
Back office Back office
External
services
External
services
Internal Web applications
Integrated web
Social web
Applications continuum to support anytime-anywhere design.
A standard architecture transformation:
Moving from monolithic web to platform + different apps
Different paradigm supportBased on analytics, application evolution
Ability to integrate modern practices as they evolve.
Using SOA to support different presentations of services
31
Backend
Web applications
Web workflow
Older style web apps; may not work on new form factors
Not well suited for modern needs
Needs too much work to have multiple apps for multiple platforms
Backend
All form factors Mobile apps
ESB
Working on all form factors Reuse the same logic (and
data) via ESB Mobile and BPM and web apps
work off the same code base Front-end strategy for
developing what and which paradigm.
BPM apps
Backend
Backend
Backend Backend
HCL’s architecture best practices:1. Composite application development2. SOA as the backbone for modern application development3. Data services + Business services + Technology services delivered via SOA
Consumerization demands repurposing of the services for different applications
App store for application delivery (discovery, provisioning, analytics, and support)
Complete Application life cycle: What App store provides
33
APIs for developer
s
App discovery mechanis
ms
App promotion
Social context for apps
Peer-to-peer app support
App upgrades
Multi-device apps
Multi-channel
appsTechnology + Tools + Frameworks + Social context + Application
Creating an ecosystem of apps:
Run time support for application discovery, provisioning, integration, and analytics
Design time support via platform and app registration, categorization, social context
Examples: Google App store, FB app store, Apple App store
34
Examples of app store: ITunes
Technology: Check. Delivery mechanism: Check. Platform support: No. Vendor control: Definitely. Versatile: No web – only their own.
35
Examples of app store: Facebook
Technology: Check. Delivery mechanism: Check. Vendor control: Definitely. Versatile: Multi-platform.
36
Examples of app store: Google Chrome app store
Technology: Check. Delivery mechanism: Check. Vendor control: PartiallyVersatile: Multi-platform.
Building your own appstore
• Registration services for registering application• Application meta data services for configuration, backup, security etc.
Implement design time API’s
• Hosting API’s to run on the platform• API’s for runtime analytics• API’s for user management and provisioning
Implement run time API’s
• Platforms for users to develop applications• Support for standard patterns and technology platforms
Create a set of platforms
Related work
• Another way consumerization of IT is handled is through supporting UDA (User Defined Applications). Examples: ServiceNow, Microsoft (Sharepoint + Friends).
• API based development: Most modern web development (see: www.leanstack.io for examples).
• App Store: Cloud based app deployment has become standard – part of app store functionality.
Concluding Remarks
Consumerization is forcing enterprise to become agile: from concept for production
Four key elements to support this brave new world are:Pace Layered ArchitecturePlatform based development (with
DevOps)API’s for rapid developmentApp Stores for app delivery and support
End of Deck