Nice to have?

By
/31.07.26
The infinite stone
WIIP
When I visited Florence and stood in front of the David for the first time, my dad told me that Michelangelo said he hadn't really carved the man into the marble — the man was already inside the stone, and his job was just to get him out of there. Maybe that's why seeing it is so striking: because the stone left no room for mistakes, and one small finger could ruin an entire work. But also because everything that's there looks like it was meant to be there, and everything that isn't, isn't because it doesn't belong.
Luckily for software developers, our industry always evolved in the opposite direction, and improvements and mistakes cost practically nothing. We can always keep shaping our work, growing and carving the stone however we like. Agile methodologies stretched that road further, but with AI agents it became downright infinite: changing, fixing, shaping, refining has practically no friction and the cost is very low.
Don't get me wrong: this isn't a bad thing. Being able to fix mistakes and try new things easily can improve the end result of our software and the experience the user lives through. But today more than ever we need to understand the danger of the "infinite stone". Just as the David wouldn't have been better with a sword, two crowns, four dogs and a cart, our software won't be more effective by adding infinite features either.
I think today more than ever the main skill we can bring, as people with judgment about things, is imposing a purpose, a direction, on the things we make. Maybe it's time to take our hands off the keyboard a little and start working more with critical eyes and ears. Dax Raad, the creator of opencode, said that the fact that it's very easy to ship a feature doesn't mean you should build it.
Lately, when I talk to clients, I often find myself able to easily deliver things that used to get written down as "Nice to have" and never got done. And the thing is, that idea barely makes sense today. Maybe we should rename that section to something like "Is it really nice to have?".
Personally, I'm a little sad about this new stage where code doesn't matter anymore, because one of the things that made me fall in love with programming were those problems where I'd spend hours tearing my hair out, reading documentation and Stack Overflow posts until I found a solution. I think those days are over (just look at the nosedive in the number of questions on Stack Overflow to understand it). But leaving that era behind doesn't mean there's no work left to do, and what's left is maybe the most fun and challenging part for a lot of people in tech: connecting the pieces between the technical world and the purpose of what we do. Achieving much more finished designs, and not programming a set of features but a user experience where every piece has its purpose.