Skip to main content

Firebox

Software development is usually structured in cycles in modern delivery processes. Between the cycles, often called sprints the items to be developed usually move between various lists. The simplest model backlog -> todo -> done where backlog holds all the items that need to be delivered at the end of the project. For each sprint the items that will be worked with are moved into the todo and once they are completed they end up in done.

In any bigger projects there can be many other states between, or even before and after these lists: icebox, doing, testing, in review, accepted and so forth. The icebox is usually uses as the very first list. It captures all the possible ideas that could ever be relevant to the product that is being developed. Not all of those items are meant to be implemented, it's up to the product over to decide what of those features are worth implementing. Some might be required features, business critical for the case and need to be implemented no matter what. Other ideas should be evaluated based on the return of investment value. Some good and appealing ideas might just be too expensive to be implemented to ever generate enough value to justify spending resources on their development.

But what I haven't ever seen is the opposite of icebox. The list that holds items that should be removed from the system. Even if found useless such features are usually just left there, abandoned. This however is not a free solution either. While the removal of functionality and code requires certain amount of work and just leaving it there might seem like a cheaper alternative this is not the case. Every feature adds complexity to the system. Especially the abandoned parts of the system might accumulate an enormous amount of technical dept by just being there. They can make the system slower and more vulnerable to exploits, but most of all they make the maintenance and further development of the system more complex.

Therefore I believe there should be one more list added to these processes: the firebox - list of features that should be burned away from the system to make them lean again.