AI · Software Development · Long-Term Ownership · 7 min read

What an Alarm Clock, a Paintbrush and AI Have in Common, in Reverse

AI can make the first working version feel like the finished result. The work of making software reliable, useful and maintainable may only just be beginning.

Joakim Domeij
By Joakim Domeij 17 October 2026 · 7 min read

There is a growing belief that AI will make software development so simple that almost anyone can create their own applications. No programming experience, no years of training and no need to understand complicated development tools. Just tell AI what you want, and it will build it for you.

I think there is a lot of truth in that. AI has already made software development accessible to people who would never have considered creating an application themselves. It's an exciting development, and one that opens opportunities we could barely imagine a few years ago.

But I think we're overlooking something important. Being able to create software and being willing to develop, improve and maintain it over time are two very different things.

And strangely enough, I think painting a room helps explain why.

When we decide to repaint a room, we're usually excited about the finished result. We imagine the new colour, how the furniture will look against it and how much better the room will feel afterwards. Unfortunately, before we get to enjoy that result, there's work to do. Furniture needs moving, holes need filling, walls need sanding, edges need taping and the first coat of paint needs applying. Then we wait for it to dry, inspect the result and realise another coat is needed.

None of that preparation is particularly exciting, but we understand why it matters. We know the satisfaction comes towards the end, after we've put in the effort.

With AI-assisted software development, something rather interesting happens. The experience can be almost the exact opposite.

Let's imagine I've never developed software before. I don't particularly like the alarm clock on my phone, so I decide to make my own. I open ChatGPT and type a simple instruction: "Build me an alarm clock for my Android phone. I want it to look modern and be easy to use."

A little while later, AI presents me with the code for my new alarm clock. Brilliant! I've just created my first application without knowing anything about programming.

Except there's a small problem. How do I actually get it onto my phone?

Apparently, I need to install development tools, build the application, create something called an APK and figure out how to install it. I don't know what any of that means, but AI patiently walks me through the process. After some trial and error, I finally have my own alarm clock running on my phone.

I set it for seven o'clock the following morning, test it, and everything works. It even looks better than the alarm clock that came with my phone. I'm rather pleased with myself.

The next morning, I discover that I can't snooze the alarm.

I never asked for a snooze button. AI never included one. I suppose I can just ask it to add one, but now I start wondering what else I've forgotten.

When I originally asked for an alarm clock, I certainly didn't think about all of this:

  1. What happens when I travel to another time zone?
  2. What happens when daylight saving time changes?
  3. Will the alarm ring when my phone is muted?
  4. What happens when Do Not Disturb is enabled?
  5. How loud will the alarm be, and can I change the volume?
  6. How does the application know what time it is?
  7. Does it work without an internet connection?
  8. Does it work in airplane mode?
  9. Will it ring when the phone is locked?
  10. What happens when the phone restricts background activity to save battery?
  11. Will my alarms survive a phone restart?
  12. Can I snooze the alarm, and for how long?
  13. Can I set different alarms for weekdays and weekends?
  14. Can I have several alarms active at once?
  15. Can I choose different alarm sounds?
  16. Can the alarm vibrate?
  17. What happens if I accidentally dismiss it?
  18. Can I change the colours and appearance?
  19. Can people with visual or hearing difficulties use it?
  20. How do I test that it will reliably wake me tomorrow morning?

And those are just twenty questions about an alarm clock. We haven't even considered different phone manufacturers, operating-system versions, security, permissions or future updates.

None of these requirements is particularly unusual. Most of us take many of them for granted when using the alarm clock that came with our phone. We simply expect it to work.

Of course, AI can help me solve almost every problem on that list. It can explain how Android handles alarms, generate missing functionality and help me test the results. It might even suggest improvements I hadn't considered.

But how would I know to ask about all these things in the first place?

If I've never developed software, I might not know what background restrictions are, why operating-system permissions matter or what happens when the phone changes time zones. I might not even realise there is something to investigate until my alarm fails.

I can learn as I go along, and AI can be an excellent teacher. But it's difficult to ask about something you don't know exists, and even harder to recognise when an answer is incomplete.

Still, I'm enjoying myself. After a few more evenings, I've added the snooze button, improved the appearance and fixed a couple of annoying problems. My alarm clock is looking rather good.

Then a friend sees it and asks if she can have it on her phone too.

Of course she can! Except now I need to figure out how to install it on someone else's device. What if her phone is different from mine? What if it doesn't work properly? And when I make another improvement, how does she receive the new version without losing her existing alarms?

Suddenly, I'm not just making an alarm clock for myself. I'm maintaining software that somebody else wants to use.

Perhaps she discovers a bug. Or wants a bigger snooze button. Or asks why the alarm didn't ring yesterday.

All perfectly reasonable questions.

But I'm beginning to realise that creating the application was the exciting part. Improving it, testing it, fixing things and keeping it working takes considerably more time than I expected.

And this brings me back to painting that room.

When painting, we accept the tedious preparation because we're looking forward to the finished result. With AI-assisted software development, we can experience that satisfaction almost immediately. The first working version feels like the finished room, even though much of the work may still be ahead of us.

Version 1 is exciting. Version 2 is an improvement. Version 17 is probably fixing something we didn't anticipate. By version 314, we might be wondering why we ever decided to build an alarm clock in the first place.

And unlike a painted room, software doesn't necessarily stay finished. Operating systems change, devices evolve, security requirements develop and users continue to discover things they would like improved.

At some point, I might simply decide that I've had enough. I'll go back to the ugly alarm clock that came with my phone. It already does everything I need, and somebody else takes care of maintaining it.

Perhaps I'll ask AI to help me build something different instead.

And there's nothing wrong with that. I've created something I couldn't have created before, learned a great deal and enjoyed the experience. That's a success in itself.

But it also illustrates something I think gets lost in discussions about AI replacing software development.

The ability to produce a working application is only one part of developing software. Understanding requirements, recognising missing functionality, testing different scenarios, fixing defects, supporting users and maintaining compatibility all require time and commitment. AI can assist with much of that work, but someone still needs to care enough to see it through.

And this was just an alarm clock.

Imagine something considerably larger, with thousands of features, integrations, security requirements and people depending on it every day. The complexity increases, but so does the responsibility for getting things right and keeping them that way.

AI will undoubtedly change software development. It already has. More people will be able to participate, experienced developers will have increasingly powerful tools, and some individuals will create remarkable applications without traditional programming backgrounds.

But I suspect we'll also see plenty of promising projects abandoned once the initial excitement gives way to the less glamorous work of maintaining them.

Perhaps that's something we should appreciate more about experienced software developers. Not just their ability to create something new, but the knowledge, judgement and patience required to keep improving something that people already depend on.

AI has made it easier to start building software. It hasn't made the knowledge, patience and commitment required to maintain it disappear.

Software development isn't dead. The tools are changing, and more people are being invited to participate. But creating something that works once and creating something people can depend on for years remain very different achievements.

Read Really, Another Leadership Book?

A practical examination of trust, judgement, ownership and leadership for the moments when the situation is more complicated than the advice.