This is not news: We live in a culture that is obsessed with having more. More, more, more. And then some. The problem is, there’s no end to our pursuit of more. The faster we chase it, the sooner we lose sight of what we were really trying to accomplish in the first place, and the more we feel that yesterday’s shiny new thing is today’s meh. And guess what? More new things are coming along tomorrow, and the next day, and the day after that.
It’s really a vicious problem, but, like the frog in the pot of water, it’s a problem that’s easy to ignore, because we feel like everything is just fine, until it clearly is not. No one goes into big debt all at once. No one gains 100 pounds after a single meal. Kids don’t get spoiled by one trip to the amusement park. This is an obsession that incapacitates us one choice (or non-choice) at a time, until we’re crushed by all of the more we’ve accumulated.
The same is true of software. It doesn’t get bloated overnight. It doesn’t wake up one morning and look in the mirror and think, “Where did all these check boxes and edge-case features come from? I don’t even know what I’m supposed to be any more.”
No, it happens over time, and, like spoiling a kid, racking up consumer debt, or packing on the pounds, feature bloat is primarily a result of never saying “no.”
And since bloated software is not long for this world, this is a challenge that I and other ACS Technologies development team members face daily. It’s not a challenge we’ve always met, but it’s a discipline we’re learning. Not every feature request is worth building; not every problem is worth solving. Yes is not always the best answer to every request.
But let’s be clear. The goal here isn’t to become disagreeable curmudgeons or to act the part of the cheapskate landlord.
This is about cultivation. Cultivation of order, meaning, and value, motivated by love — not love for the sake of the product we’re building, but love for the people who are served by the product we’re building. Cultivation means thinking like a gardener. It means transplanting the perennials that need more sunlight, pruning back the overgrown shrub or choosing not to plant thorn bushes in front of the fruit trees. It means considering the garden as a whole before you make a decision about a single plant within it.
In the same way, we cultivate our software by striving to consider all the factors related to the feature being requested, and seeking to understand the impact on the rest of the product. This means keeping in clear focus how every decision impacts the outcomes we’re trying to produce for the people we serve, knowing why those outcomes matter, and weighing which outcomes matter more than others. This means making sure that every Yes truly adds to the value people will receive from the product without detracting from a more compelling or essential value.
That’s where our app platform strategy becomes so beneficial. It allows us to remain focused on cultivating the ability to help churches communicate well and build a strong community of Jesus’ disciples, while allowing other developers to use our APIs to say “yes” to valuable things that we aren’t able to focus on. It’s a bit like making paths from our garden to the gardens of our neighbors.
Discipline is still required, but it’s much more fun to hear, “There’s an app for that,” than it is to get a resounding, “No soup for you!”