Steve Dryall presents mobile developers with five tips and strategies for avoiding feature creep in their apps.
Developing apps is a challenging and rewarding experience on many levels. The non-stop problem solving that eventually lead to success or failure are what makes app development so gratifying (outside of the financial rewards). When creating an app, it is important to make sure you have the most important feature set covered. So, how do you prevent that feature list from becoming unruly?
It can be very tempting to add features to your app before it's complete. There are often new features that look like they would be easy additions to the existing base and would offer "significant" improvements in the functionality of the app with "minimal" additional code. As we all know, most additions take longer than we expect and what seems simple to add at first can turn into e a nightmare.
In order to keep your apps on time, on budget, and actually get them out to the public, it is critical that you avoid feature creep -- that is, the creeping in of additional features to your software as your development progresses. Feature creep can be the death of a development schedule and sometimes even a product. Here are ways to keep feature creep to a minimum while still maintaining creative flow and maximizing your return for future releases.
1: Stick to your features list
After the planning is done and the coding begins, it is important (though often difficult) to stick to the list of features you set for your initial release. If you can adhere to your list and not add new features, you'll be several steps ahead.
2: Create a new list, not a new feature
App development is a creative process that requires intense brain activity, and it's only natural to have those creative energies overflow into other related areas, such as the addition of features. As new feature temptations begin to creep in, you should start a new list to help keep feature creep at bay. Be sure to include details about how the features should tie back to previous features or ones that are being developed; this will keep your current version on track and help speed up development on your next version of the app.
3: Create a version feature set
When you're developing a new app, you should have a list of features that are the base for how your app functions. As development progresses, it will be tempting to expand upon an existing feature or consider adding new features based on the upcoming completion of some basic functionality. Future feature lists can start to grow quickly, so you may want to divide upcoming features into potential version upgrades. This will help make upgrade planning easier in the long term and help with the completion of your current version in the short-term. Additionally, features that seem good during development can become unimportant, or their value can change as you get feedback from your user base.
4: Keep feature deadlines
If you plan to complete a feature in a specified timeframe, sticking to the deadline will help keep you from getting distracted by new features.
5: Add features only after they are requested
You should prioritize features based on end-user needs and requests rather than on your assumptions about usage. I have had a list of new features in the ready only to find out later that I was in the minority of people who would use that feature. If lots of people are requesting a feature on your list, you should add that feature first. These may be features that hesitant buyers have been waiting for and that can create boosts in your user base.
App development is a rewarding mental challenge that can become complex and make you lose sight of your initial goals. If you can keep features from creeping their way into your apps as you go, your apps will be completed quicker, and your users will be happier.