I have long argued for using agile development methodologies as my preferred tool for guiding the software development I have been part of. A part of the agile systems development methodologies is prioritizing features in order of business value before each iteration.
Recently my team manager at Benjamin Media, Anders Kragelund, explained the exact same process for us at Benjamin using graphs. His educational background is in planning Mechanical Engineering processes, why his approach stems from more mathematical or statistical roots. His explanation helped shed new light on the process of prioritizing features. Being explained what you already know, but in a different way or in a different context, makes you understand your knowledge better or at least appreciate it to a larger extend.
The following is not rocket science, but merely a simple explanation of why prioritizing your features in the order of their business value will help your project and the product you’re building.
Part your features into three categories: A, B, and C. A features are the features that provide the most value for your product while C features are the ones that provide the least value. Each feature consumes a varying amount of time, which often is not proportional with their value.
The trick is then to order your features by the value they bring to your product (their business value). In other words grouping all A, B, and C features by their respective group; by the value they provide your product. The result is much steeper graph. One that delivers more value in a shorter amount of time. This is what prioritization is about.
Having said this, projects will often consist of features dependent of each other, why ordering your features by value for the final product is not always necessary.