Wednesday, March 20, 2013

Enterprise PaaS is a Great Strategy

When the CxO's get together to talk about strategy in our technical world, where is the conversation focused? Increasingly the discussion includes catch phrases like mobility, cloud, social media, and big data. In my experience the discussion starts with the business process, recently they've added the customer experience to the conversation, and about as deep as they go is down to the data. Why is that important to understand? In the world of the CxO they don't care about any technology below the apps and data (with the obvious exceptions of the CSO and the CTO who, often enough, only cares down to the integration layer). Every thing else is "staffed out" to their senior execs then down to senior managers, then managers, and then to the teams responsible. I'm painting with a broad brush I admit, and I'm not saying there are CxO's who can't talk stored procedures or network design, but it's not their focus. When it comes to cloud, the platform for mobile applications, social media, big data and business collaboration, the C-suite gets it! CEO's love the time to market benefits. CFO's love the capex vs opex and asset light approach of cloud. CIO's want the agility just as much as the COO's. CSO's like the private cloud model keeping everything inside the four walls.

Today the cloud strategy at large enterprises starts with building an infrastructure only private cloud build-out, often built upon a VMWare foundation. Company by company the consistent learning is mass virtualization does not lead to native cloud application development, the ultimate goal of cloud. Whether from a vendor or developed internally, native cloud applications deliver tremendous benefits including continuous availability, software reuse, efficient use of resources, and easier integration. What is missing at first, and often added quickly after adoption of the infrastructure private cloud fails to meet adoption goals, is the development of an Enterprise Platform as a Solution capability to engage the in-house developers and bring them into the cloud.  Enterprise Private PaaS is a significant part of the Fortune 500 Ready Cloud.

Simply put, a PaaS solution provides both a framework and supporting services to simplify the development of native cloud applications. An Enterprise PaaS scales the concept to meet the needs of the enterprise instead of an individual developer, team or small company. It may appear inconsistent that someone who advocates the use of Public Cloud (off-premise, multi-tenant) is advocating a Private Cloud focus. True, however here are my arguments in favor of Enterprise PaaS:
  • Developing Native Cloud Apps - drives developers up the learning curve on developing native cloud applications by reducing barriers and providing a platform for learning. Nobody can learn to develop for a cloud without a cloud.
  • Leveraging a Hybrid Cloud - CFO's and CIO's are keenly interested in tapping into the economic benefits of using someone else's IT assets (private off-prem or public). This is where the agility benefits are realized; the ability to scale up and down and deploy on demand as needed.
  • Taking Out Costs - infrastructure costs run 4-15% of an IT budget whereas applications comprise 30-50%. In addition the application costs are directly related to personnel costs which are an expensive, difficult to attract and retain resource.  Developing enterprise cloud services provides a significant opportunity to reduce development, testing, and people costs.  It helps that cloud solutions are largely predicated on open source and not proprietary solutions.
  • Moving to an Asset Light Foundation - cloud provides the opportunity to unchain ourselves from the evil reality of asset ownership, so driving adoption with Enterprise PaaS helps drive the benefits of asset ownership reduction.
  • Third Party Web Services - Nobody wants to reinvent the wheel, especially when it means starting back at the beginning when the wheel was made of rock shaped by another rock and lots of elbow grease.  Third parties are building and offering API's as a means of deeper and broader integration.  In the future many solutions bought today as services, and even applications, will be replaced by automated integration via web services.
  • Talent Management - Its already tough enough to compete for talent against companies like Google, Facebook, and Amazon.  Providing access to the same technologies will go a long way to attracting and retaining talent who don't want to fall behind their peers.
  • Path to the Public Cloud - you knew it was coming, my argument for how private cloud benefits public clouds.  As one who as warned about the pitfalls of private clouds, the benefit that outweighs the cost is ITS STILL CLOUD! Any step that increases the understanding of cloud is a positive step. Let the security and economic considerations play out over time. I have cast my lot with the group who expect the public cloud will win in the end. I don't care how companies get there.
Enterprise Private PaaS is a significantly important step in the direction of cloud adoption. Without the ability to write native cloud applications the true value of cloud, revenue generation, cannot be delivered. Writing these applications requires a shift in the mindset of developers, new tools, new programming skills, and steady movement up the learning curve.

Enterprise PaaS is the gateway to cloud innovation - step on through!

Wednesday, March 6, 2013

Creating the Cross Channel Customer Experience

We all know it can be pretty frustrating today. You start doing something on line, but the phone rings. You have to run so you grab your keys and head out the door. Luckily there's a break in the day so out comes the mobile phone but the app has no record of what you were doing. So you call the company for support where you spend the first 10min in a queue followed by 10min of trying to describe to the person what you were doing. The empathetic agent is willing to help, but you need to start over. Of course the piece of paper with the information you need is on the desk, at home, next to the phone.  When you get home you rush to your desk, jiggle the mouse so your screen turns back on, only to find out your session has timed out.


Today companies are struggling to provide a consistent customer experience across the variety of interaction channels. Is it unreasonable to expect what you start via one channel you continue via others, bouncing back and forth as needed, until the transaction is complete? No. However at the technical level it's no easy task to accomplish. The online application comes from the eCommerce team, mobile application from the Mobile team, CRM from the contact center group, and the retail outlets only have their Point of Sale system which is not the most friendly tool. We've spent alot of time and money getting to "one view of the customer", bringing CRM into the shared services IT organization as the golden record of the customer. We've spent more time and money integrating our other tools to the golden record; some are new enough they had access from day one. So we know who the customer is, what they've bought before, every time they've called, and even how valuable they are as a customer. However what we don't know is what they are doing right now with us. Some of the systems don't track it, often in the name of security despite the customer having passed multiple tests to initiate the interaction. Why didn't we solve for this problem at the same time as we did the golden record? Simple. We had fewer channels, customers had a strong preference for a single channel, and we were focused on the customer identity, not their goal.

How do we solve this problem? We need to start tracking what the customer is doing and sharing that data across channels. Many web sites are good at solving at least part of the problem enabling a customer to pick up where they left off, or signaling for help when they get confused. However this capability is integrated into the channel. Do we want to build a solution for each channel? If so how do we keep transaction components in synch especially now that there is no channel affinity? I believe the answer is building a transaction index.

Building a transaction index service enables each channel, including ones not yet main stream such as the connected car and M2M (not familiar with M2M? Worth doing some research) to work in concert. As expected the transaction index would uniquely identify every transaction by person and identify every transaction type. Combined with date/time stamps, channel indicators and device identifiers, a developer would have enough information to make intelligent decisions to maintain the customer experience throughout the transaction across all channels. As a service its designed for scale, reliability, and availability with geographic caching to aid in speed (keeping the data local while transactions are in a pending state). Every time a transaction is initiated the index is consulted to determine if the transaction is a continuation of a previous interaction or new. Should any doubt arise the customer could be queried. The index identifies the current step in the transaction, provides access to the data already collected, and returns this information to the requesting application. Each transaction step updates the index so it contains the most current information. Once a transaction is complete it is removed from the index, whether deleted or archived. Existing policy management would continue to govern what processes and data are available in each channel.

Such a solution enables a more robust customer experience. Transactions can be aged to trigger escalations or support. Abandoned transactions can trigger proactive responses from outbound emails and calls to a query from a retail employee to determine whether or not the customer needs assistance.

As a challenge I've been considering for the past few years, my wife's experience with a well known web site over the past 12hrs prompted me to put forth my idea. With an account she accesses via the web as well as an iPad app, she did some preparatory work on the web site last night. She decided this morning to complete the work on her iPad. When she went to save her work, she had to sign in to the service. After doing so, her three hours of work on the iPad app disappeared and only the preparatory work done via the web site remained. Honestly there was no excuse yet I totally understand why it happened. At a minimum you'd hope it would ask you a question. However the online and app versions were written by different teams, at different times, and the transaction data is siloed even though they obviously share a common golden record.

Perhaps my idea is naive, perhaps its genius. I see it as an extension of a tool, the index, into an area where a problem has emerged. Like most problems I expect people to look at the most common solution; building new capabilities into each channel application. I prefer the cloud approach. Build the service as a native cloud app and you gain all the scale, reliability and availability attributes while operating at the lowest possible cost. What's not to like?