By Jean-Paul de Vooght
According to Define Your Digital Strategy, a report from MIT’s Center for Information Systems Research, Digital Transformation consists of “a business strategy, inspired by the capabilities of powerful, readily accessible technologies—e.g. social, mobile, analytics, cloud or IoT—intent on delivering unique, integrated business capabilities in ways that are responsive to constantly changing market conditions.” These initiatives typically cut across departments and are determined by an organization’s ability to implement a set of digital services to sustain digital initiatives.
Digital Transformation
Consider a traditional company that uses software to provide its goods or services. With access to advanced data analysis tools that incorporate the latest machine learning (ML) techniques, data-savvy power users may look to their corporate reporting team for onboarding additional data from sources such as remote sensing or social media feeds to mix with their own data inside the tool. These types of insights lead to re-thinking the approach to canned reports on one hand and self-service reports on the other. This has ramifications for the data warehouse or data lake itself supporting various reporting needs.
Let’s now think of a software product company supporting advanced navigation systems to see digital versions of street signs ahead of time on the display. The rendering of the signs have to be timed by the vehicles as they approach the locations of the physical signs. They also need to be rendered in a faithful manner to match the cognitive abilities of our brain engaged in driving with limited attention to dashboard information. We work with an organization that offers this type of digital product to automotive OEMs. That company may make use of extended delivery teams that produce the requisite software components on top of its map production pipeline.
A third example is based on a servitization strategy for a client that traditionally has sold high-end, complex machinery. The organization has adopted a digital strategy to shift from selling its expensive boxes with associated maintenance plans to a model where its clients ‘buy the output’ from the boxes while leaving maintenance complexity to the manufacturer.
What our teams have in common in the above client examples is a high degree of automation in the way they deliver functionality. We view automation as a tool for improving overall customer experience, speed, agility, and quality and not a tool for cost reduction. Once code is pushed into the version control system, continuous integration (CI) pipelines are able to pick up the new code and run automatically through a number of tasks—unit tests, static code analysis, build and artifact publishing, and deploy to the next environment. The CI pipelines and target environments are also established using automated scripts. Automation allows teams to experiment several times within a given time box, typically two or three weeks following Agile Scrum. The best teams are further empowered through continuous delivery practices, including the ability to deploy incomplete features hidden behind feature toggles. These practices are no longer restricted to organizations shipping software. Every organization that treats software as a strategic asset should adhere to this way of working.
Despite high levels of automation, which make high frequency, high-quality delivery of software and updates possible, empathy with users remains an essential aspect and the other side of the high-performance-team coin. Empathy driven development manifests itself in obvious ways when the team engages in discussions with its product owner and end users. The team learns about challenges and opportunities in the use of digital products in workshops run by experience engineers and design thinkers, as well as through ceremonies such as sprint reviews and dedicated immersion exercises with end-users. Empathy also manifests itself when software engineers engage with InfoSec officers and site reliability engineers early in the software design so they can capture requirements from the start and avoid failing production acceptance tests. This is sometimes referred to as Shift Left testing and the quality assurance (QA) automation practice supports the team with requisite tools and practices to support Shift Left QA practices.
Empathy-driven development is explained by Jeff Sussna in his report, Designing Delivery Rethinking IT in the Digital Services Economy. In the report Sussna reframes post-industrialist mindsets of software production in terms of a transition from efficiency towards adaptability enabling a vision of “brands as digital conversations.” He also incorporates an approach to empathy based on Mark Burgess’ Promise Theory, which formalizes the empathy we express in the form of promises along the journey map captured by fellow experience engineers. These promises form at the junction of touchpoints and relationships. It may be just a coincidence that Burgess devised the principles of Promise Theory, along with Jan Bergstra, as he was working on CFEngine, a popular automation tool that precedes the likes of Chef or Puppet and is used to make infrastructure-as-code a reality.
Automation Impacts
As artificial intelligence (AI) and applied ML find their way into modern software development teams, we can only imagine the impact their applications will have on automation. I am not referring to the use of AI or ML for the product or service, but for its making. We can think of assisted ways for generating unit tests and achieving greater test coverage or for performing more holistic static code analysis to identify mounting technical debt, architecture concerns, and opportunities.
As we begin to recognize the pitfalls of applied ML with very large-scale systems, such as social media platforms, chances are that empathy will remain a key element in high-performance teams. Successful teams will find a way to balance the power provided by automation, while retaining focus on the end user.
Jean-Paul de Vooght is the senior director of client solutions at Ness Digital Engineering.
Jul2019, Software Magazine