AI and the Future of Software Development.  A case for Conversational Software Development?

AI and the Future of Software Development. A case for Conversational Software Development?

AI tools like OpenAI/GPT, Bard and others are causing everyone to talk about “all of the things” that can be done with them and the potential for change that they represent.? In software development, specifically, there are a lot of very smart people trying to figure out exactly what this means.? To date I’ve seen a few interesting experiments and more than a few innovators starting to use this technology as a helper to writing code. ?But I’ve not seen any IDE (Integrated Development Environments) and SDK (Software Development Kit) creators talk about how this technology should fit into the future of these tools.

An IDE is software for building applications that combines common developer tools into a single graphical user interface.? They include things like a source code editor, bundling of SDKs, automation and debugging tools, and others depending on the IDE.? In short, a tool for better, faster and more productive software development.? AI has the potential to revolutionize this process.

During my career in software development, I’ve had the opportunity to lead engineering, design and product teams.? It’s with this combined experience in mind that I’d like to issue this challenge to Microsoft (MS) and other IDE creators.? Specifically, MS because of their very large investment in OpenAI and by extension ChatGPT.? This is how I think future IDEs should integrate AI.

Conversational Software Development?.? Today software development is a one-way conversation between and engineer and his or her tools.? Conversational Software Development envisions a future where it’s a two-way conversation between a developer and an AI fully integrated into an IDE or SDK. Let’s take an example of an API for fetching a customer profile.? Since this calls out Microsoft (MS) specifically, and I am a big fan of Halo, I am going to use the name Cortana to refer to the MS AI, and the name Kevin for our theoretical conversation (points to anyone who can figure out what movie I am referencing with the name Kevin).?

“Good morning, Cortana”.? “A good morning to you as well Kevin, what are we making today?? Or are we picking up where we left off yesterday”.? Note the implied ability to remember what was being worked on previously.? If Kevin had chosen to continue on the work from the previous day Cortana would have proactively provided information and prompting to ensure maximum continuity and minimum context switching costs.? Now back to our conversation.? “Thanks Cortana today I want to develop an API that fetches customer data from our primary NoSQL customer database, uses the cloud, and will have many potential users”.? “Sounds good Kevin, do you have any target performance targets in mind and what would be the payload of the API”.? “Good questions Cortana, we are going to want to shoot for around 100MS and the payload is going to need to be; name, phone, email, address, and last 4digits of the SSN”.? “Sounds like we are going to be dealing with PII, we should attach the usual rules and security modules to this API.? Now let’s get started with the rest of the details.? Here is a list of previously used secrets and key stores as well as other key components we are going to have to keep in mind”. At this point Cortana throws the code for the API on screen the collaborative editing and development session continues along these lines.? Conversational Software development envisions putting together all of the best parts of autofill, auto suggest, predictive typing, and paired programming with the conversational power and memory of a very good AI.? ?Not only will this approach increase velocity and code quality, it would be a way to always ensure consistency of code and enforcement of coding rules and standards across all engineers regardless of location or relative experience.?

This sounds like a simple exchange, in reality the scenario described above is actually incredibly difficult.? There are potentially hundreds of decisions and options that need to be made or taken in order to successfully complete development of a high performance, secure and multi-use enterprise grade platform with PII like this API.? The reality is that, regardless of the difficulty, this is exactly the kind of work engineers are undertaking every day in one person startups to the largest corporations in the world.? This is the kind of difficulty that Conversation Software Development can simplify and democratize.

This is what my 20+ years of industry experience tells me the future should be.? So, Microsoft (and others), can we count on you?

Copilot and some other implementations allow text-to-code (ex: // reverse this array) interpretations which speeds up development significantly by avoiding writing boilerplate code (although there are some trademark issues there). To your point, a more end-to-end solution, which would integrate PM Tools (like JIRA), Bug Trackers and other management capabilities would allow you to be your own department! Great article.

回复
Frank Villavicencio

Chief Product Officer | Entrepreneur | AI Whisperer | Advisor | Author

1 年

I have a few colleagues that have used ChatGPT for software development in current production projects. The general sense is that ChatGPT generates code that they incorporate into their standard IDE and SDLC process. In a way, this is augmenting the software engineers capacities. I figured that integrating this AI capability directly into the IDE is the next logical step (for a while), until AI takes over all software development work of course.

回复

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

社区洞察

其他会员也浏览了