Who’s winning in the infamous war between stability and new features?

The industry expects fast, flexible, complex yet easy to use applications. At the same time, developers want to deliver a stable environment which ensures a good user experience, security and reduces the risk of encountering unexpected performance issues. All of these on a strict deadline, of course. In the battle of stability vs. new features, can we meet both goals?

Since I had the chance to work as an IT project manager and experience the struggles of software development, I’ve noticed that teams and product owners often reach a point where they feel the need to choose between stabilizing and optimizing the application and adding new features. Product owners, who also have deadlines and budgets to worry about, might get sidetracked and pick new features at the expense of stability, while developers are mad keen on stability. But what exactly does stable mean and why is it instrumental in software development?

A stable application is less error-prone, because there was enough time to focus on testing it thoroughly and fix the edge cases. Also, delivery of a stable environment means more time from developers to write tests that cover bugs and edge cases, tests than can afterwards be used to test the core functionality of the application as well as other parts of the framework. Some people will most likely want to skip this part because, at first sight, there’s no benefit or no return on investment. However, the perks of having a well-tested application will really become obvious once more features and more users enter the equation. Because some of the prospective issues and edge cases have already been addressed prior to launching the application.

Another important aspect that deserves to be mentioned is that stable applications are easier to patch and update and have a lower risk of issues related to new releases. And, probably the most important advocate for stability is the fact that it provides a good, seamless user experience. Because, let’s face it, apart from the product itself, users are all about the experience. If, for instance, you have a financial application which is innovative, interactive, state-of-the-art, but constantly crashes in the middle of the process, your users will move towards a more reliable and stable product.

Focusing on stability does not mean there cannot be any new features. It just means that we need to stop treating stability as a second-class citizen and, as Mark Burgess, a theoretician and practitioner in the area of information systems, says “seek stability, then new features”.

The evolution of an IT product creates the need for stability

The issue of stability vs. new features is not necessarily something that developers and product owners struggle with from the beginning. This actually becomes a real problem once your core focus changes and the application and its usability level grow. With new features, come new challenges, new needs that have to be fulfilled, therefore, the initial implementation of the product has to evolve as well. And this is the moment when most people confront with the stability-new features paradigm.

From my point of view, once the product reaches a certain place in the overall technology adoption curve, stability should become a priority. Otherwise, there is a slight chance that the product will fail.

What do you think about this? Please share your thoughts in the comments section below.

Previous
Previous

What you should know about changing your password too often - but is this really the problem with passwords?

Next
Next

Ho Ho Ho!