Conversation—a new way to interact with applications—took the 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. The team behind the Echo intentionally omitted a screen, forcing 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 explosion of interest in the marketplace and mainstream media leads to a corresponding rise in developer interest in this new personal exocortex interaction mode.
Intelligence as a service
A family of platforms burst onto the scene recently that we call intelligence as a service. 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 utilizing these powerful tools in novel ways. Our clients are already investigating what new horizons they may expose by combining commodity cognition with intelligence about their own businesses.
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, organizations 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 it excites us to see the industry beginning to adopt this approach.
Key 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.
The rise of platforms
The Radar themes emerge from observations and conversations during the vetting process; recently, while compiling the Radar, we've noticed the number of new entries in the Platforms quadrant. We think this is indicative of a broader trend in the software development ecosystem.
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 definition that we like is that platforms 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 expect to see further refinement in both the definition and capabilities of platforms in the near future.
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 commoditization and applications, combined with the maturity of Python 3, have helped bring new communities into the Python fold.
This edition of the 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 organizations, 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 specialized 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 specialized languages such as R to the production environments.
Somos una compañía de software y una comunidad de personas apasionadas, movida por objetivos. Pensamos de forma disruptiva para ofrecer tecnología que haga frente a los retos más difíciles de nuestros clientes, a la vez que buscamos revolucionar la industria de TI y crear un cambio social positivo.