The emergence of Alexa, Siri and Cortana, is driving businesses to investigate how conversational user interfaces (UI) and natural language processing can better serve their customers. That’s according to our latest Technology Radar—a comprehensive biannual analysis of software development trends, from the technology advisory board (TAB) at ThoughtWorks. The insight is gleaned from assessing the technology, tools, frameworks and techniques that leading businesses are using to deliver business advantage. Other recent trends we see shaping business include the growth of platforms and APIs as a product, developer experience, intelligence as a service, and the pervasiveness of python.
Conversational UI and Natural Language Processing
Conversation—a new way to interact with applications—took the consumer technology ecosystem by storm with tools such as Siri, Cortana, and Allo, and then extended into homes with devices such as Amazon Echo and Google Home.
Building conversational and natural language user interfaces, while presenting new challenges, has obvious benefits. We may have become accustomed to using keyboards or touchscreens, but vocal interaction can be more intuitive. Not that the change will be easy. The team behind the Echo intentionally omitted a screen, which forced them to rethink many human-machine interactions.
The conversational trend is not just limited to voice; as messaging apps have grown to dominate both phones and workplaces, we see conversations with other humans being supplemented by intelligent chatbots. As these platforms improve, they will learn to understand the context and intent of conversations, making interactions more lifelike and therefore more compelling.
The future will bring a wider range of interactions that will integrate gestures, facial expressions and touch, blurring the line between physical and digital experiences. Utilising machine-powered processes for simple tasks allows technologists to focus on new scenarios, complex interactions and consequences.
Intelligence as a Service
A family of platforms that we call intelligence as a service burst onto the scene recently. These platforms encompass a wide variety of surprisingly powerful utilities: from voice processing to natural language understanding, image recognition, and deep learning.
Capabilities that would have consumed costly resources a few years ago now appear as open source or SaaS platforms. It appears that the "cloud wars" have moved from competing on storage and compute to cognitive capabilities, as witnessed by the willingness to open-source previously differentiating tools such as Kubernetes and Mesos.
All the big players have offerings in this space, along with interesting niche players worth assessing. Although we still have reservations about the ethical and privacy implications of these services, we see great promise in utilising these powerful tools in novel ways. We see businesses already investigating which new horizons they may expose by combining commodity cognition with intelligence about their own businesses.
Rise of the Platforms
Notable Silicon Valley companies have illustrated how building a suitable platform can yield significant benefits. Part of their success comes from finding a useful level of encapsulation and capabilities. Increasingly, "platform thinking" appears across the ecosystem—from advanced capabilities highlighted on the Radar such as natural language to infrastructure platforms such as Amazon.
Businesses are starting to think about platforms when exposing select capabilities via product-inspired APIs. Development teams think more in terms of building platforms for integration and improved developer experience. It seems the industry has finally latched onto a reasonable combination of packaging, convenience, and usefulness.
One way of describing platforms explains that they should expose a self-service API and be easy to configure and provision within a team environment—which intersects nicely with another emerging theme, Developer experience as the new differentiator. We soon expect to see further refinement in both the definition and capabilities of platforms.
Developer Experience as the New Differentiator
User experience design has been a key differentiator for technology product companies for many years. Now the rapid rise of developer-facing tools and products, combined with the scarcity of engineering talent, is driving a similar focus on developer experience.
Increasingly, organisations evaluate cloud offerings based on the amount of engineering friction they reduce, treat APIs as products, and spin up teams focused on engineering productivity. At ThoughtWorks, we have always obsessed over efficient engineering practices and promoted tools and platforms that make developers’ lives easier, so we’re pleased to see the industry beginning to adopt this approach.
Key developer experience techniques include treating internal infrastructure as a product that needs to be compelling enough to compete with external offerings, focusing on self-service, understanding the developer ergonomics of the APIs you produce, containing "legacy in a box", and committing to ongoing empathetic user research of the developers using your services.
Python is a language that keeps popping up in interesting places. Its ease of use as a general programming language, combined with its strong foundation in mathematical and scientific computing has historically led to its grassroots adoption by the academic and research communities. More recently, industry trends around AI commoditisation and applications, combined with the maturity of Python 3, have helped bring new communities into the Python fold.
The latest ThoughtWorks Radar features a few Python libraries that have helped boost the ecosystem, including Scikit-learn in the machine learning domain; TensorFlow, Keras, and Airflow for smart data flow graphs; and spaCy which implements natural language processing to help empower conversationally aware APIs. Increasingly, we see Python bridging the gap between the scientists and engineers within organisations, loosening past prejudice against their favorite tools.
Architectural approaches such as microservices and containers have eased the execution of Python in production environments. Engineers can now deploy and integrate specialised Python code created by scientists through language- and technology-agnostic APIs. This fluidity is a great step toward a consistent ecosystem between researchers and engineers, in contrast to the de facto practice of translating specialised languages such as R to the production environments.
For more information, visit Thoughtworks to access the interactive version, download the PDF and watch videos exploring these important issues in more detail.
Mike Mason, global head of technology at ThoughtWorks
Image Credit: Alphaspirit / Shutterstock