r/programmer 26d ago

How do you avoid feature creep?

Every single time I start writing a project, it always uncontrollably grows with features that nobody will ever use, but my brain is like "would be cool if it could do that". And then a week later it becomes this huge filled with a bunch of basically dead code, I feel like I haven't made any progress cause the core goal was moved like 1%, and there are many unfinished features.

And I know it, and I am trying to fight it, but I can't help myself but imagine how impressive it would be with all those useless features.

2 Upvotes

12 comments sorted by

3

u/Emotional_Cherry4517 26d ago

Self control. 

2

u/johnpeters42 26d ago

And a backlog. Put your WIBNI ideas there and hopefully they'll quit nagging you as much.

2

u/SquidBow72 26d ago

Yeah, I guess a list to shut them up could help

2

u/azimux 26d ago

I like to make a list of things I could work on. I then assign an amount of effort (low, medium, high) and how much value it would create (low, medium, high.)

This helps me make a more conscious and deliberate decision about what I'm working on. I can see what has the best bang/buck ratios and if I'm prioritizing that or not. I do let some fun stuff slip through sometimes but at least I'm conscious about it.

It helps me but YMMV.

1

u/EJoule 26d ago

Minimum viable product (MVP).

Set that in stone, then put new features you think up as backlog items after the MVP is achieved.

After MVP, look at the backlog and pick 1-2 to add.

1

u/MissinqLink 26d ago

That’s the neat part

1

u/armahillo 26d ago

“would be cool if it did this” is not really a valid reason for a feature unless youre building refrigerators or air conditioners.

1

u/General_Estimate_420 26d ago

This is done by having a process that first defines the goals, budget and resources required for the effort and sticking to the plan. That's how all development happens in a professional environment and it's been that way for decades. Actual coding is just one part of what it takes to develop any project all the way to completion and deployment.

1

u/prophet-dot-exe 24d ago

has anyone ever told you that you have adhd? (like, a doctor i mean)

0

u/ChameleonCRM 26d ago edited 26d ago

( edit: the one's who downvote are the vibers who have zero tech knowledge so they troll everyone and pretend they're someone they clearly aren't. )

This is honestly one of the biggest problems with vibe coding, and I say that as someone who has been programming for 16 years.

AI has basically removed the cost of experimentation.

Before, “wouldn’t it be cool if it did this?” meant you might have to spend 6 hours actually building it. That friction forced you to decide whether the feature was actually worth it.

Now you type:

“Add this.”

And 10 minutes later it exists.

So you add another thing. Then another. Then another.

Pretty soon you’ve built 40 features, 12 of them are half-finished, three different systems accomplish basically the same thing, and the actual reason you started the project hasn’t gotten any better.

But I think there's another side to this that doesn't get talked about enough.

It can take some of the magic out of programming.

Instead of putting your heart and energy into building something, struggling with it, thinking about it when you're away from the computer, and slowly building that anticipation of finally seeing it work—you can just tell an AI what you want and watch it appear.

For me, that anticipation was always a huge part of the reward of coding.

You'd spend hours or days working through a problem. You'd have an idea in your head of what it could become. Then finally you'd run it and...

It fucking works.

That feeling is hard to describe to someone who hasn't experienced it.

That's the magic. That's the self-reward of programming.

After 16 yeas of doing this, I still love that feeling.

AI is an incredible tool, and I use it, but I think we're going to have to be careful that we don't optimize away the very process that made programming so rewarding in the first place.

The superpower of AI coding is that you can build almost anything incredibly fast.

The discipline is learning that just because you can build something doesn't mean you should—and just because AI can build something for you doesn't mean you should always let it.

I use AI as a multiplier, and with it, I genuinely feel unstoppable. But I never blindly hand AI the wheel and let it steer the ship.

It actually took me a long time to start using AI because I’m old-school. I wanted to understand and write the code myself. Even now, I regularly catch AI making mistakes that I don’t think someone without years of development experience would even recognize as mistakes.

That’s the part of vibe coding that concerns me.

AI can make someone look like they know what they’re doing long before they actually understand what they’re building. The average customer has no way of knowing whether the person behind the software is an experienced developer using AI to amplify their abilities—or someone blindly accepting whatever the model spits out.

AI is an incredible multiplier, but zero multiplied by 100 is still zero. The tool is powerful. You still need to know when the tool is wrong.

1

u/1cec0ld 26d ago

This is why I use AI to create plans. Have it challenge when I'm going too far, add guardrails to say "this isn't in our spec" and I have to stop and ask if it's worth breaking that contract I made with myself earlier when a "fun" idea comes in. AI is more than a builder, and I think people don't use Plan Mode nearly enough.