Digital orphans

Digital orphans

Disclaimer: this article IS NOT generated by AI although the picture is.

Classic approach

When we create software in a classic approach it takes time. During this time our software evolves. We write every line of it. We often rewrite it. We know every line. When we encounter an issue we often know immediately what it is and how to fix it. During the months of design and development we develop a relation to our software. 

It becomes something like our child.

When we vibe code an app

Just to clarify: “vibe code” means we do not write the code but tell AI to create it, deploy it, test it and run it.

This is a completely new world when you can create an app without being expert at programming in 1-2 days for 20 dollars. Sounds great! So what is the problem here?

Easy come. Easy go.

Because we receive an app in a short time we think it is not very valuable because it was so easy to create it. Just like when somebody wins a lot of money in a casino. This money will not have the same value for the receiver as earned in for example long and difficult project engagement.

Digital orphans

When we vibe code an app we get an app in hours or maybe 1-2 days. We are not very familiar with how it is working because whatever we told AI it may have been understood in a different way or maybe even ignored. Certainly we have not seen the code, maybe some parts of it. But it works. Somehow.

We do not have any relationship with it. It is certainly not our child. 

It is an AI's child.

There is usually a huge difference between how parents care about their own children vs the children of others.

Here the situation is very similar.

Vibe coded apps are orphans and the difficulty of maintaining and extending them with new features etc is similar to working on abandoned legacy projects where no human being can tell us how they work.

Even if the quality of generated code gets better still it does not change the fact that there is no relation nor familiarity between creators and the creation.

Security

As always security is the most tricky part here. Generated apps usually create multiple attack surfaces and the creators do not see nor understand them. As always in security we jump from “I do not know” to big trouble. When we finally know it - it is usually too late.

Generated legacy?

Still I would say vibe coding whole apps can be great for prototyping, creating an MVP, quick demo for clients or generating a simple UI for some existing backend component. 

The issues with security, maintainability and lack of understanding are not blockers in this context.

The question is: will they ever go to Production in mainstream app development?

Seems like now productionizing it would introduce something very similar to legacy software starting from version 1.0.

If this is correct the issue with generated apps is not technical but very human centric.

What do you think?

Here it goes: https://maciejmalecki.github.io/why-dont-i-feel-emotional 1) vibe coding is perhaps one of the most misunderstood terms on this hype cycle 2) humans does mistakes too, perhaps even more than AI 3) human-written code in enterprise code base is most likely orphaned as well

Well, I would need to respond with a whole article, give me few hours 😉

The approach of 'I'll vibe code something-or-other quickly and thoughtlessly for $20' is fine if you want to set up a website with funny cats. Could we replace 'Vibe coding' with a more professional term, e.g., 'Superficial LLM-Facilitated Heuristic-Driven Prototyping via Unvalidated Solution Synthesis'? 😀 OK. Enough jokes. Yes, the problem lies with the human operator of the LLM. A Software Engineer is responsible for the code, regardless of whether they are emotionally attached to it or how it was generated. We must remember that the client pays and expects us to deliver a product that is not only functional but also secure and reliable. In complex domains like banking, where we work on gigantic distributed systems, we are problem solvers; code generation itself is only part of the job. I use LLMs to generate code, but I always check what has been generated. Regardless of whether an LLM or a classic framework generated the code, I have to know how it operates. Even with the use of LLMs, a responsible approach ensures we can still deliver high-quality products to our clients and business partners.

Jonathan Zittrain coined the concept of intellectual debt, which Neil Lawrence has significantly extended - describing it as the gap between our ability to use AI systems and our understanding of how they work, or more precisely: the inability to explain your software system. It is going to be interesting to see how our industry deals with this issue and what price we will all have to pay until we figure this out.

It works... somehow. That tells everything.

To view or add a comment, sign in

More articles by Adam Witkowski

  • The new binary. Do we need to look into AI generated code?

    Disclaimer: this article IS NOT generated by AI. Often people say: AI generated code is like binary - you do not need…

    11 Comments
  • Hyperinflation of Technology

    Disclaimer: this article IS NOT generated by AI. Nowadays when somebody publishes a book about agents or AI it is…

    6 Comments
  • Where human is better than AI: The responsibility gap

    Disclaimer: this article IS NOT generated by AI. One tiny condition Let me start with an observation Stanislaw Lem did:…

    7 Comments
  • Continuous Integration: False Feeling of Safety

    Disclaimer: this article IS NOT generated by AI although the picture is. For many years developers have tried to make…

    4 Comments
  • Amortizing Non Determinism: Testing Gen AI Agents

    Disclaimer: this article IS NOT generated by AI although the picture is. Non deterministic factor Determinism means…

    2 Comments
  • Can gen ai agents be agile?

    Disclaimer: this article IS NOT generated by AI although the picture is. Define agile Many people think agile means…

    6 Comments
  • AI generated apps are like modern cars?

    Disclaimer This article IS NOT created by AI. Nobody can fix their car anymore A long time ago, like in the 80s etc the…

    5 Comments
  • Making agents work with huge code and small AI using method slicing

    Abstract We are creating gen ai agents that consume whole projects in java, scala etc and output unit tests or code…

    2 Comments
  • Capgemini Gen AI powered solution: codeai

    The Financial Services department in Capgemini Poland has developed a cutting edge solution called codeai that is…

    1 Comment
  • IT Recruitment Antipatterns And How To Avoid Them

    Seems to me that people make so many mistakes in the recruitment process that it is difficult to find some other area…

    16 Comments

Others also viewed

Explore content categories