AI to stay in Flow - a personal decision on how I chose to (not) use AI
The hard parts matter
Most everyone seems to agree: go all-in on AI, vibecode everything, or get left behind. For myself, this is making me less happy.
Over my career I clearly noticed a pattern for myself: whenever I learn something new, grow on the job, face challenges that I am up to, but that are still a stretch - that's where I am most happy. That is the time where I can't stop working in the evening and choose to spend time on my weekend to learn more about a topic. If I would stop learning on the job, I would quit, I know that is a selfish view, but I would change to something else, that offers this to me - and I have been close to doing exactly that. I want to do the hard, manual work wherever I can learn something.
Both at work and in my free time I am chasing something called the flow state.
What is Flow?
My understanding of flow goes back to the book Flow by Mihály Csíkszentmihályi. It is this amazing feeling of being one with the world. Mihály Csíkszentmihályi defines it as:
- Requirements for flow:
- a challenge we are up to
- being able to concentrate on it
- clear goals
- concrete feedback on achieving goals
- if all those are given when we work manually on a task we might enter flow state:
- deep, effortless devotion to the task
- a sense of control over the situation
- no worries about self, but stronger self worth after leaving flow
- time moves differently, hours can feel like minutes
And this is spot on for me. I can regularly enter this state in my free time, especially while running:
Photo: Max Auer
It is sometimes so intense, that I actually start to cry a bit in the moment. Though this has not happened yet on the job :). But I often enter a lighter version of this state while working and thinking deeply on a problem and this is what is essential for me to keep in the AI future we are heading into.
Diagram from "Flow: The Psychology of Optimal Experience" by Mihaly Csikszentmihalyi
As you can see in this diagram showing how to enter flow, we need to have enough challenge for the skill level. And as skill goes up after a while in this career, the challenge needs to rise accordingly. Meaning writing the same suite of unit tests over and over again probably won't put you in flow. If we never spend time in the zone of skill/challenge matching, we won't enter flow, for me this means I try to create these opportunities as often as possible.
Flow is the state of mind I am longing for.
Why vibecoding is not the real deal
Vibecoding feels productive. You are talking to 5 agents at the same time, firing away prompt after prompt, seeing this great thing being built by your team and hours fly by. But for me, this is not it, it puts me into some kind of state, but it does not leave me with stronger self worth afterwards. It does not increase my skill. At best it produces the right thing, at worst it does not at all - in both cases I have learned little to nothing.
Looking back at the diagram, my skill is still high, but the challenge is very low. Maybe the first few times vibecoding there is challenge and there is growth in learning how to use the tools, but after a while you probably land in the boredom area.
Let's look back at the requirements for flow:
| Requirement | Vibecoding? | |
|---|---|---|
| a challenge I am up to | flow stopper | yes, but it is too easy |
| being able to concentrate on it | flow stopper | you write your prompt, you wait, you might do something else, prompt another agent, look at slack, you can not concentrate on vibe coding |
| clear goals | unchanged | this one is fine |
| concrete feedback on achieving goals | flow stopper | the AI gets clear goals, it fulfils the tests or the spec, you do not do that |
So are you entering flow at all?
| Flow characteristic | Vibecoding? | |
|---|---|---|
| deep, effortless devotion to the task | no | maybe only on the first few times you use AI |
| a sense of control over the situation | nope | you give control away |
| no worries about self, but stronger self worth after leaving flow | no | I feel less self worth after completing a task like this |
| time moves differently, hours can feel like minutes | kind of | this can feel true though, but actually more restlessness waiting and waiting |
And finally, whether it worked or not I feel like I have learned very little afterwards. It might rather feel like something Mihaly Csikszentmihalyi describes as junk flow:
"Junk flow is when you are actually becoming addicted to a superficial experience that may be flow at the beginning, but after a while becomes something that you become addicted to instead of something that makes you grow."
As a side note: I read this analogy many times now, that we all become managers, managing a team of agents. Similar to having a team of real people. I think this is very far from the truth, from what makes being a manager a fun experience. I spent a few years as engineering manager and it is not it. As manager you build trust with your team, this enables you to delegate tasks, I do not have the feeling I can build trust with AI at all. And much of the joy comes from helping people grow and develop over time. Even if that would be the case, it does not give me any sense of achievement to see AI get better over time. But even if it would be just as becoming a manager - still, you would not enter flow anyways.
Entering Flow with AI
Okay so what can I do? Here are the practices that I found for me so far - not giving away the hard bits to AI, but using it as enabler to stay in the zone.
- a challenge I am up to
- use AI for planning my work, do Q&A sessions with it, let it challenge my idea, this can make the task more approachable, and pull it into the area of "I am up to"
- use AI as a learning tool, to get better at a topic, so more things become a challenge "I am up to"
- being able to concentrate on it
- use AI as a tutor and rubber duck on the side that can quickly resolve something when stuck and lets me get back to it, minimising interruptions, asking it question about the codebase or related topics
- use AI as optional, smart autocomplete in the IDE, so whenever I encounter obvious boilerplate, I can skip it
- use AI to debug pesky small things that took an hour in the past and breaks flow. All that yak shaving, environment setup, config files, ci, dependency problems..
- clear goals
- refine the plan with AI, sharpening the exact goals to reach in that session
- test first, writing a test suite first with the AI, this enables me to first think of the design, outside of flow (better place for designing, in the flow I usually execute), and then stay in the zone / flow while building the thing and ticking off test after test
- tests are also often pretty heavy on boilerplate
- concrete feedback on achieving goals
- when I am on a learning project I can use AI to get very quick feedback on e.g. my example project and solutions
- when on a work project, the written test-suite with AI is a very helpful, quick feedback mechanism on achieving my goals
- validate my output with the help of AI against the specs / requirements and let it point out gaps, gaps that I confirm and act upon or ignore
These are some tools I use right now, but it feels there should be way more! If you have more ways how AI can enable you to enter and stay in flow, please let me know.
Conclusion
One thing has become clear for me, I do enjoy my work and my life because I learn. I learn best when regularly entering the flow state. AI for vibecoding takes this away. AI as a supportive tool can make it easier and thereby my life better. The question is not whether to use AI - it is which parts to keep for myself. This works for me, this does not need to mean anything for you - but this is how I'll use AI even if that means I might become obsolete.
