Table of contents
What makes a feature in software development? Software developers often design their products with a minimum number of features to minimize cost and complexity while still providing enough flexibility to satisfy customers’ needs. If a company wants to add new or enhanced capabilities, it can release an upgrade which typically contains new features as well as enhancements to existing ones.
What makes a feature in software development?
A feature is a unit of software that provides a specific function or capability for the software. For instance, the ability to create and edit documents is a single feature found in many different programs, such as Microsoft Word and Type Writer. Software features often vary between competing products in an industry. A more sophisticated product might offer many features that are not found in simpler offerings from competitors.
What is a feature test?
A feature test is a test case written against a single software feature to validate that the feature works correctly. For example, in the hypothetical application described above, a feature test might check users’ ability to create and edit documents. A good test of this functionality would verify that users were able to save their finished documents and access them later on.
Features can also be grouped into functional areas called feature sets. A feature set is a group of related features that make up an entire functional area of the software product, for instance, in a file management application (such as Windows Explorer) one feature set might include all features associated with creating and editing files.
Features and functional areas can also be grouped into modules, which are groups of related feature sets. For example, in a word processing program, one module might include all the features and functional areas involved in creating and editing documents; this includes all the features associated with creating the documents as well as editing them once they’re complete.
How are features are created?
When the product team finishes designing and implementing all the features in the application, they must verify that each one does what it is supposed to do and that the application as a whole meets its functional requirements.
How are features deployed?
Features are deployed after they have passed their acceptance tests.
Feature Driven development
Feature-driven development (FDD) is a software design and implementation method that enables “just enough” development. Feature-driven development uses features as an object of software engineering, using features to determine the scope of the project. The steps below are used to implement FDD:
The feature-driven flow is a process to deliver new features in an incremental way. It focuses on delivering only what is needed rather than every possible alternative, thus saving time and money by providing only the minimum set of functionality needed. FDD allows developers to find and out existing “drivers” that drive feature need so there is no duplication or wasted effort on unnecessary work.
Additional terminology associated with features
Feature Request
A Feature Request is a request for enhancements or changes to a particular feature in an application. In some cases, such as if there are bug fixes or changes to ongoing functionality, this can be included within the iteration tasks of an Agile project.
Feature Matrix
A Feature Matrix (also known as a “Feature Tree”) is used by software developers to illustrate how individual functions are organized into features and functional areas in a software application.
Feature Set
A Feature Set is a group of features that makes up a particular functional area in an application, for example, in a word processing program, one feature set might include all the features associated with creating and editing documents as well as editing them once they’re complete.
Functional Area
A Functional Area is one or more related features that are grouped together to form a functional unit of functionality for an application. For example, in a word processing program, one functional area might include all the features and functional areas involving creating and editing documents.
Functional Test Plan
A Functional Test Plan sets out the testing tasks and plans needed to fully test the functionality of an individual feature within an application.
Conclusion
Features can be viewed as the “chassis” around which the product is built. A feature should be designed, implemented, tested and deployed to ensure that it meets the goals of a product.
You might be interested in why you need bug tracking software in software development.