Traditional businesses are floundering as people become increasingly interconnected, while humanity simultaneously grows more disjointed. Do you fear for the future of your bricks-and-mortar business or your electronic service in a world of smartphones, tablets, and new technologies not yet imagined (but soon to appear)?
Cisco predicts that by 2020 there will be an average of 6.58 connected devices per person on the planet. People are interacting with organizations and services with an ever more diverse set of technologies, they are doing this in a growing number of contexts, and the data being created is growing exponentially.
In this two-part series, first published on informIT, find out how modern technology presents new opportunities for everyone, why you shouldn't be afraid of it, and where to look for advantages. In part 1, learn what makes the future 'shattered' and what it means to your organization’s survival. In part 2, take a look at the types of strategies that are likely to be effective in this new world.
A Shattered Future
If we look closely at the technology trends, of which mobile is just one part, it becomes clear that we are witnessing a shattering of input and output mechanisms.
We can now communicate with modern technology by tapping a screen (iPhone), waving our arms (Kinect), speaking (Siri), running (Nike+), moving through space (GPS), standing still (CCTV plus facial recognition), being close to something (near field communication), having a pulse (consumer medical devices), or even just having a thought (EEG). The days when all this information is tied together in your pocket are just arriving.
The data from these inputs is invariably disappearing somewhere into the amorphous cloud, where we are still figuring out how to connect, draw inferences from, enrich, and react to this diverse set of information.
What we are seeing is the advent of ambient computing, where the computer and its interfaces disappear into the background, and we are immersed in a new world where computation is baked into the very environment. It’s as though the single screens of yesterday have been shattered and the shards have been embedded into our pockets, our environment, and the products we use.
Many people are currently facing the technicalities of delivering applications across multiple platforms and a variety of devices. A whole new industry is growing around managing Big Data, as well as the data scientists and data-visualization experts required to make sense of it. Rapid growth is taking place in managing the cloud infrastructure needed to power all these services and host this data. Along with these issues come security challenges (how to protect this sometimes deeply personal data) and integration issues (how to make the new, more responsive systems of the future work with creaking legacy infrastructure).
Business and Product Challenges
IT is being “consumerized.” As users have access to first-rate and well-designed software in their personal lives, they expect the same usability, quality of design, richness of interaction, and availability of services in their work environments and their commercial transactions. Mobile is personal. The device lives in your pocket and the palm of your hand. Part of the brilliance of Apple was to recognize and embrace this trend, creating devices that are delightful, tactile, and responsive to use. Both of these trends raise the bar of user expectations for any service interaction, putting new pressures and strains on product design and service offerings.
The explosive rate of change across the technology industry means organizations have to run just to keep up. Every day new startups and products threaten to disrupt incumbents. This threat is forcing traditional businesses to re-examine how they can innovate more rapidly and reliably. Many are investigating how to use some of the lean startup principles on a more enterprise scale.
Strategies for Operating in This New World
It has become clear to ThoughtWorks that a three-pronged approach is necessary to prosper in this future of ambient computing, massive data, high user expectations, and breakneck pace of competitive innovation:
1. Methodology for innovation
2. Technology enablers
3. Visionary strategies
Methodology for Innovation
For a business to survive in this fast-moving environment, it must build an engine to create original product innovations that differentiate it in the marketplace. ThoughtWorks’ favored approach for generating sustained innovation is loosely termed “Continuous Design and Delivery.” This is a natural extension of the ideas behind Continuous Integration, with the goal of getting to validated learning as rapidly as possible, and then baking tight feedback loops into the delivery engine.
Stage 1: Envision
The What? How? When? Who?
- Best answered by a cross-functional team representing business, design, and technology, working together in rapid collaboration.
Stage 2: Create
Choice of opportunity
- Value proposition
- Customer selection
- Creating value for the customer
- Experience design
- Functional solutioning
- Data/technical architecture
- Surrounding service design
- Value-centered design
- Content design
Stage 3: Learn
As quickly as possible, engage the market and start learning from real customer feedback. Surprisingly few organizations know how to do this effectively. As you get an initial product in front of customers, you'll start learning about the validity of the assumptions you made during the earlier design phases. An important benefit of this approach is that you are validating more than just design (which can be done by prototypes and so forth); you are also validating business strategy, technical performance, and environment characteristics.
To execute on a Continuous Design and Delivery methodology, you need to put some technology enablers in place. Three broad areas to consider:
Embedding designers and design activities into the delivery team
Embed designers, whose job is to gather continual feedback from real users and translate the high-level creative vision into workable designs in tight collaboration with the developers.
Engineering tools and practices required to support Continuous Delivery
Main code line is always in a releasable state, and the only manual steps required between code-commit and production release is (potentially) business-level approval
Working in small, self-contained increments
Automating all the steps from commit to release (particularly of test, build, and infrastructure)
Strategy for "dark launching" or "feature-flagging" experimental features
Solid monitoring of both system metrics and user or business metrics to evaluate the impact of changes
Creating architectures and applications that are amenable to rapid change
Classic approach. Design well-encapsulated services with clean APIs, allowing you to compose and recompose your application in different and novel ways.
Test-based approach. Surround your application with a loosely coupled suite of functional tests that give you the confidence to change rapidly, while knowing that you haven't broken key functionality elsewhere.
Fast-and-loose approach. Hack out a minimal implementation quickly, with little investment in testing or long-term architecture, and look to discard or solidify your initial work depending on the outcome of market feedback
Other technology enablers include:
Hybrid Mobile Approaches – Evolutionary architecture that allows you to iterate quickly in fast and flexible web technologies and then gradually migrate to native implementations as your needs and usage patterns become clearer.
NoSQL as an Agile Enabler – One of the major drivers for adopting NoSQL technologies has been to support scale – or, more specifically, to select a different set of tradeoffs around consistency and availability when scaling. We also find that the “schema-free” nature of these databases is just as important, allowing you to iterate quickly over your data structures without the overhead of maintaining a formal schema.
BaaS Is the New Open Source
Backend as a Service (BaaS) is emerging as an important enabler for rapid product development. An array of services can be integrated to save you from writing a lot of tiresome code for commoditized functionality—everything from data persistence, notifications, and log management to gathering feedback and A/B testing.
In part 1 of this series, we have looked at the challenges posed by the proliferation of new mobile and ambient technologies, outlining approaches for coping in this new world. A key take-away is that we need to look beyond the current generation of mobile devices to the more complex and shattered future that is dawning. The precise texture of this future is still unfolding, so unless we are only looking for short-term wins, we need to adopt adaptive and responsive strategies for product development, along with the technology practices that enable rapid change.
In part 2 of this series, we will explore the types of strategies and product visions that are likely to be effective in this shattered world.