Bugs and Enhancements and Features! Oh My!

PublisherSol Minion Developmenthttps:https://assets.solminion.co/logo.svg?mtime=20200915165531&focal=nonePublishedcustom developmentplanning

With this article, I'll continue a series on the lexicon of app development. In this post, I'll cover something that comes up during many stages of a project, particularly Web applications. When we talk about Web sites, software, and apps, developers often reference "bugs" in the code or mention "enhancements" or "features". If you'd like to know more about the difference, you should keep reading.

There are sometimes subtle differences in terminology we use. Often, ordinary phrases have a completely different meaning in the context of technology or development. For the purposes of this article, I'm going to focus on three that come up in every design and development project: bugs, features, and enhancements. For simplicity, I'll refer to all Web sites, Web applications, and mobile apps as an "application" or "applications".

BUGS

Bugs are quirks or defects that cause an application to behave in an unexpected way. To modernize Benjamin Franklin: nothing is certain in this world, except death, taxes, and software bugs. Every application has bugs, they just haven't all been discovered. As developers, we do everything we can to make sure our creations operate as expected, but we are still human and mistakes can be made. Most application development companies will provide a 14-30 day warranty period where bug fixes will be covered as part of a project's original scope.

An example of a bug would be a change to some piece information (i.e. Status changed from "New" to "Backordered") is not showing up when an order is viewed. Depending on the scope and complexity of a bug, you should expect a fix to take anywhere from a few minutes to a couple weeks (and sometimes it can take multiple tries to cover all the scenarios).

FEATURES

A feature is some key function of an application - basically, why the application was created in the first place. These often have a lot of interactions throughout the code, so adding a new feature to an existing application (or deciding which features should be included in a brand new application) is no small task. A lot of planning goes into features and these shouldn't be "spur of the moment" additions or afterthoughts.

An example of a feature would be maintaining a list of contacts or leads, including add, edit, delete functions. This can be as grand or small in scope as you want, but the more that goes into a feature the longer it will take to implement (and the greater the resources it will take to implement). Depending on the scope, you should expect a feature to take anywhere from a few days to several weeks.

ENHANCEMENTS

The difference between enhancements and features is subtle. While a feature is something entirely new that an application couldn't do before, enhancements are improvements to an existing feature. Some could be very easy to implement, but others are just as complex or difficult as the original feature was to create in the first place. Others may look very simple on the surface, but the complexity you don't see that requires the developer's expertise may surprise you. Enhancements require more planning than features since they'll be interacting with existing workflows and its easy to introduce bugs.

An example of an enhancement would be grouping an existing list of contacts or leads (see the example in the previous section). Depending on the complexity (both superficial and "under the hood"), you should expect an enhancement to take anywhere from a week to several weeks.

SUMMARY

Each of these concepts takes a developer time and detail is their best friend. We may not notice (or be able to replicate) a bug without some piece of information. Many times, details are left out because it seems trivial or unrelated. The more information a developer is provided, the quicker he is able to successfully fix a bug, create engaging, useful features, and implement stellar enhancements. It's better to include the information as part of the conversation and you shouldn't worry about sounding silly - the worst questions are the ones you don't ask.