On Adding and Removing Features
- #Product Development
- #Engineering Philosophy
- #Design Philosophy
- 2023/07/30
On Adding and Removing Features
Running a web service means constantly adding new functionality and retiring unused parts. At a startup, the cycle from launch to removal is especially fast. Here is how I think about it.
Adding new features
Surprisingly, adding is often easier than removing. Many enhancements do not require exotic tech; they just take time. As systems grow, teams grow, too, so more eyes help cover tests and reviews. The real challenge lies in modifying existing features—changes have wider impact, require careful consideration, and demand ample testing.
Removing existing features
From a code perspective, deletion mostly means checking dependencies. Business-wise, it is harder. You must know whether users rely on it, whether the response is lukewarm, or whether strategic reasons justify removal. Because the perceived risk is high, organizations rarely delete functionality unless they have strong evidence. Gathering that evidence requires measuring usage and effectiveness.
The role of evaluation
That leads to the key difference: evaluation. Feature additions sometimes ship with minimal validation (“other services have it,” “let’s try this idea”). Removals and modifications, on the other hand, hinge on solid evaluations—data that says “fix this” or “it is costly and rarely used, so cut it.” Teams that focus solely on adding features tend to neglect evaluation, making improvements and retirement harder. In my experience, analyzing, improving, or removing features is more challenging than simply adding them.
Closing
It is easy to fall into an “add, add, add” mindset. Without regular evaluations, you cannot improve or retire features effectively. Evaluation is hard, but essential for growing a product. Make time for it.