The Emerging Age of "Code Written by Data"?
Early Programming of the ENIAC computer as envisioned by AI (https://deepdreamgenerator.com) credit John Held

The Emerging Age of "Code Written by Data"

Summary: for humans, writing code is hard, but reading it is even harder. As a result, old code is hard to manage: organizations are saddled with complicated, brittle, and hard-to-modernize code. Object-oriented programming and API management are partial but incomplete solutions. AI (deep/machine learning) is an old concept that is at last workable, and in exponential time, will be transformative. The result will be a transformation of the way logic is coded: Code Written by Data. Applications will be simpler and more powerful, with complex handwritten rules replaced by self-learning algorithms based on a 'digital twin'. The article finishes with four recommendations on how to move forward.

Since the dawn of computing, writing code has been a difficult process. Managing and maintaining code is even more difficult, due in part to the finding that computer code is the only human language that is easier to write than to read. A recent MIT study found that when subjects attempted to read and understand computer code written by others, the parts of the brain that are normally activated when reading spoken language do not fire. Neither does reading code activate the networks in the brain associated with mathematics. (Source: MIT)

The difficulty in maintaining code contributes to code obsolescence. One reason why old software programs have to be replaced is the organizations that wrote the code have difficulty understanding it after the original authors are no longer available. We have all experienced the cycle of a new, simple, elegant piece of software replacing something old, complex, and unstable, only to find over a period of years the new elegant system becomes ever more complex and out of date, until finally it is replaced and the cycle begins again.

A few attempted solutions have been developed to improve the ability to maintain and evolve code. An early approach was 'object oriented programming' that sought to abstract the complexity of code into modular units mapping to concepts more akin to real-life entities. The intent was to make code more modular so that programmers could better understand each other's work and the whole of the code - and in so doing both understand the code better and be able to better evolve the system.

New concepts like API management put old code (such as a mainframe system) behind well-documented, standardized ways of accessing the old system's functionality. This approach might help an insurance company dependent on a mainframe for core processing enable a customer website with the ability to self-service filing a claim, or pay a bill. Nonetheless, at some point, the limits of the old, poorly understood system cannot be solved simply through a better way of interacting with the old system. The company saddled with this deficit becomes a target for a new entrant without the constraints of a brittle, old system to maintain.

Artificial Intelligence (AI) is an old concept that has had a significant resurgence due to the exponential increase in price-performance of computing, data storage, and sensors. At the heart of the concept of AI is that algorithms are trained to develop models of the real world by automated analysis of a huge amount of data. Models are another word code for "code." Amin Toufani of the Singularity University and Key Labs refers to this concept as developing a "Digital Twin" of the real world. Models by themselves do not represent fully-functioning software. Human judgment is needed to temper, constrain and occasionally override model-driven solutions. Additionally, human programming is still required to write the integration of different architecture layers and components, such as connecting the Application Layer (User Interface) to the Logic Layer (where AI-based models play a role) to the Data, Orchestration, Authentication/Authorization and other layers depending on what application architecture terminology is used.

The use of AI-based models as the core of the "Logic Layer" of an application eliminates a huge amount of judgment-based logic from the codebase. Deciding when, and what book to recommend based on the book you just looked at on a website has been a familiar experience for most of us for over 20 years since Amazon's launch in 1994. What is new today is the extension of the concept into visual, auditory, spatial, full-text, video, and other data-rich domains. No longer do programmers have to depend entirely on their ability to faithfully translate the laws of physics, common-sense, and traffic laws into manually written code to enable, for example, self-driving. In a recent interview with Elon Musk, automotive lean manufacturing design evangelist Sandy Munro asked how many 'bazillion -trillion' lines were in Tesla's self-driving system. Elon replied that at most, the full-self driving code was a "maybe I don't know - a few hundred thousand lines' and commented:

"I don't think lines of code is necessarily good...
...I would consider a large number of lines of code to be bad, not good. 

In fact I would generally give two points for deleting a line of code and 
one point for adding a line of code."

"The lines of code is becomes especially not a merit figure merit for 
when you've got a lot of complex neural nets operating and you have 
a lot of matrix math [making the decisons]."

Elon Musk interview with Sandy Munro, Feb 2, 2021

In their "Big Ideas 2021" report, Ark Investments proposed a new way to describe this new era. They describe the prior era, from the dawn of computing to about the mid 2010s as the era of "Code Written by Humans" and the new era we are just entering as "Code written by Data." This is a concise and memorable way to describe the period we are in today. Ark describes the potential impact as potentially bigger than the internet with the potential to add trillions to equity valuations over the coming decades. According to Ark, the story goes like this:

Until Recently Humans programmed all software

Put in historical context, in the next decades, the impact of AI (aka "Deep Learning") will expand from today's impact on purely internet-based services such as social media, search, and recommendations, to a massive impact on applications in the physical world of vehicles, conversational systems (Robo-advisors, chatbots, therapy, automated code translation and authoring, disease diagnosis), and chemical/biological processes such as drug discovery and material science.

No alt text provided for this image

In the coming years, code written by software will be transformative to how organizations digitize their core capabilities; an outcome will be simpler, easier-to-modify, and monetize code. Tesla's less than 300K lines of human-written self-driving code backed by billions of miles of driving data is an example of things to come.

So none of these insights are particularly novel or new on their surface. We've all seen the headlines (and the hype). What is critical is to recognize the non-linearity, start to think differently about code (Digitalization), develop a business-outcomes driven plan, and balance data "offense and defense" (more about that below)

There are four critical takeaways:

  1. Think exponential, not linear: advances in AI will happen on an exponential scale. As stated before, AI depends on computing power, storage, and digitalization of the real world via data capture from sensors - all of these dependencies' price-performance is improving on an accelerated scale. Additionally, AI benefits from the network effect of researchers' and practitioners' ability to rapidly discover, modify and extend each other's innovations. If the emerging power of computers to decipher and interpret video and photo, audio, spatial and other information does not seem especially relevant to your industry know that change will come faster than you might anticipate.
  2. Challenge yourself to think"Code Written by Data" for all your projects. Not every development process will benefit from AI, but missing opportunities now will be hard to reverse later. Start to think of AI not as something separate and distinct from the process of developing code, but as the logical progression of how code is created and applied. If your business involves the digitization and automation of currently manual tasks, consider how to use AI to develop the simplest possible human-developed code by leveraging the power of algorithms, modes, and digital twins of your physical real-world entities such as products, vehicles, stores, equipment, storage systems, cameras, scales, telephony systems as well as abstract entities like customers, suppliers, regulators, employees, and competitors.
  3. Develop a business-outcomes driven plan. Gather the best minds from your organization to identify and prioritize AI opportunities and threats. This group should include senior leaders, but also recognize the input of people at all levels, particularly your non-conformist iconoclasts, Cassandras, and dreamers. Balance your internal thinking with outside perspectives; try to draw analogies from adjacent industries that are further along. Avoid the shiny new object' trap by putting all the ideas generated through a rigorous process of assessing the monetization and risk reduction potential of the ideas that pass your initial filter. "Infonomics" is a word for an emerging discipline of moving from 'talking about information as an asset to valuing and treating it as one. " My former colleague Doug Laney, who in 2001 coined the term "3V's of Big Data" (velocity, variety, and volume) has written a seminal book on this topic, "Infonomics: How to Monetize, Manage, and Measure Information as an Asset for Competitive Advantage." Read it, or get someone on your team to summarise the concepts for your executive leadership.
  4. Balance Data Offense and Defense. In your roadmap, you will need to think about your growth opportunities from AI as "Data Offense" opportunities to be prioritized, planned. resourced and executed against. Just like your favorite sports team, you will have to also think about "Data Defense," which includes systems and processes to ensure the veracity, discoverability, ethical and regulatory compliance of how data is used as well as ensuring data is protected against theft. You may find that before you can spend time on "offense" you need to shore up your defenses first. It is always a balance. See Tom Davenport's excellent HBR article on Data Offense and Defense.
Scylla and Charbdis

AI is impacting the world at an accelerated pace, increasing the speed and potential of Digitization of most industries and increasing the peril of those who fail to move fast enough. We are moving from an age of human-written code to data-written code. For a considerable time, it will be a hybrid, with the potential to realize the earlier dreams of more longer-lasting, simpler, modifiable core systems. In navigating this era, you will need to avoid the Scylla of becoming enchanted in the potential of AI, and overspending on pet projects that fail to deliver value AND avoid the Charybdis of failing to recognize the potential until others in your industry have created a gap that cannot be bridged.

John Held is a Senior Director with Alvarez and Marsal's technology practice. John's focus is helping organizations identify, evaluate, plan and execute digital transformation with a focus on data and analytics.

John Held

Management Consultant/Senior Director

3 年

As a more direct example of 'code written by data,' check out the demo by Sharif Shameem, founder of Debuild.io. Sharif's example leverages the GPT-3 "transformer," an AI model that generates text to translate human language (English) instructions into functioning React code: https://twitter.com/sharifshameem/status/1282676454690451457?s=20

回复
John Held

Management Consultant/Senior Director

3 年

Please see this fascinating new application that leverages GPT-3 to write user interface code: https://twitter.com/sharifshameem/status/1282676454690451457?s=20

回复

Interesting! Thanks for sharing, and hope you’re well.

回复
John Held

Management Consultant/Senior Director

4 年

Marcel Holsheimer, my esteemed former colleague suggested in response to my article an (excellent) HBR article on the topic of process mining as a process to create a base of data upon which to implement improved business logic (the topic of "Code Written By Data"). Process mining "capture(s) information from enterprise transaction systems and provides detailed...[log] information about how [compurtized] key processes are performing...[the] logs make visible how computer-mediated work is really happening, including who did it, how long it takes, and how it departs from the average." The article goes on to describe how RPA (Robotic Process Optimization) and AI can be used to simplify, automate and optimize core processes such as order to cash. https://hbr.org/2019/04/what-process-mining-is-and-why-companies-should-do-it

回复

要查看或添加评论,请登录

John Held的更多文章

社区洞察

其他会员也浏览了