In Defence of Pointless Software

26 October 2026

Tagged: software, programming, projects

One of the things I've made is a version of eSheep for the Mac. It puts a little sheep on your desktop, where it wanders around while you get on with whatever you were supposed to be doing.

ehseep for mac

Nobody asked me to make it. There was no market analysis. I hadn't identified an important business problem that could be resolved by the introduction of a small sheep.

I just wanted to bring it back.

By most practical measures, it is completely unnecessary software. And yet I enjoyed making it, I enjoy that it exists, and I don't think either of those things requires much further justification.

Apparently, though, I have enough to say about it to write an article.

We have professionalised making things

There is a familiar set of questions that seems to follow almost any software project.

What problem does it solve? Who is it for? How will it make money? Could it become a SaaS? How big is the market?

Before long, the thing you started making on a Saturday afternoon apparently needs a go-to-market strategy.

I run businesses. I understand why these questions matter. When you're building something that customers will pay for and depend on, you need to think about whether it is useful, whether you can support it and whether the whole thing makes financial sense.

But those aren't necessarily the right questions to ask about everything someone makes.

Sometimes I'm building a business. Sometimes I'm putting a sheep on my desktop. I would quite like to be allowed to distinguish between the two.

Software can just be a thing you make

We seem reasonably comfortable with this distinction in other creative activities.

People cook elaborate meals without planning to open restaurants. They play instruments without expecting to sell albums. Someone can spend an afternoon sketching in a notebook without being asked how they intend to monetise the drawings.

The activity itself is understood to be worthwhile. You might enjoy the process, enjoy the result, or simply like getting better at something.

Programming should be allowed to work the same way.

It's a commercial skill, certainly. It's how many of us earn a living. But it's also a means of expression and a way of making things. The fact that I can sell software doesn't mean everything I write needs to be something I could sell.

I can make something because it amuses me. I can make a version of something that already exists because I want to understand how it works. I can spend an unreasonable amount of time building something that saves me almost no time at all.

None of that strikes me as particularly strange. At least, no stranger than spending an entire afternoon preparing a meal that will be eaten in twenty minutes.

I wondered whether I could make this

This is how quite a few of my projects begin.

An idea appears. Sometimes it's something I wish existed. Sometimes it's something I remember. Sometimes it's just a small, rather stupid thought that refuses to leave me alone.

Could I build that?

A few hours later, or considerably longer when I've underestimated things, there is something on a screen that wasn't there before. I can click it, change it, break it and gradually make it behave the way I imagined.

That transformation is one of my favourite things about programming.

An idea doesn't have to remain a description of something I might make one day. I can sit down and turn it into an actual thing.

Whether anybody else needs it is sometimes beside the point. I wanted to find out whether I could make it, and making it answered the question.

Pointless projects teach useful things

Small, unnecessary projects are also excellent places to experiment.

When nobody is depending on the result, you have a freedom that's difficult to find in commercial work. There are no customers waiting for a feature, no existing workflows you must preserve and no roadmap to explain your detour against.

You can try an unfamiliar technology. You can choose an approach that turns out to be terrible, throw half of it away and start again. You can spend an afternoon following an interesting idea without needing to prove beforehand that it will lead somewhere useful.

And you can stop.

A project doesn't have to become a permanent obligation just because you started it. Sometimes you learn what you wanted to learn. Sometimes the idea is less interesting in practice. Sometimes you simply lose interest.

Some experiments eventually become products. Most don't need to.

Although I hesitate to lean too heavily on the educational argument. Otherwise, we've merely replaced “Will this make money?” with “Will this improve my CV?”

Learning something is a welcome side effect. It shouldn't have to be another requirement.

The joy of unnecessary details

One of the nicest things about making software for yourself is being allowed to care far too much about something very small.

An animation that isn't quite right. A ridiculous interaction. An Easter egg that almost nobody will find.

In a commercial project, there is usually a sensible argument for spending that time elsewhere. There are bugs to fix, customers to help and considerably more important things to finish.

But when the project exists because you felt like making it, you get to decide what's important.

You can spend an evening polishing a detail simply because it pleases you. You can add a feature with an intended audience of one. It doesn't have to survive a sprint planning meeting.

I have a particular affection for those details in other people's software. The unnecessary little touches that reveal someone enjoying their work.

You can tell that somebody cared about something they didn't strictly need to care about.

That often makes a piece of software more memorable to me than another page of carefully justified features.

Not everything needs to scale

Ten people enjoying something can be enough.

One person enjoying it can be enough.

Even nobody using the finished thing can be enough, provided making it was something you wanted to do.

That last one seems particularly difficult to accept with software. An unused project can feel like wasted effort, as though its only possible value arrives when someone else starts using it.

But I don't think every enjoyable afternoon needs to leave behind a useful asset.

There are projects worth maintaining for years and projects worth making once. There are tools that improve thousands of people's lives and little experiments that briefly entertain their creators.

These don't all need to be judged by the same standard.

My desktop sheep does not need to become a platform. It can remain a desktop sheep.

Make pointless things

A lot of what I love about the web is the evidence of people following their interests. Someone becomes fascinated by something, or has an odd idea, or wonders whether a particular thing is possible, and makes a place for it.

Sometimes the result is useful. Sometimes it's funny. Sometimes its appeal is so specific that you can only admire the commitment.

I would hate to lose that because we've become too accustomed to asking what everything is for.

Software is an industry, but it's also a medium. There should be room to work with it without treating every idea as the beginning of a business.

Sometimes the entire product specification can be:

I wondered whether I could make this, so I made it.

And sometimes that's enough.