Experience Oriented Architecture (XOA) – Addressing the Failures of SOA

The concept of “Experience Oriented Architecture” (XOA) is really picking up momentum within the corridors of Adobe in California, as we continue to think about how we help our customers and partners create innovative customer-centric solutions for the digital enterprise. Though I have spoken about XOA in this blog in the past, I want to share more real-time the hallway conversations that are taking place as we align and define on what we mean by taking an experience-oriented approach to a technology project.

I first spoke about XOA at a Butler Group presentation in London, in July 2007, when invited to speak at a Service Oriented Architecture conference. The contentious position I wanted to take amongst a SOA audience, was that focussing on the SOA challenges like governance, fine grained versus coarse grained services, OASIS specifications and service bus approaches was fine and well, but it was missing the most important consideration in software development — that all of our efforts are in service of an end user, and that we must put them in the center of our approach.

To position this argument, I cited 3 of the acknowledged failures of SOA initiatives (in terms of not realizing the intended ROI), as taken from an Information Week article from March 2007:

  • Re-use (by creating a well-exposed service-tier, one hopes that services will be re-used more readily)
  • Business Agility (with a well-exposed suite of services, one hopes that others will be able to more rapidly deliver new products to market)
  • Alignment of Business and IT functions (with the service-tier arguably the exposition of the underlying IT infrastructure to support business needs, it could be argued that an SOA initiative brings these groups to the same table, and offers the opportunity for an alignment that otherwise can fail to occur)

I very much believe that the philosophy of Experience Oriented Architecture (XOA) can address these failures, by reframing the problem around users, not systems.

I thought a quote from Annrai O’Toole, the CEO of ClearCape, that appeared in the March 2007 edition of Information Age was apt here, “…unless you really understand what services you are going to create and why, there is no point in doing SOA. You must have a revolutionary approach.”

I believe that XOA, though simple in concept, is indeed a revolutionary approach to thinking about how to create innovative customer-centric solutions in today’s digital enterprise.

Do you know of any other approaches ?

Presenting on Intuitive Experiences with Flex + SAP in Palo Alto

Next Friday, I’m co-presenting with Matthias Zeller (Group Product Manager, LiveCycle Mosaic) at the SAP Inside Track 2010 event in Palo Alto, Ca. We are presenting a technical deep-dive on Project Hendrix, explaining how Adobe is able to leverage it’s own technologies, including Flex, LiveCycle Data Services, LiveCycle ES, LiveCycle Collaboration Service and LiveCycle Mosaic, to deliver the best imaginable experience for end-users upon an existing SAP CRM infrastructure.

Our abstract for our presentation is as follows:

“In this presentation, Steven Webster and Matthias Zeller will demonstrate how to create innovative and intuitive user-experiences upon existing SAP solutions by leveraging Adobe technologies including Flex and LiveCycle. Project Hendrix is an internal application to Adobe, developed to empower agents in contact centers around the world to help more customers, first time, in less time, every time. Built atop an existing investment in SAP CRM, the innovations in user-experience provide an interface that allows agents to focus on performing their tasks simply, easily and effectively, hiding from them the complexities of numerous underlying enterprise systems. Steven and Matthias will demonstrate the application and user-experience, before deep-diving into the technical details and best-practices that enable this Flex interface to be moulded upon SAP by technology integrations such as LiveCycle Data Services and JCO. They will challenge product engineering teams to think about how to bring design into the engineering process, share Adobe’s approach to bringing user-experience design, business requirements and software delivery together, and introduce the concept of “Experience Oriented Architecture” as a design and development approach to fusing Rich Internet Applications and Service Oriented Architecture. SAP development has never looked better.”

A number of our enterprise customers and partners have significant investments and experience in developing complex, mission and business critical systems upon SAP. What we have shown with Hendrix, is how we can realize additional return on these enterprise investments, unlocking further ROI through a design process, and by creating simpler, easier and more effective user experiences that are more useful, more usable and more desirable.

If you’re going to be in or around Palo Alto, I’d love to catch up with you at the event…you can find more details here.

SAP development has never looked better.

Webinar on “Intuitive User Experiences”

On Wednesday 28 April, at 11am PT, I’m co-presenting with Ron Rogowski of Forrester Research on “The Value of Creating Intuitive User Experiences”. This online webinar will focus on the approach to creating user-centric applications, and the business value that emerges from intuitive user-experiences.

During this presentation, I’ll be talking about a project my team have been responsible for delivering over the last year, that is internally code-named “Hendrix”. This has been a tremendous collaboration within Adobe, bringing together our TXI team of technologists and user-experience designers with our IT organization, leveraging our 3D methodology for blending user-centric design thinking with agile software engineering, and in turn, creating an application that allows our agents in our contact centers to more effectively service Adobe customers – to help more customers, first time in less time. Every time.

Project Hendrix is something I am very much looking forward to talking more and more about in the days, weeks and months ahead…the business problem we were tackling (which has resonated with a tremendous number of customers to whom I have shown Project Hendrix in Customer Briefings in San Jose), the 3D approach we took to really understanding user needs, and how meeting user needs could meet business goals, as well as getting deep and dirty with the technical details of how we delivered an Experience Oriented Architecture … a tremendously complex implementation of a beautifully simple user-experience that leverages Adobe technology throughout the technology stack to attenuate the complexity of underlying systems such as our SAP CRM system.

It’s incredibly rewarding to have the project going live to our agents, and to be able to begin to talk about it with designers and developers, customer and community, and with the industry at large.

Sign up for the webinar here.

Why I dislike Devigners (and never buy fried chicken in Marin)

Take a look at this photo, of a sign that I drive past every single day…clearly someone at KFC decided that they could lift some stock imagery, adhere to brand guidelines, use the corporate approved font, and create for themselves a sign that would ensure that people honored the 1-way drive through system appropriately. I can’t say for sure, but it’s consistent with so many conversations I’m privvy to — we don’t need one of those designers, just give us the templates/some examples/some guidelines/some best practices and we can do the design ourselves. But seriously …. I wonder if there’s a correlation between the Colonel himself warning you not to enter his establishment, and the fact that I rarely see any customers as I drive past. I’m often asked “what’s the return on investment of design” – in fact I was challenged to address this question last year at Adobe’s Analyst Briefing in San Jose. My position was that you should really restate the problem as “what is the ROI that you believe exists in the solution you are developing; design isn’t a line item that delivers ROI of its own, rather than the process that unlocks the available ROI in the solution”.

kfc_donotenter.jpg

Because that’s the crux of it … if your problem is customer retention or customer acquistion, if your problem is shopping cart abandonment or number of customers who give up midway through a loan application, or if your problem is customer satisfaction for an online self-service experience, then you likely know your performance, and you have some sense according to industry convention or expectation, as to where benchmark performance is.

I wonder what would happen to the footfall in Mill Valley’s KFC, if “DO NOT ENTER” instead said “WAY OUT”, “EXIT ONLY” or “DRIVE THRU AT THE NEXT ENTRANCE !”

Once you understand that ROI that’s available in any given initiative, the Design process offers a much more user-centric approach to solving the problem and unlocking the ROI. While technology – whether that be Adobe technology such as Flex, AIR, LiveCycle ES, LiveCycle Collaboration Server, or another technology – may enable a solution that realizes the ROI, the design process is the difference between a solution built upon that technology that unlocks the ROI, and a solution built upon the technology that doesn’t.

Customers and partners will often ask me if our User Experience team can share some documents or papers that outline “UX practices”, or if we can create some “example screens” that can be used as baselines for someone without design in their DNA to cookie cut every other screen. When I’m asked this, I always think about KFC in Marin…about the logic that suggested that with some sample assets, some photoshop comps, some brand guidelines and the right fonts installed on the computer, customers could be steered in the entrance and out the exit in their droves.

For sure I’ve met some developers who happen to be incredible designers (they’re usually designers who manage to become developers, I think I’m yet to meet anyone who crossed over in the other direction) but they are the exception rather than the norm.

Design is a process, and designers are professionals that drive and participate in that process. I think the real opportunity isn’t to turn designers into developers, or developers into designers…it’s to find approaches, processes and methodologies that create the handshakes between the two, and to create tools (like Flash Catalyst) that facilitate these handshakes and workflows.

In the meantime, if you are working on a project, or with a customer, who is seeking “devigners”, or where “the business analyst” or “the project manager” is “designing the screens”, then maybe you should play a little chicken with them.

Work for Adobe building Great Experiences out of California!

As we build out our capability to deliver innovative, customer-centric experiences with our platform technologies upon our enterprise technologies, we’re creating a Solution Center in our San Jose office. The solution center is an incredible innovation-space, where a team of designers, developers and quality engineers will work together to create incredible experiences alongside Adobe partners, on behalf of some of our most strategic customers.

If you’re a developer, designer or quality engineer that thinks they could be a pivotal part of this initiative, then please check out Peter Martin’s blog post and drop him a note.

Note for Recruiters
Please don’t email me or call me … I’ll set expectation now that I won’t respond. I’m the messenger, not the hiring manager.

Deliver: Agile Execution aligned to Innovation

Previously, I spoke about “Discover, Define and Deliver” as the 3 Steps to Innovation upon Adobe technology. When describing this “3D Methodology” to customers, I find it’s easiest to start with that which is most familiar – Deliver – and then work back towards the value of Define and Deliver. When all is done, when the observations and insights have sparked an idea for innovation, and the innovation has been distilled into concrete requirements and designs, the Deliver phase is about bringing it all to life. It’s about breathing life into a design, lifting it from paper concept to production code. Deliver is primarily about writing code, pushing it through Quality Assurance and into production.

Deliver is agile…

Wherever possible, the team at Adobe advocates Agile development – and more specifically we advocate Scrum as our methodology of choice. This is indeed consistent with many of the product engineering teams within Adobe, as we more broadly embrace agile and Scrum within Adobe.

Formerly, I was an advocate of XP (Extreme Programming), but laterally, as more of the industry appears to embrace Scrum, as more of our customers embrace Scrum, and with more training and accreditation around the Scrum process, the differences between XP and Scrum are too trivial to matter. That previous link to Mike Cohn’s article highlights “Scrum doesn’t prescribe any engineering practices; XP does” … that being said, we very much advocate and encourage the practices of XP, whether it be coding standards, pair programming, unit-testing and test-driven development, continuous integration, and our teams are continually pushing the state of the art by contributing to tooling to support them, whether that be FlexUnit, FlexPMD, FlexPMD plug-ins, integration with Hudson, etc.

Prototype and Test == Release Early and Often

Throughout the 3D methodology, we strive to create the right environment for innovation. One particular trait of innovation is the ability to prototype and test; one particular trait of agile is release early and often. I think there’s a relationship between the 2 that is interesting.

Tom Kelley of IDEO talks about prototyping as “the shorthand of innovation”. I’d highly recommend reading that article, itself an excerpt from what we consider to be Adobe Technical Services required reading, “The Art of Innovation”. But within Innovation thinking, the importance of getting a working prototype in the hands of users, as a means of creating the opportunity to observe and feedback into the design, is very much established thinking. The team over at IDEO are tremendous at leveraging prototypes in their product design process; there’s a definite opportunity to embrace this kind of thinking and approach in the software product design process.

Within Adobe Technical Services, we will often prototype INCREDIBLY early in the process — oftentimes before we’ve even really undertaken a concise requirements gathering exercise. Prototypes are often deliverables from our Discovery phase, opportunities to explore hunches and insights, to play what-if with customers, or indeed even ourselves, and to stretch our own thinking about how some of the business needs, user goals and technology opportunities could come together in imaginative ways. We create incredibly high-fidelity prototypes, very quickly, either with Flash, with Flex or increasingly with Flash Catalyst…however, these vision prototypes really only take us on a “happy path” through the application. This kind of vision prototyping differentiates us from many others that we work with, and so I plan on talking about this in much more detail over another series of entries.

However, if you consider the agile process of delivering functionality in discrete time-boxes (what XP calls iterations, and Scrum calls sprints), then you recognize that each sprint affords us an opportunity to spin out a prototype that we can test. It takes courage on the part of the customer and the team, to challenge our own assertions mid-flight and to be prepared to course-correct upon learnings. But agile methods embrace change during development; and so the very engineering methodology that empowers us to prototype and test regularly through the development cycle, similarly empowers us to embrace the learnings straight back into the product design, during the manufacture of the design itself (which is in essence, the Deliver phase).

Deliver doesn’t have to be agile…but it helps…

We don’t always follow agile within Delivery, but ad-hoc is never an acceptable alternative. Oftentimes we will lead the delivery phase of projects with an Adobe team, but more likely we will be working alongside our customer’s development team or our ecosystem of Adobe partners. Agile approaches – stories as currency of requirements, feature-driven development and sprints of functionality prioritized according to business value – have proven to be a tremendous means of achieving technology and business domain knowledge transfer; I’d be interested if you have found the same also?

Summary

So when we get into the Deliver phase, we’re really in the midst of a software engineering lifecycle…there’s ongoing user-experience design for sure, but really the bulk of the experience is locked and loaded, in the backlog and ready for implementation. We definitely find that agile methods are conducive to innovation methods in the product design and manufacture, and so advocate them wherever possible. We definitely find that the engineering methods popularised by XP, and more widely embraced by the agile community, are as relevant to development with Adobe technologies as any other, and whereever possible we are contributing to and pushing the state of the art on the tooling to support agile engineering.

Most of the knowledge that we have to share in the Deliver phase comes from the tools, methods and best-practices particular to the technologies we are using, rather than the process or methodology we are using. Many of my colleagues are sharing this information in their own blogs and articles, and I’ll seek to reference them more in future entries.

However, as we push back into the Define phase, where a user-experience moves from concept to idea and to implementation, where we ensure that user-experience designs are satisfied by business and functional requirements and vice versa, where the real collaboration and magic happens between designers and developers, then I think we have a little more insight to share.

And so that’s where I’ll go next, with a similar overview of the kind of challenges we address in our Define phase. I’d love to hear what challenges you’re facing, how and whether you’ve addressed them, so that you might steer the direction of dialogue. By releasing these thoughts early and often, I have the opportunity to evolve them to meet consumer needs…!

3 Steps to Innovation with Adobe Experience Design and Technology

Through a series of posts, I’d like to share ever increasing detail in how the technical services organization within Adobe – comprising user-experience designers and technologists from technical sales and solutions engineers to consultants – consistently approaches the ideation and implementation of solutions upon Adobe technology. Each solution that we innovate follows 3 steps, which we call our “3D Methodology” – Discover, Define and Deliver. Over a series of entries, I’d like to elaborate on each of these steps, as a prelude to sharing more deeply some of the best-practices that have emerged for us from repeated application of our approach.

When I describe “Discover, Define, Deliver” to customers and partners, I find it easiest to describe it from the back to the front…and so this is how I’ll introduce each phase over the coming days:

Deliver: Agile Execution aligned to Innovation

When all is done, when the observations and insights have sparked an idea for innovation, and the innovation has been distilled into concrete requirements and designs, the Deliver phase is about bringing it all to life. It’s about breathing life into a design, lifting it from paper concept to production code.

I’ll talk more about agile development, the adoption of Scrum, and the traits of innovation methods that I believe align with traits of agile software development methods.

Define: where Requirements inform the Design, and the Design informs the Requirements

The industry has long accepted the fate-sealing that occurs when a project commences development/delivery before requirements have been adequately specified. In the 3D methodology, the Define phase commences when we feel we have gained enough insight and observations about user-needs, technology opportunities and strategic business drivers, to have a solution set of opportunities that can be elaborated with the customer into a set of business requirements.

I’ll talk more about design-led innovation, about how we bring together user-experience design methods with agile software development, and resolve tensions that so many of our customers and partners seem to face when bringing design and development teams together. In other cases, we find that there is tremendous lip-service paid to the design process … it’s something we feel strongly about, and dialogue we look forward to entering into in this forum.

Discover: gaining the Insights for Innovation

If Define and Deliver answer the question “how do we build things right’, then Discover answers the question “how do we build the right thing”. In our discovery process, we very much embrace innovation techniques and user-centered design methods that uncover the critical insights that ignite the spark and uncover the soul of an application. In the discovery phase, it is our goal to construct a portfolio of ideas to inform the very requirements that we collect with our customer to gather. These insights come from observation of the very individuals for whom our solutions will be in service.

I very much look forward to sharing our thinking and approach, the tools that we use, the assets that we create, the workshops that we facilitate and the philosophies that guide us in truly stepping back and challenging not just the solution, but the problem itself.

The 3D Playbook

We’ve captured this methodology as a series of individual plays in our “3D Playbook”, a social platform for capturing best-practices in how to set up for success. Should a project wish to, each phase of discover, define and deliver can be followed “by the book”, giving project teams clear guidance on the sequence of workshops, activities and deliverables. Alternatively, a project can be less prescriptive, but embrace the best-practices and philosophies that the plays are there to support, cognizant of the consequences of the plays that are being passed over.

I very much look forward to dipping into our playbook, and sharing with you our approach, the tools we use, the techniques we apply, and the lessons and learnings that we try to pass from one team to another at each stage in the innovation lifecycle.

Summary

We fundamentally believe that solutions delivered upon Adobe technology can establish the state of the art, can set the bar, where the technology is a medium and a means to an end, rather than simply the end itself. If Adobe technology is necessary but not sufficient, then sufficiency comes from the introduction of Innovation, and Innovation is Design-led.

Innovation doesn’t happen “by the numbers”. However, the environments that must be created, the individuals that must be engaged, and the insights that must be gained, can be sequenced and repeated. The practices can be repeated, and the best of these practices can become best-practices. Discover can yield insights for innovation, Define can bring the design and engineering disciplines seamlessly together and Delivery can assure a consistent execution with engineering best-practice.

I’m very much looking forward to sharing in this thinking, and entering into broader dialogue with our customers, partners and community about where we can share more, and what we can learn from the successful implementations that you are each responsible for delivering.

What else can we share ? What do you have to share with us ? Where do we begin ?

Welcome to TXI

It’s somewhat of a habit, to post a blog entry with a leading apology for how long I’ve posted a blog entry…over a year in this case. However, it has been a tremendously interesting year at Adobe, building a team called “TXI” (Technology and Experience Innovation) of Technologists and User Experience Designers to deliver on a common belief that the most innovative and effective applications of Adobe technology, are the fusion of great user-experience design and great technology implementations.

You’ll know many of my team already, from the work they have already shared with the community — whether it’s technologists like Alistair McLeod, Peter Martin, Paul Barnes-Hoggett, Yaniv de Ridder, Francois Le Droff, or user-experience designers like George Neill, Jerome Doran, Kalle Korman, James Mellers or Dusty Brown. Along with their numerous other peers spread in our team from Romania to California, this team is responsible for really driving the state of the art in “what’s possible” with Adobe technology and design. In many instances, it’s in the solutions that we deliver for Adobe’s most strategic customers, in other instances it’s working with our partners and system integrators to help drive that thinking into their solutions, and in other instances still that team faces inwards, creating the applications and experiences that allow Adobe to better serve our ecosystem.

Along the way, we’re continually evolving how we think about bringing designers and developers together. We create tools, we derive techniques, we adapt software development methodologies like SCRUM to user-centered design techniques. We find ourselves deriving recurring patterns, whether these be software patterns, technology best-practices, or user-experience patterns that can improve interactions from one problem domain to the next. And it all culminates in the work the team delivers, and is proud of delivering.

I am missing an opportunity sharing our thoughts as we go, and collecting your thoughts along the way. And this is a tremendous vehicle for doing so.

There’s 4 things I care most about when I think about creating best imaginable experiences:

I care about Adobe technology; I truly believe that the phenomenal work of our product teams gives us the fabrics, the materials, the tools and the techniques to carve the most aesthetic, most effective and simple experiences, as abstractions to the most complex, robust and scalable enterprise solutions. And the more our technology platform matures, the more the world shifts to software that works the way people work, not the way systems work, the more experience matters, then the more I get excited about the opportunities we see not just to create effective veneers upon complex enterprise systems, but the more I see incredible integrations between our platform technologies and run-times, our creative products in the enterprise, our video and media products. Enterprise workflows, creative workflows, the seamless blend from virtual to just-in-time manufacturing, the production, protection and monetization of interactive media content, all present an incredible array of technologies from which to craft and carve solutions.

I care about Technology. More than just Adobe technology, but trends, directions, innovations and opportunities. Innovation is so often a product of cross-pollenation; taking ideas from one ecosystem and germinating them in another. Tracking trends and innovations in the wider technology ecosystem is the manner by which we ensure that we have the most advanced bricks and mortars to bring experiences to life; and as the materials we work with evolve, that in turns informs the experiences we are able to deliver. Design informs technology, but technology can also inform design.

And I care about Design. More than anything else. Technology is in service of the user, the customer, the citizen … it is necessary but not sufficient. Adobe has an incredible community of designers and creative professionals, and an incredible community of developers and engineers. The consumerization of IT, the trends in the industry from system centric to people centric applications, all bring mass market realization to the importance of Design in the software development process. This is something we are incredibly passionate about…we believe that design and development is a handshake, not a handover, and our people, our skills, our tools, our processes and our methodologies have evolved to bring these disciplines together (but not to create “devigners”, an inmate in disguise who still pulls strings in the day to day running of the asylum).

And all of this ? Adobe products, Technology trends and Design thinking ? To me, they are in service of Innovation. For that is what drives us, that is what keeps this team ticking, that is why customers engage us, why partners listen to us, and why in turn we enjoy immersing ourselves in our customers business, walking in their customers shoes, and understanding our partners opportunities. By bringing together our technology and design, we have an incredible opportunity as an industry to Innovate.

How can that not be exciting ?

So being the things that we care about as a team, these are the things we care about sharing. And in return, we hope to learn as much from you in return.

Where do we start ?

Natural Language Mashups with Ubiquity

So you fire up your browser, you type "Book a flight to Chicago next Monday to Thursday, no red-eyes, the cheapest. Then, email my friends the itinerary and add it to my calendar". Your browser responds with:

This is the aim of the Ubiquity project at Mozilla, which aims to parse natural language queries to create on-the-fly mashups. In the words of the Mozilla team, it’s about "connecting the Web with language in an attempt to find new user interfaces that could make it possible for everyone to do common Web tasks more quickly and easily." This is a tremendously exciting idea.

In Web 2.0, the idea of a "mashup" is very static…though we can create services that are themselves compositions of micro-services available over the web, our final service is somewhat static, in the sense that our mashup is specific to the intent of the developer that created the mashup.

Projects like Yahoo! Pipes have tried to make it easier to create mashups more "on the fly", by creating a way of graphically orchestrating disparate web-service calls.  This is a very similar approach to the "enterprise orchestrations" that can be created with LiveCycle Process Management ES which allows us to graphically orchestrate pre-supplied and custom services into enterprise business processes.

However, as much as Yahoo Pipes may make it easier to create a mashup, the resulting service, despite being a composition of several disparate services, is still static, in the sense that it is only fit for its single intended purpose ("Fetch me the New York Times business stories from the RSS feed, and show me Flickr images alongside each story, with links to Forbes.com profiles for any companies or people mentioned in the story.")

What I love about the vision behind Ubiquity, is that it aspires to offer the most simple, easy and effective of user-experiences – a natural language query or imperative – while "behind the glass" have the most complex of dynamic orchestrations from a catalogue of known or discoverable web-services. Much like Tivo, or purchasing music while sat in your sofa with your wireless iPod, this has all the opportunities of seeming like the easiest transaction to offer, truly hiding the end-user from the smarts, the intelligence and the complexity required in silicon and code to make it happen.

Get this project working effectively, put speech to text on the natural language query, and this gets even more exciting…

Check out the project at http://labs.mozilla.com/2008/08/introducing-ubiquity/