Sunday, September 28, 2025

Our week in review: Simplifying Through Subtraction (week 6)

Paul (Founder)
Development

When adding features makes things worse

Here's something I didn't expect: this week I made LetAdmin better by deleting a feature.

Not refactoring it. Not improving it. Actually removing it completely. And you know what? The software got clearer, simpler, and easier to use.

The feature in question was "Not For Advertising"—a marketing status I'd added early on. It seemed logical: properties that are on your books but not currently being advertised need their own status, right?

Wrong. Turns out it just confused everyone.

The six-status problem

When I first built property management, I thought more options meant more flexibility. So I created six marketing statuses:

  • Available to Let
  • Under Negotiation
  • Let STC (Subject to Contract)
  • Let
  • Withdrawn
  • Not For Advertising

Looks comprehensive, doesn't it? Covers every scenario.

But watching agencies actually use the system, I kept seeing the same hesitation: "Wait, do I mark this as Withdrawn or Not For Advertising? What's the difference?"

Good question. I wasn't entirely sure myself.

If a landlord says "don't advertise this yet, but keep it in the system," is that "Not For Advertising" or should it just be "Available to Let" without the advertising switched on? And when you stop advertising a property, should you change its status to "Not For Advertising" or keep it as "Let" and just... stop advertising?

The more I thought about it, the more I realised I'd created a problem that didn't need to exist.

The painful decision to delete

Removing features is harder than adding them. You worry: what if someone needs it? What if I'm missing some edge case where this status is actually essential?

But I kept coming back to the same realisation: the status was confusing people because it didn't represent a clear concept. A property either is or isn't available to let. A property either is or isn't being advertised. Those are two separate things.

"Not For Advertising" tried to mix those concepts together, and it just made everything murky.

So this week I deleted it. Completely. Ripped it out of nine different files, updated the UI, simplified the Rightmove integration, removed all the conditional logic that tried to handle it.

And you know what? Everything got clearer.

What it looks like now

Properties now have five clear statuses that reflect their actual state:

  • Available to Let - ready for tenants
  • Under Negotiation - talking to a prospective tenant
  • Let STC - agreed but paperwork not done
  • Let - tenant in place
  • Withdrawn - off the market completely

Advertising is now a separate binary decision. You explicitly start or stop advertising. No ambiguity, no confusion about whether status changes should affect advertising.

If you try to change a property's status when it's not advertising, LetAdmin now says "This property isn't currently advertising. Use 'Start Advertising' to set up advertising first." Clear guidance instead of mysterious status options.

The Rightmove integration got simpler too. Instead of complicated logic about when to remove properties from Rightmove based on status, it now just updates their availability. Less code, fewer bugs, easier to understand.

What agencies actually get

If you're using LetAdmin (or thinking about it), here's what this week means for you:

Fewer decisions. One less status to think about when updating properties. Every status option you see now represents a clear, distinct state.

Clearer workflows. Status means "what is this property?" Advertising means "are we promoting this?" No more confusion about which one to use when.

Better portal integration. Properties stay in Rightmove's system with their history intact, just updating their availability. No more accidentally losing historical performance data.

Less cognitive load. Your staff spend less time thinking "is this the right status?" and more time actually managing properties.

What I learned

This week taught me something uncomfortable: sometimes the best thing you can build is nothing.

Every feature you add gives users more options. More options feel like more power. But more options also mean more decisions, more confusion, more documentation to write, more edge cases to handle.

Good software isn't about having every possible feature. It's about having exactly the right features and nothing more.

"Not For Advertising" seemed necessary when I designed it. In practice, it was just in the way. Removing it didn't remove capability—it removed confusion.

That's a hard lesson for a developer. We're trained to build, to add, to create. Deleting something you built feels like admitting defeat.

But watching LetAdmin get clearer and simpler after removing a feature? That doesn't feel like defeat. That feels like progress.

Next week: probably adding features again. But I'll be more careful about whether they're adding clarity or just adding options.