Staying Lean


I was doing a code review yesterday. It was one of those rare code reviews where there is more code on the left than on the right. This made me very happy, but it also got me confused: "Shouldn't I be at least a bit sad that hard work of a programmer is wiped out of existence?" Agile and lean approaches rarely focus on removing features from the product. And when they do, it's because a feature is distracting or confusing user. Sometimes a feature is removed because it's evidently costly to support, but I've never seen anybody doing systematic reevaluation of existing product features and removing the ones which do not bring enough value.

I understand that admitting failure is hard and that you might piss off a few users if you remove their beloved feature. But as is the case with food, staying lean cannot be achieved only by carefully adding, at least occasionally you must also loose something.