Part 2: What Features To Add And When
Monday, September 25th, 2006In my last post I talked about some of the strategies I use to help determine which features should be added to an application. It’s always a problem to determine which features should be implemented, especially when the feature request comes from a customer. If a customer needs it, its hard to say no.
However, further to my points from last week, after I have determined the kind of feature it is, I borrow a model used in Management theory to help categorize features further.
I like to look at potential features in four ways. They include;
1) Is the feature valuable to your company
In order for a feature to be valuable to a company it must improve the product significantly enough to increase revenue. Obviously a feature that increases revenue must also be valuable to the customer. The perceived value of a feature is what counts, not necessarily how useful it may be. That statement may seem a little odd, because naturally one would assume a feature must be useful in order to be valuable. However, I have found that this is not always the case.
Take for example the web hosting industry. Companies are offering 250GB of bandwidth and 5GB of file space as a starter account for $3.99/month. It is a well established fact that most users of web hosting use less than 5% of what they pay for. Why then are hosting companies competing so aggressively on bandwidth and space? Because that is what customers find valuable. Customers believe this is what they need so they go ahead and look for companies that provide the greatest amount bandwidth and file space, even though they will never use that many resources. This often prompts web hosting companies to oversell, but this is a discussion for another day. There are many other features that should be valuable to a web hosting customer, but for the majority, bandwidth and file space are perceived as the most valuable.
In order to determine what is valuable to your customers it is important to know a few things about them. This always comes back to knowing your target market. Looking through your past support emails, what do your customers value?
It may include;
1) Ease of use
2) Speed
3) Interface
4) Compatibility/Integration with other products
5) Customization
By determining what they value, you can have a better idea of which features should be added and when. If feature requests come in that don’t fall under what your customers consider most valuable, you may want to delay adding that feature.
One of the more general aspects of an application that users value is speed of execution. That is why with technologies like AJAX and even just regular, old javascript, combined with the increasing number of users using broadband connections to connect to the web, online applications have a greater chance of prospering. Google has done an amazing job with gmail, Google Spreadsheets and Google Analytics to name a few. However, there will still always be a lag when information must be passed to the server and back. That is why not all applications are suited to go web based.
Where users value collaboration and portability, web based applications have a huge advantage over desktop applications. They can be accessed from virtually any computer, anytime, without the need to download large software packages. Multiple people can work on them at the same time, and data can update live as each individual makes changes.
One last example can be found in web browsing software. With the increase number of viruses and spyware, security has become a feature of great value to customers. Firefox was able to gain significant market share as users perceived it to be more secure than Internet Explorer. As Internet Explorer 7 continues to aggressively fix security holes (as well as add tabbed web browsing), they may be able to get back lost market share to recent Firefox switchers. Although, without additional features of value, doing so may prove to be difficult.
2) Is the feature rare?
Copying the features of rival applications may be required in order to keep up with the competition. However, when you find a feature that is not found anywhere else, you can gain a short-term competitive advantage and have the benefit of customers knowing you were the first to implement it.
Adding features not found in other applications is not an easy thing to do. Often times you set the standards for how the feature will be used. Educating customers on how to use the feature may turn out to be difficult.
When deciding on which features to implement, if you are the only application that has the certain feature, you can quickly convert customers to your software. If their current solution does not offer what you do, new customers will be more willing to try your application.
3) Is the feature hard to imitate?
Building on the last point, if the feature you are going to implement is hard for other companies to imitate, you can maintain your competitive advantage indefinitely.
It may be hard to imitate because you own the rights to a certain technology. For example, a certain protocol or file format. Or, you may just have a certain employee with skills beyond what your competition can attract. A strategic partnership may arise which allows you to integrate the core competencies of either company to deliver a superior product over what your competition could ever do.
As a developer of web development software, we have a partnership with a web hosting firm to offer one year of personal web hosting with the purchase of our web development products. By taking advantage of the economies of scale provided by our partnership with a web hosting company, we are able to offer this package that would otherwise be very expensive for us to do on our own.
4) Do you have the capabilities to take advantage of the feature
The last criteria you have to judge against the potential feature is whether or not you have the capabilities to take advantage of the particular feature.
Can you actually implement this feature? Is it too expensive? Does it rely on technology that you do not currently have? Can you promote this feature to customers and get them excited about it? Most importantly, do you have the resources to pull it off?
If the feature is beyond your coding abilities then it may not be a good idea to pursue it. Perhaps it will require 2 additional support personnel just to handle future support requests. If you can not pull it off, its not worth doing a poor job.
Summary
In summary, when deciding what feature to implement, you have to ask yourself a few questions. Does it create value for you and your customers? How many other applications already offer it? How hard is it to copy by your competitors? Are you or your company able to take advantage of it?
I am not saying to rank features by any order of importance based on this model, though you can certainly come up with a ranking scheme. What I am suggesting is that for each feature you are about to implement, you should ask yourself these questions. Take them into consideration to help you decide which feature you should add to your software next.