Where to draw the line in adding functionalities to the product

Where to draw the line in adding functionalities to the product

tl;dr
Use the wooden bucket water method (the diagram is at the bottom)

The problem

I come across this issue all the time. Even though specifications about what the product needs and what are the necessary “ingredients” usually exist, there comes a point in the middle of the project each and every time, when somebody involved in the project finds a functionality that could be better than previously discussed and specified.
The main concern is always about the future users. Every project has to be as easy to use and as useful as possible. But at what price? What do you do, when you’ve already done better than projected but can still find some functionalities that would make life easier for the user?

The example

One good example is my company’s last product that we are building at the moment. I can only show you the landing page for it Knowledge Management System – KMSadmin, but I must say that I am really proud of it. Its purpose is to help institutions, e.g. Universities, to manage their know-how more effectively.
But it is impossible to make a perfect product because of its sheer size. There will always be yet another functionality that could help the users. Just recently we’ve finished polishing the connection between researchers and their projects. According to the specifications we’ve done it far better, but we still found some improvements on how a user could find the right researcher for a new project by knowing his previous projects. Do we implement these or not?

The solution

The first filter to define how much work will be put into the project is of course money. If nobody wants to use the product, there is no sense in upgrading existing features. The same goes for the fixed amount of money that you get for a product. It is possible to try a different approach, but if you run out of time/money, it doesn’t matter anymore.
So now we’ve figured out we have the motivation and somehow limited amount of money/time to continue improving. I like to imagine the project as a wooden bucket filled with water.

Wooden bucket

The water are users and wooden staves (wooden boards that make the bucket) are the functionalities. Each stave has the height proportional to the quality of the functionality. So the water level in the bucket is only as high as the lowest stave or user happiness is only as high as the least useful frequently used functionality. The trick is to find the lowest stave and make it higher until you run out of time, money and/or motivation.
How to find it? Usually you or other developers will already have an idea where the low points in the product are, but when you need a proof, ask other stakeholders and actual users. It is also wise to implement tools for later analysis or to prepare metrics that will help you acknowledge the actual usefulness of the product.

The diagram for the wooden bucket water method (yes, I just made that name up):

Comments are closed