How AI Is Transforming the Future of Software Development
Digital.ai CTO Wing To delves into how the way code is written, deployed and managed will fundamentally change in the artificial intelligence (AI) era.
Transcript
Hey guys, thanks. From the throw, we're here with Wing Toe, who's the CTO for Digital ai, and we're talking about the impact AI is having on coding. And boy, there are a lot of opinions about this one wing, welcome to the show.
Hey, thanks for having us. It's great to be here. So opinions are all over the place.
And let's just start with something that sounds relatively simple, but some people will say that the entry level coders will be become more advanced, more rapidly because they'll take advantage of AI to do things for them that previously they simply would not have been able to do. On the other end of the spectrum, folks will say that the senior develop folks will no longer be assigning stuff to entry-level folks. 'cause the AI will do that for them.
And, uh, it won't be anybody, whoever gets trained to do entry-level work anymore be, and therefore will not know how things are done because everything will be done by the more experienced folks. And someday we might not have anybody who actually knows what they're doing. So, um, on those two extremes, what's your take?
Where are we? And, or, well, I know it could be a little bit of both, right? It and it really has become, um, I think people have come maybe a bit too polarized with their thinking on this.
And, um, ju just to kind of put this into a context, I thought, oh yeah, because I think this is, this is somewhat in itself a repeat of history. So I thought, you know, what's the most popular programming language at the moment? Python, you know, by stretch, look at all these different surveys.
It's Python, I thought, I know out there there's people complaining about Python. So I then looked up and they are sure enough, indeed there's people complaining about Python. Oh, people don't know enough about the fundamentals of memory management, performance issues, always not as type, strict as some other languages.
And it's the same thing that's happening with ai because I think what's happening is that people are thinking, yep, there's gonna be a higher level of abstraction. And I think developers will end up picking up, um, different skills and they won't be able to, um, touch some of the systems as low level, or they might not in the day-to-day job, but they will, they will still understand the fundamentals of computing, or at least the, the good developers will always understand, um, the fundamentals of, um, writing software. But I do think it will help with where we're seeing technology go at the moment that in fact, the stack has got more complicated.
So I think that especially if we say, you know, we also hearing at the same time cognitive overload, that was the, that was almost like the thing last year. Cognitive overload, too much complexity. Platform engineering.
I'm thinking AI could help bridge between these two things. Um, it would help reduce the cognitive overload because people will be able to, um, take advantage of ai. But there's still an awful lot of work out there and there's still an awful lot of code that people have to write, maintain, debug, and the senior people will just be doing slightly different things.
I don't think they'll be delegating just to agents, at least not, not in the near term. So I think it's gonna be somewhere in between. I think we're gonna be having more empowered developers overall.
The type of skills they need will be different though. Um, rather like as we've moved into high and higher levels of la uh, programming languages, they will be more abstracted from the underlying, um, hardware. And for some disciplines that's gonna be difficult.
Like, um, say gaming people need to, um, so get squeeze every ounce of performance out. Yeah. People like that need to really understand the connection between high level and low level.
But for most programmers, that level of abstraction actually helps 'em be quicker. It helps 'em do more things. And AI will also help them, um, be able to access and learn and try new things out quicker.
But they would have to learn to use ai. Um, uh, there, there's this kind of imagination that we've gone, we've gone all the way to, like, now people can just type in the record requirements and uh, I will pop the code. The reality's not quite that straightforward.
Um, you still have to have enough knowledge of what you're trying to do and have to coax the right answer. And also to understand whether you get the right answer or the right code or the right, um, the specification. All of that still needs to really be done by someone that has skills in defining, prompting, extracting, and reviewing.
So I think it's going to be some new skills that entry and advanced programmers are going to need. Um, is now, I think that's gonna be a bit of a shift. You know, I was having a chat with somebody and they said one of the things that seems to be apparent to them is that they're writing less code, but they're reading a whole lot more of it and they need to review it and understand it.
And they can't necessarily outsource that to the AI agent because ultimately they are responsible for that. Yes. And I think that's something that is going to be, um, a bit of a, a bit of a, uh, a shift or maybe an increase in what was already happening.
Um, 'cause a lot of the focus has been on, um, what happens to the software developer as a, as a producer of code. But I think what this will, um, this will cause is actually more, more requirement on having better processes and also better dis um, better disciplines, um, across the teams and across, um, organizations. Because one of the things that, um, will happen is that, um, it's, it is true now that people should be reviewing code, but it's gonna be doubly so that people will need to be reviewing code.
They need to be ensuring it's thoroughly tested. Um, they need to ensure that, um, it's, um, that it's, uh, properly integrated with other systems because all of those things now become one more rapid. And those are where the problems will occur because, um, AI isn't perfect.
Um, and, and the, the junior developer's not perfect, um, but the rate and ch the rate of change and the possibility of things creeping in will be more so. So I think there is also a shift to not only things like having to do more code reviewing, um, which one would expect if you're, um, producing code of, um, ai, but also the whole set, um, better establishment and checking processes, which will I think also create some element of, um, change because AI will also be used there. Because again, there's a lot of work there.
How can you make sure that, um, processes are here to, how can we, um, automate as much of that as possible? How can we use AI there? So I think the role of the developer will not just will, will continue to shift into having to think not just about the code, but the entire, um, lifecycle and ecosystem from inception to actual delivery.
And of course, the, the feedback. The other thing I do hear from developers when it comes to reviewing code is the, they find it difficult to debug code created by an AI because they don't really understand how it was constructed in the first place. They weren't really involved in it.
So how do I kinda review that code? And I'm assuming at some point I'll get some help from another AI agent somewhere to review the code. But, um, how can we debug something we don't understand?
I, I think this, this is, this, this will, I think this will be an interesting, um, an interesting journey for us as a, uh, as an industry because, um, uh, certainly some things that, um, humans do that AI certainly at the moment is not, um, so preoccupied with, although I suspect it will change, is that, um, AI generates code, but it's, it's drivers may not be the same as, um, as humans. So, um, but especially good, good developers, they're encouraged to do as much reuse as possible. Um, they're encouraged to write more efficient, clean, easy to recode, but AI is designed to get the job done, um, and create the code around it.
So I, I, I think it's not, I think sometimes people overstating that it's, well, can't understand how it does it, it's, it's, it's, um, it's actually in some ways probably easier to understand because it's not doing it using more sophisticated, maybe creative ways of writing code. I don't, I think we've all had developers who are sometimes a bit too creative and a bit too ingenious in writing their code and that other developers can't understand it. But I think the code is not necessarily as elegant, um, probably more verbose, um, not as straightforward.
So maybe less interesting to read, but I don't think it's going to be, um, harder intellectually to read. Um, but it does also mean that there's gonna be a lot of it that's, that's the other problem of AI code. It doesn't tend to focus certainly at the moment on reuse.
So I think what some of the things we're hearing is just that there's a lot of, a lot of co to review, but I think this is also where people may start needing to use AI to do that task, but not the AI that wrote the code. So I think this is gonna be an interesting world going forward where people have to use different systems for different parts of the software delivery lifecycle, but the developer still needs to be in control. The developer can't just assign a, uh, another AI agent to go and review the code, the ai, it has to be guided, especially if it's, if it's AI checking on ai, then there needs to be human interaction.
Um, but I think that, I think the, the, the, some of the, some of the concerns about, oh, this code is unreadable. I'm not sure whether it's quite unreadable, it just might not be very elegant or pleasing to read. Fair enough.
What does the future of DevOps team look like? 'cause the more I talk to folks, the more it starts to feel like it's, you know, humans augmented by multiple AI agents. And somehow or other, um, just like humans collaborate, these AI agents are gonna have to find ways to collaborate and something is gonna have to provide some level of orchestration across those things.
But, um, how far down that path are we? Because right now I feel like we've got a bunch of individual little productivity tools, but not quite the symphony we need I I com, I com. I completely agree.
I think this is going to be the next level of shift. Um, as we think about, um, how these systems come together. I think previously everyone was thinking in terms of, um, silos or how can I do, um, maybe test creation?
Um, how can we ensure that there's, um, more AI driven, um, security scanning, for example, all these pieces, but they were in the silos. And this idea that of AI agent agents or just ai um, agents is now creating the opportunity to think, how can I com? How can we start composing them?
Um, but also how can I use AI to also think about how these compositions will react depending on the industry, how they might depend on the, um, the, uh, the processes, um, that an organization may have, um, or the policies, um, and best practice in the industry. And I think this is the way in which, um, DevOps is going to change, is what is, is going to be how to take advantage of, because I think there will continue to be evolving agents, improving agents rather, like we have already have different, um, tools in the software delivery lifecycle. Uh, now I think they're going to start being exposed as agents and, uh, challenge will be as a, um, a DevOps industries, how can we start rather than orchestrating, um, tools where we're orchestrating agents, but not just, um, statically, but how can they actually be genetically organized themselves?
And I also think, um, one of the other shifts will be not just, uh, running through the pipeline as we would normally expect, but all the tasks that people do when, as part of the pipeline approval processes, um, if something goes wrong, the remediation of that, I think those will start being agents at the orchestration system will also take advantage of. So we'll be a much more intelligent pipeline, um, as this industry evolves and the interfaces like, um, MCP, the agent to agent, um, all these type of, um, interfaces and standardizations are going really start making this possible. The other thing that I'm trying to wrap my brain around a little bit is the fact remains that our current DevOps workflows are very dependent upon scripts and they're very brittle.
Do you think as we kinda move into the age of AI, that either A, it will be easier to rip and replace scripts as needed, or b, will the whole system maybe just become a little more resilient? I wonder whether, um, I wonder whether script says they are today will be there in the future because, um, as same way some the, and this CC and this is one of the things that's, um, going to be I think a, a a build and evolution and shift being that a lot of focus has been on, um, co-creation creation, um, which clearly is, you know, is a, is a great, is a great usage of ai, um, because there's enough structure, um, there's enough, um, there's enough rigor in, in to apply ai, um, but there's as much work involved in the rest of the delivery of software. Um, so the writing of, um, the writing of all the scripts, and especially with cloud native stack, there's, um, configuration files, there's multiple scripts, and there's scripts not just for, um, uh, one piece of technology.
There's scripts for all the different layers of the, um, cloud native stack. I think people start looking at how those can be generated using ai. So there may still be scripts underlying it, but will they be human created?
Um, that script that, that is seems to me like, um, like a prime place to start applying AI technology. And in doing so, of course it can then be reactive and more dynamic depending on changes. So as you say, they're very brutal at the moment.
'cause even though it's great because we now have much more, um, um, configuration as code, it's great, but someone still has to maintain the configuration. Someone still has to change the configuration and there is an awful lot of it. Um, especially even just things like change, moving across the pipeline, moving from system to system.
AI can be very well placed to actually manage and control all of that, um, so that people, humans can focus on the, what is it I'm trying to do, as opposed to the, the how. Now, of course, all of that has to be orchestrated because the change has to be driven by, by something. So I think that's where we can start seeing, um, how these things can be more robust, um, because they may not always be, um, human written in the first place.
So what should DevOps engineers be doing? Because a lot of them right now, you know, they're kind of like standing on the shore and they can see this tsunami of codes starting to build and they can see it's coming their way, but they're not quite clear if what to do about it. And maybe their first instinct might be just a run, Which can be understandable.
'cause I think, I think unfortunately DevOps engineers have got two challenges facing them. Um, the fir the first is with the, with all this AI generated, even though I said yeah, software engineers should be more disciplined, they should add more process and, um, the, they should not fear AI because AI is just a tool. Um, but on the flip side, it is very possible for these, um, these, uh, developers to let things slip by and not do all the good software engineering practices.
And the DevOps engineer, especially because they're responsible for the, the, the quality of the release, they are now not only having to do what they normally do, but they have a lot of it to do. 'cause there's a lot of code being generated and, uh, a velocity. So I think the first thing they, um, they have a challenge on is how to ensure that any code, because it's going to have AI generated code in it, or it's gonna have some ai, um, assisted help somewhere along the way.
So the first challenge is how are they ensuring that what is being provided and what they have to deliver has a, has a degree of quality and checks. And I think that that's very much, um, adopting some of the best practice that we have today around automation, um, reusable pipe, um, pipelines, golden paths, all the things that we're seeing become that we we're already discussing. The, the industry, they're becoming even more vital because I think without, um, automation, you're not gonna get the speed without providing golden pubs.
You can't check that these code, this new code isn't providing. Um, so for example, uh, um, uh, IP information that usually they shouldn't be, um, private data, et cetera. So I think the first challenge is manage the code that's coming through to ensure it's got compliance and rigor and quality.
Um, for example, that is all been, um, has been, um, passed through, uh, code reviews by a human, at least some human that tick the box, even if they may not have looked at it as thoroughly. Um, but then the second thing is I think they should, um, DevOps engineers should be looking at how they can take advantage of AI themselves because, um, the pipelines themselves can be complicated and the, um, the steps within a pipeline can also be complicated. So how can they use AI to help them, um, understand risk of particular changes, um, so that they, that they can, they can make decisions based upon as much information but not have to look at the information themselves.
Um, again, maintaining the scripts. Um, how can, uh, a DevOps engineer, um, create scripts that are more robust because, um, they have AI looking for it. I think the, um, the other opportunities they have is also, um, looking at how AI can help troubleshoot as well.
I think that's ano, um, another area, especially when, because in these modern systems, especially with more code and shortened space of time, how to synthesize as all the information they're getting from all the systems and then being able to, um, actually take advantage of that, all that information. But to do that, you really need to drive insights into it if possible. And providing AI front ends to, um, all that information is something that the, uh, um, DevOps engineer who trying to take advantage of.
So do you think that the quality of the applications that we're building and deploying will steadily improve as we get to ai? Because today, I mean, you know, people will complain that there are vulnerabilities in the AI generated code, but last time I checked there was vulnerabilities in the code generated by humans too. So, um, but as, as we get to the point where maybe we're not relying on first generation, uh, general Corpus LLMs anymore, and we have LLMs that are trained for more specific tasks than we might get to better applications, I think that really actually real opportunity to improve the quality of this, um, software being, um, being delivered.
Um, because I I, you, you make a very good point because there, there is this, oh, AI is gonna introduce all these errors and all, all the security. I'm thinking humans are just as a effective at it. In fact, sometimes it can put in the library and then lots of people have to say the problem.
Um, so I think it's really true and i, I, I think it is entirely possible to, um, take advantage of ai, especially if it's AI in combination. So, um, uh, uh, try, um, having AI write more secure code and just assuming it's more secure won't make it better using AI in part of the DevOps process to ensure that, um, we've taken advantage of, um, uh, techniques better than just pure scanning to look for vulnerabilities and also to make it easier for people to say, um, do, um, uh, software bill of materials s bombs to check whether you've got the most recent versions of libraries, very unfortunately, um, labor intensive tasks that, um, people may not do now because it's, it's, it is heavy weight, but you can deal with AI because it's, it's a full structured task. Um, it's very suited to, um, automation.
Um, so it really is possible, but it relies on people actually adopting, um, best practices and robust processes. So it should improve and it can improve. But I think part of that is the industry really, um, making sure that it adopts good software engineering as a practice and using AI to help, um, help, help, um, help strengthen that.
Um, as opposed to just assuming AI will do it automatically. And this may be overly simplistic, but, uh, I, I can't help but wonder is it coming down to the point where I'm gonna have column A and column B and column A is stuff I don't like doing. And column B is stuff I do like doing and everything in column A I'll just give to the ai.
It would, it is a possibility, especially if column A is the things that, um, are, don't require the same level of creativity, but are things that need to be done, um, that tend to be, um, time consuming. And it, and it's interestingly not always code, code writing. In fact, most of it is actually write like writing code, um, convince them not to write code.
It may be a problem there, but there's all these other tasks like, um, test, test creation, um, making sure they run, um, tests, um, filling in documentation. Um, all there are, and I think there are a number of tasks that are, will fit into that bucket. And I think it's actually gonna be a positive thing because having those done well is actually very important.
And if those things are, um, what people consider toil work, but it's toil work that has to be done well, if that can be auto, because AI is effectively automating work, if it can automate work that's actually would lead to an overall better, better result and actually faster, faster software delivery, um, whether all of the things they don't like doing will be column mate, I'm not sure. I don't, I don't think the technology's quite there yet. Um, but it's interesting 'cause there will, I think there will always be a column B of the creativity and the bringing together of things that really is the, um, the things that people love doing is, is, is building things.
This should really just help 'em build things more reliably and more robustly. But right, it has to be used what it has to be used where they can't. Um, I think just, uh, just throwing stuff at it will not be the result people expect.
All right. Folks here heard in here. If you have an open mind, maybe just maybe we might remember why we have the joy of software development in the first place, but we'll wait and see how it comes about Wing.
Thanks being on the show. Thank you very much for having me. All right.
And back to you guys and the student.