Prepare For AI That Learns To Code Your Enterprise Applications (Part 3)
Get Ready To Work With TuringBots: The Time Is Now
Enterprise TuringBots are an imaginary but realistic future we’re painting based on what we know today. There is solid prior art proving it. To see our definition on TuringBots, read our first and second blog of this series. In a Forrester webinar back in September 2020, a whopping 28% of attendees voted that TuringBots will become a reality and will be adopted over the next three years. Meanwhile, 68% of the attendees were more cautious, suggesting that adoption would take much longer than three years. Only 4% thought TuringBots are an absurd idea! I was with the more cautious group, but I was wrong. Recent evidence clearly suggests that TuringBots are coming and are oftentimes here already.
Key Steps To Prepare Yourselves For TuringBots
So, the first thing you should do is to monitor the market. We initially suggested the maturing of TuringBots would evolve more slowly last year, but in 2021, things have more rapidly progressed.
The next step is to understand your role in working with TuringBots. Will you be a builder of TuringBots or a companion working alongside them? Most end-user companies will be consumers of TuringBots. Their project and development teams will either partner with TuringBots by leveraging vendor platform offerings and tools or through low-code or no-code development tools for pro and citizen developers. Alternatively, they will leverage packaged application platforms, test automation platforms, and more, as they evolve and infuse TuringBots into their offerings. Platform and development tool vendors like Amazon, Google, IBM, Microsoft, and other more specialized independent software vendors (ISVs) will be builders of TuringBots that others will consume, OEM, and use as a service.
Finally, you want to explore your options for experimenting with TuringBots. Here are some scenarios where you can start:
- TuringBots for testing. Many test automation tool vendors, testing services companies, and enterprise users are using AI to self-heal failing tests, to smartly increase test automation, and/or to optimize overall testing strategies. These are TestTuringBots. We’ve written extensively about them here.
- TuringBots for coding. TuringBots for coding will sit side by side with developers. The popular agile pair programming approach evolves to one where the pair is made of a developer and a bot. For this option, the recent announcement by Microsoft with GitHub Copilot is a real opportunity to start experimenting. GitHub Copilot is trained on billions of lines of code leveraging OpenAI Codex GPT-3 because it:
- Extends the developer’s coding editors with code generation from code comments in natural language.
- Autofills repetitive code once provided with a few examples.
- Generates unit tests to technically check if the code written/generated does the right things developers expect.
- Proposes code implementations alternatives when asked. It does so on many coding languages and in return increases developer productivity (no benchmark yet). And we think it will also get timid coders closer to and more enthusiastic about coding, resulting in a new form of low-code — assuming Copilot does not just copy and reuse “existing snippets of code from GitHub” since it would damage developers’ consensus. Initiatives of using natural language processing for low-code or no-code tools are also starting to surface in this use case. Open source options are also starting to appear.
- TuringBots for enterprise application development and delivery. Embark on a more ambitious enterprise development team experience with TuringBots. The most relevant effort we’ve seen today is IBM AI for Code and Project CodeNet. IBM runs a series of joint research and services initiatives to automate development and augment more roles in development teams other than developers. Project CodeNet is one of the largest code-only repositories available for free, cleansed and maintained by IBM. It’s at the heart of IBM’s development TuringBots strategy. AI for Code stack is IBM’s overall stack of toolkits that helps build AI-infused applications, modernize existing apps, and migrate apps to cloud architectures. It also offers code language translation, search and retrieval, performance improvement, memory improvement, vulnerability detection, debugging, code similarity, and classification. For example, IBM helped a large automotive refactor an old Java legacy application of over 1 million lines of code in 25 microservice partitions and 3,500 Java classes, cutting down one year of manual work in four weeks.
More Homework Is Needed
Strengthen your enterprise functional and non-functional specification capabilities, and look for tools that help you do so easily, fast, and possibly in natural language. TuringBots will be able to read them and so will humans as you move forward to using more TuringBots. Push your vendors to innovate, and monitor what is happening in the market. TuringBots will happen based on how fast vendors like Amazon, Google, IBM, Microsoft, Oracle, and others will move into this space. IBM and Microsoft have started the race.
Are you building or partnering with TuringBots? We would like to hear from you, so please let us know at firstname.lastname@example.org.