Programming with AI: clever cheating

I previously wrote that I built a product in one week that would have taken perhaps a year in the regular development process. I should mention that I cheated quite a bit.

Profile picture of Mark
Mark Vletter
5 September 2025
5 min

I used the knowledge of the organization that we have built up over the past twenty years to do this as quickly as possible. And the lessons you can learn from this can be put to good use in tackling AI programming.

In addition, I have more than twenty years of experience in product development. And I can write code myself. So I can also see if the code written by AI or the associated thought process is going in the wrong direction. That’s something that happens regularly when you start programming with AI.

The third way I cheated was by using the very latest techniques to enable the AI to program and test itself. Finally, I was incredibly lucky that we learned a lot at Voys about how we develop (and want to develop) software. From architecture and testable code to coding principles: everything is documented. I fed that documentation to the AI first, so that it would set up the project exactly as we would do it within our organization, including all the experience we have gained over the past few years.

Programming with AI is also known as vibe coding. I thought it would be nice to capture the way in which you can program effectively with AI in a VIBE framework.

programmeren met ai

The VIBE framework for effective AI programming

Vision and pragmatism

Start every project with an ambitious vision, but execute it pragmatically.

It is very easy to add AI features to the product you are developing. But without a vision, you will quickly end up building random features. This is where the pragmatic principle comes in: build a production-ready system in which every feature adds real value within the vision for the product.

Before you start developing the product, it is wise to discuss what the product could become. Think about the full potential of your product early on in the process. Then translate that into pragmatic steps: what do we need right now? Build incrementally and schedule regular check-ins to see if you are solving real or imaginary problems.

Tip: test whether each piece you add really does what it’s supposed to do. I often thought a building block was finished, only to find out later that there were gaps in the implementation. Solving such issues when you thought you were almost done often takes much more time.

Iterate

Work with small, validated iterations.

AI enables incredibly fast development cycles. The risk here is that you start learning in code. You can learn a lot from sparring with the AI, validating your thinking, and receiving feedback from the AI before you write a single line of code. If you use this effectively, you will develop the best solutions faster.

Because thinking in code is expensive. The AI quickly gets stuck if you pile task upon task without adding fundamental thinking. So: first think ‘together’, then do ‘together’.

Record that thought process as well, for example in working documents or in the AI’s memory. Use that documentation not only to explain what you have built, but above all to understand it yourself. Writing forces you to think clearly.

I have worked extensively with feature document workflow. Implementing a new feature consisted of the following steps:

  • Investigate the problem together
  • Document
    • Which files are affected?
    • How should it work?
    • What does the front end look like?
  • Then use the document as a development roadmap and progress tracker

This also prevents the “overly enthusiastic” implementation that an AI standard tends to pursue, and this way of working forces you to ask critical questions in advance.

Balance complexity 

KISS: Keep it simple, stupid.

AI can quickly implement complex patterns, making over-engineering very tempting. Before you know it, your simple project has an enterprise-grade login. So you should regularly ask the AI, “What is the least complex approach that works?”

A good example: I spent more than six hours debugging a complex dependency injection system that added no real value. The simplified factory pattern solved the same problems with 70 percent less code and much higher maintainability.

So keep it small. AI tends to complicate projects. Work on very small proof of concepts in isolated files. Once each small concept works, combine them into finished pieces. The question “Would a junior developer understand this?” helps enormously.

Evolution-conscious architecture

Build a product for today’s needs with tomorrow’s expandability in mind.

If you’re not careful, your AI development will move too fast and architectural decisions will be made implicitly. But without conscious architecture, you’ll end up with complexity that is impossible to maintain. This also applies to AI.

So think ahead about:

  • Clean architecture: separating business logic from frameworks and infrastructure.
  • Factory pattern: makes service replacement or expansion easy.
  • Graceful degradation: optional services do not break core functionality.
  • Production-first mindset: think about security, privacy by design, monitoring, testability, and maintainability from day one.

This all sounds very complex, but AI knows the content of all the good books on the above principles. If you ask the AI the right questions in advance, it will come up with the perfect prompt that it will look at during each session. This way, these principles become the standard.

programmeren met ai

The real benefit of AI programming: better collaboration

What I appreciate most about this process is not the speed with which I was able to build, but how working with AI forced me to think more carefully about what I actually wanted to achieve. The AI asks questions that I would otherwise skip. AI asks about edge cases that I would forget and forces me to explain clearly what I mean.

That makes programming with AI not only faster, but also better. And that’s smart cheating: using AI to become a better developer.

The VIBE framework has helped me not only to develop faster, but also more consciously. And that is ultimately much more valuable than that one week in which I compressed a year’s worth of work. Because I can now apply the lessons I’ve learned to all future projects.

So yes, I cheated. But I learned valuable lessons and was happy to list them so that you too can make smart use of them.

Blog series ‘Programming with AI’

This is the second article in a four-part series on programming with AI. You can read the other blogs here:

Part 1: How AI reduces development costs by 2900%

Part 3: 19 tips for successful programming with AI and Claude Code

Mark keeps you updated

Subscribe to Mark’s newsletter and receive his monthly updates.

More stories to read

On our blog we post about a lot of stuff, just go for it and read some posts for your own fun.

Go to the blog
From playground to product teams: our journey in Product Development

from 19 January 2026

From playground to product teams: our journey in Product Development

Read more
The future of programming: why English is becoming the new programming language

from 20 October 2025

The future of programming: why English is becoming the new programming language

Read more