Over a million developers have joined DZone.

If You Still Hang On to “Features” You Are Not as Agile as You Think

DZone 's Guide to

If You Still Hang On to “Features” You Are Not as Agile as You Think

· Agile Zone ·
Free Resource

On some Agile projects I’ve been working on I noticed an arch reality :

If you still speak about features, or plan to add another sprint to “finish” the backlog, you are not Agile.

One of the first warnings I give a new client about Agile projects is the following: "your backlog is not a magical wishlist." You can have:

  • sprints (event with fixed time frame)
  • a backlog
  • a board
  • a scrummaster
  • a product owner
  • a daily meeting
  • and so on

If you still think the team will finish all your User Stories at  the end of the last sprint, you’re gonna have a bad time.

So Agile is a big scam, right?

No. Certainly not. It’s a reality check. If you don’t have enough money to build all you have in mind, you won’t.

And you know what? It’s a good thing! Features are not the goal of all this sprinting. It’s about VALUE.

Your backlog is not final. It’s a moving plan. It’s a goal. And User Stories are certainly not features. A US can be composed of many features or none in some cases (just a simple analog solution).

There will be delay and lag. Even in Agile. And the solution is not to do another sprint. It’s to cut down the number of features and start concentrating on what is really meaningful to users.

If you think I’m too vague, start looking a the best product out there.  It probably has less features but an immense value each time you use it.

Dismount what you already built!

Maintenance is a part of your software value. It has a cost. It represents a debt.

So some final words of advice:

Have some budget dedicated to dismount or erase some features. It increases software quality (with a smaller codebase) and increases its value (more stable, less feature creeped).


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}