The Second Wave of AI: Reimagining Software Development

The Second Wave of AI

The public release of ChatGPT in 2023 was a step function improvement in the capability of AI to help in software development. ChatGPT is powered by Large Language Model (LLM) technology. GenAI (or Generative AI) is the field of Computer Science that covers technologies like LLMs.

Any major technology revolution tends to go through two waves. In the first wave, people use the new technology to accelerate what they already do. In the second wave, people rethink what they are doing.

stormy ocean with big wave
Photo by Kammeran Gonzalez-Keola on Pexels.com

Currently software engineers are using AI to accelerate what they are already doing: writing code, writing unit tests, researching information online etc. In the second wave of AI, we will redesign software development so we will build and run software much faster and at a much lower cost.

Just like we moved from writing Assembly Language code executed by CPUs to writing Python code that interpreters can execute, we’re moving from writing every line of code executed by interpreters to writing intelligent system rules that AI can execute.

How? Read on to find out. But first let’s take a few examples of past technology revolutions to understand how the second wave of that technology is different than the first.

Google Search

When Google Search first came out, people would type one word queries: “car”, “target”, “apple” and they would open each link in the search results to find the right web page. People would go through multiple pages of search results. Why? Because this is the process they used to use on Yahoo. So Google Search initially just accelerated their existing process by returning better search results but they still clicked on many search results to find the answer.

person using macbook air
Photo by Pixabay on Pexels.com

Once people got used to Google Search they started typing in long phrases like “fastest car in 2024”, “Target store near me”, “latest Macbook Air release date”. People realized that they don’t have to click through many search results but can actually just get the right page for their question if they specify more details about their quest. The number of words typed into Google went up and people visited fewer links in the search results. The second wave completely rethought the process of searching online.

The Internet

In the first wave of the Internet, companies largely digitized their brochures and put them on their web site. Instead of the user requesting brochures to be shipped to them or walking into the store, they could save time by accessing the information in the brochure online. So the first wave just accelerated the existing process.

Gap.com in 1996

In the second wave of the Internet, companies built web sites that enabled users to find and buy the product without needing to scroll through online brochures. The second wave redefined the existing process.

Gap.com in 2024

The Second Wave Phenomenon

You can see the same pattern with other technology revolutions like mobile phones, web frameworks and more. With mobile phones, people first used them to do what they already did on their desktop: surf the web. In the second wave, we rethought the process by having live driving directions, instagram with photos etc.

The first wave is about accelerating what we already do. The second wave is about rethinking what we do. The first wave definitely adds value but the second wave is what adds the real transformative value where we completely rethink and redesign our processes.

We know the first wave of AI is to accelerate what we already do: writing unit tests, finding answers online, writing software, writing communications etc. What does the second wave of AI enable?

What does the second Wave of AI look like?

While, of course, it is impossible to predict the future, I think there are a few areas that we can expect AI will change how software is developed.

1 – Talking to APIs without writing code

In modern software development, we spend a vast amount of time building integration to APIs. This process typically involves:

  1. The engineer reading the API specification
  2. Writing code to convert data in our code into the input schema of the API
  3. Calling the API
  4. Converting the data from the API into a schema that our code wants
  5. Writing code to handle all the different errors that the API can return.
screen with code
Photo by Stanislav Kondratiev on Pexels.com

Nowadays it is typical for a single company to use tens (or hundreds) of APIs. These APIs are also being updated every three months (on average). So this work can really add up!

The core reason for all this work is that the communication between our code and the API is tightly coupled. Tightly coupled means everything in this process must be exactly defined or the API communication will not work.

close up of a yellow gas pipe
Photo by Julia Filirovska on Pexels.com

GenAI now enables us to turn this process from a tightly coupled process to a loosely coupled process. We can provide GenAI with our data, a link to the API schema doc and a definition of our desired output schema. GenAI can manage the process of converting our data to the API schema, calling the API, converting the output to our desired schema and automatically handling the errors defined in the API documentation.

Note that there is no code generated here but GenAI is managing all this at runtime.

Think about how much time can be saved in API communication by not writing API communication code at all.

2 – Seamless Data Interoperability

APIs aren’t the only place we do data transformation. We receive data from non-API sources as well such as batch files, bulk uploads etc. Again, we spend a lot of time transforming data back and forth and adding business rules to ensure the data is valid.

close up photo of matrix background
Photo by Markus Spiske on Pexels.com

We can now use GenAI to automate this process without writing any code.

3 – Information Capture

One of the frequent operations in software development is capturing information from the user. Much of UI in a software app is just this. We show a UI to the user so they can provide the software information to execute an operation.

Registering a new account, purchasing a product by providing credit card and shipping information, entering a new prescription are all examples of information capture.

We know the schema of the information we want to capture but have to provide a UI for the user to provide us this data. And we define some business rules to ensure that the information we capture is of high quality and won’t break our backend process e.g., checking that date is formatted correctly, when someone chooses the credit card option they must provide the zip code etc.

Think about how much of your own software project is just information capture.

new contact directory on flat screen computer screen
Photo by MART PRODUCTION on Pexels.com

Today we have two primary solutions for this.

First is to have engineers build a UI to capture this information. This is expensive and when we add some new information to capture, we have to repeat this process.

Second solution is to use a “form generation” software library. These are expensive, really hard to integrate into your software and are largely a black box to the software developer. As a result, majority of software code uses the first solution.

With GenAI, we can rethink this process. We can just provide our information capture schema to GenAI and it can, on the fly, create the UI to capture the information and incorporate our business rules to guide the user into provide us all the needed information.

4 – Personalized User Experience

We know that users respond better to a user experience personalized to them; they buy more when the experience is personalized, they spend more time and they return more often. However it is very expensive to build personalized user experiences today.

Typically this process involves writing a common user experiences and then identifying a few elements that we want to personalize. We identify a few different variations and then we write code to dynamically change some UI elements based on these variations.

Since this process is so expensive, most companies can only afford to personalize a very small number of UI elements and use a very small number of variations. For example, they may change the color scheme, change left-to-right to right-to-left for other languages, change date formats between US and Europe etc.

I think the days of creating a common UI will soon be obsolete.

With GenAI, now we can just create individual UI elements and let GenAI compose them into a personalized UI for each user. Because the cost of personalizing essentially goes to zero. We can provide GenAI with a profile of the user and a set of UI elements and have it render a UI on the fly that personalizes those UI elements to fit the profile of the user. To paraphrase Oprah: “You get your own UI and you get your own UI and you get your own UI”.

I think this second wave heralds a shift where each user gets a personalized UI.

The work of UI designers changes from designing the UI to defining the rules that GenAI should follow when composing a personalized UI for each user.

The work of UI engineers changes from implementing the full UI to implementing UI elements that will be composed by GenAI.

5 – The rise of the voice and video interfaces

Today the main interface for users is the click, touch and type interface. They see a UI screen with information and they click or touch a UI element and then type using their keyboard. If you think about it, this is a very cumbersome process for users. First they have to learn your “language” i.e., how you’ve laid out your UI to communicate information and how you’ve designed the “knobs” for them to provide you information. Doing this on a mobile phone is even harder. The result is that apps require you to go through many screens to do something that is very basic like creating a new account or buying a product.

pokemon go application on smartphone screen
Photo by Pixabay on Pexels.com

Companies have tried to build voice interfaces before like Amazon Alexa, Apple Siri or Google Assistant. Unfortunately these can only handle very basic voice commands so using them involves a lot of back-and-forth corrections until you get what you want. In addition, implementing these voice interfaces requires very complex technology so they are only implemented by really large technology companies.

black amazon echo on table
Photo by Fabian Hurnaus on Pexels.com

GenAI now offers multi-modal capabilities. You can ask your question using your voice and get the answer in a very natural voice. You can get your answer in a photo, diagram or video instead of text. You can paste a photo in GenAI and get the answer in voice. Best of all, any technology company can use these capabilities for less than one cent per user with no investment of complex infrastructure! This puts these voice, photo and video capabilities within reach of every technology companies.

I think we’ll see software incorporating voice, photo and video capabilities alongside (or in some cases instead of) traditional click, touch and type interfaces.

Summary

In this article, we described five ways AI will fundamentally change software development forever.

The future isn’t about AI replacing developers, but empowering us to think and build differently. Just like we moved from writing Assembly Language code executed by CPUs to writing Python code that interpreters can execute, we’re moving from writing every line of code executed by interpreters to writing intelligent system rules that AI can execute.

This second wave will greatly improve the richness of software experiences we can build at the same cost.


Popular Blog Posts


Leave a Reply

Your email address will not be published. Required fields are marked *