“What happens when AI ends up making mistakes? Who is responsible for fixing them?”— Vijay (@vpalepu) on Threads
Today we have @vpalepu. We are entering an era in which AI can write code, what are the concerns of software written by AI?
Great question! And I wanted to couch my answer in some basic outlook I have about coding: Coding is simultaneously an act of expressing and comprehending human needs. That is, we write code to meet a real need that someone, somewhere is facing. This is basic to programming. As long as we remember that when using AI to write code, there is little to be concerned about.
I have been thinking about your question a lot, and I think I have a top-three list for this question. But for each of these concerns, I am also very excited about the possibilities that AI brings when writing code, and creating products.
- First, I am concerned that we think that AI can write both our Code and (unit) Tests for us. This is IMHO dangerous thinking. I think a human needs to be in the loop somewhere to ensure that code is correct.
- Second, I am always thinking about how much more AI generated code there will be in the world, and what far reaches of this world and human life will it touch. We have code in cars for instance, and that makes me nervous; would I be more nervous if that was AI written code — hell yes! … Just like driving, I am always thinking about what other parts of my life AI will control: Background checks? Resume sorting? Education and schooling?
- Third, I am always thinking about liability and responsibility. When I write faulty code, I am directly responsible for it; and I take ownership of fixing the bug. What happens when AI ends up making mistakes? Who is responsible for fixing them.
… Industry and economy work when we are able to identify parts of a system that are not performing and work to improve them. I am not sure that we are there with AI yet.
I want to pause here and ask a quick question What is your educational and work background?
I currently work at Microsoft (on the Outlook product); been here for a while now. Before this, in a former life I got my phd in Software Engineering from UC Irvine; and I studied computer engineering in my undergrad.
What excites you about the future of software? And what are some areas of our life’s which will be positively impacted by future software?
No-code excites me about the future of software. I was not sold on this for a long time, and then this past winter, I had a bit of a realization: No Code tools give non-programmers a great sense of control and ownership on the software systems they depend on, because for the first time they are directly involved in building that software system.
And this is where, I think GenAI systems can serve as a force multiplier.
Personal story: I had this realization when I was helping my Dad build a new website using WordPress. I was ready to build the site for him. But the more we worked on it, the more feedback he had, and kept getting frustrated about things not looking like he wanted them to. That’s when I started teaching him how to build things with WordPress. It took a little while, but we got there! That was a massively empowering moment for him — something I had not appreciated completely before.
On that note, I think we will see non-programmers adopt automation a lot more in their daily lives. and this is where things like No-code tools, and alerting/reminder systems really get me going. Here is a dumb use case: a weekly purchase order to buy and get groceries delivered. My Mom set this up with her local grocer via WhatsApp (in this case without code). But I think being able to automate routine things like that will free up time for other things in life — and I think software can help!
What is a draw-back of no code solutions?
We shouldn’t confuse no-code tools with programming. I think that is where the perceived drawbacks will emerge from. I think No-code will be great for localized, cookie cutter automation or system building. But there will be limits to the amount of customization you can have with the resulting systems and automation. WordPress will give you a great site, but it will never be able to easily integrate with a Database unless you start writing code yourself.
No-code tools will also have the tendency for people to build systems that are so complex that they might have been better off if built using traditional software engineering and programming (which offer more control). This is something else that No-code tools would need to have: deliberate limitations that does not let systems get too complex (otherwise we might see flaky/hard-to-maintain systems).
Oh, I am sure the complexity can get out of control fairly easily. Are we going to start seeing “no-code developers” emerge?
Quick follow up: that there are entire jobs (say in sectors like Finance and Accounting) that need you to be a maven in Excel. In some ways, being that good with spreadsheeting tools like Excel, is no different than programming with Java or Swift. In that way, Excel may have been the very first “No-code Standard” that created an entire economy of problem solvers who are not programmers in the classical sense.
How much AI do you use in your current work? And for what?
I use it a fair amount for writing docs, creating presentations, generating meeting summaries (for meeting I did not attend), literature reviews (if I am working on research). I am yet to use it for writing code. Will be starting a project soon where I will be using AI — but nothing yet.
Essentially, it is restricted for low key/ low stakes stuff that I do not need to proof read or check too much. I am still learning to trust these systems, esp. when writing code. And a lot of the code I write often has to do with obscure systems and tooling that I do not expect AI to be able to help just yet.
What is one area of tech currently interesting you? And Why?
Software Testing. (I know! Boring!) But it has me fired up a lot lately. I’m deeply interested in how GenAI can help with writing software tests.
It has me fired up, because when writing tests, you are doing something interesting: you get to define correctness, without defining the algorithm.
Correctness always forces you to think about intent — why write that code/logic/program/algorithm in the first place. I am curious if AI can *understand* intent, at least to (help) write software tests.
Are you aware of research work or new products being created for software testing with AI?
Interestingly, Software Test Suite Generation is something that Software Engineering Research communities have been tackling for a while now! You have tools like Evosuite (evosuite.org) and Pex (microsoft.com/en-us…) that use tech like Genetic/Evolutionary algorithms or Symbolic Execution. The question always has been: would real human devs accept such tests in a pull request and even maintain those tests?
And do those tests accurately capture the original intent of the code-under-test? Results have been a case of mixed-bag. GenAI makes things interesting because it at least pretends to understand intent, although to what extent, I am not sure. I am not sure if it really understand intent.
We know that tools like Code Llama and Github Co-pilot can generate test cases (like any other code); but I am curious to understand the applicability of such tests. And how we can push the envelope here.
It is proving to be a really exciting time to be a software engineer!
How can people find you elsewhere online?
Thank you so much for having me on Threads Dev Interview! This was great, and I loved it! 🙌 I also have to say that this is the most engaged I have been on social media! Always great chatting with you! 😁Besides Threads, I am on Github (@VijayKrishna); Instagram (@vpalepu); Medium (@vkrishnapalepu); and my own website (rant.vpalepu.com). Dropping me a note at any of these places will get you my attention. 🙂
See the full interview on Threads: @ryan.swanstrom • Threads Dev Interview #20 I am finding developers on Threads and interviewing them, right here on… • Threads