I recently read a nice blog post reiterating my feelings about adding new features to your applications (http://ow.ly/OroDr). To (very poorly) summarize, in the article, author Andrew Chen brings up the fallacy that adding features to attract new users is a losing battle. He’s right. Sometimes features are added with the mindset of “if we add this feature (that nobody is asking for yet) we will attract a ton of new users.”

I caught the post on my LinkedIn feed, and one of my other contacts Michael McLaughlin brought up the Second System Effect of the “Mythical Man Month”. Good point, I think, and apropos to the article.

I agree with the article in every way. I also agree with the Second System Effect chapter in the “Mythical Man Month” book. I would, however, like to caveat this head nodding and arm crossing with a few thoughts on getting comfortable.

It’s a death knell for your applications.

As programmers/engineers, I feel like we have been taught very strict rules of product development. As project managers, we have to avoid scope creep, and we love to trim the branches of the runaway project tree. The problem is: we become like police officers, programmed (pun intended) to avoid change. It is truly stifling to innovation to be stuck in a narrow focus when it comes to a product.

That’s where the design group comes in. They are the hippy flower-children of the team. After the project has been defined, they add unicorns and speed-holes everywhere, not understanding that that requires a whole huge change to the object library, the data layer, the presentation layer, man… they just don’t get it.

Not to mention that as a product matures and remains static, stability grows exponentially. Bugs are rooted out over time and use, and an equilibrium of stability is reached to where an application can feel “bulletproof”.

As a result of this desire to remain constant, inflexibility becomes institutionalized in some development teams. If it ain’t broke, don’t fix it, right? Well…

Look, you have to embrace change. Design standards, presentation technologies and methodologies, back end technology improvements, new database software, new development software, everything… it is all reason for change to your overall application. In addition to that, freshening up your app is a great way to engage users and renew interest in your app.

Nothing I am saying here is contradicting Andrew’s post; it is correct in every way. Just keep a little flower in your pocket along with your badge and you can stay open to at least listening better when it comes to new features and product evolution.