Release feature optimization
If you are in charge of delivering multiple software releases to customers on a regular cadence. Often you will need to wrestle with making feature trade-off decisions to keep the content well balanced and within a limit. This process involves feature aggregation based on value and size. It can benefit from a well-known technique known as the "knapsack" problem, for identifying the best set of features. For example, if there are five features as follows
Values = [ 5,6,9,10,15] Size/weights = [ 60,50,80,20,10 ]
In our example, if the release size is limited to 80 then the content is optimized by picking features with values of 6,10,15. This combination gives us an aggregated total value of 31, with a weight of 80( 50+20+10 ). On the other hand, if we picked the feature with a value of 9, our release could only have one feature since the size is maximized at 80. As can be seen from this simple example, complex release boundary trade-off decisions can benefit from framing the problem in the above fashion