Sunday, April 23rd, 2017
There are only three reasons for developing software: making money, saving money or protecting money. Consequentially, every software development is an investment. In order to assist development teams with this approach, has appeared the “Feature Injection“. It has three steps that you continuously loop through:
1. Find the Business Value: The value of a software project needs to be boiled down to a well-understood model. Models require only a concise statement about the output or outcome and how this will be achieved. It does not require a significant document and can often be conveyed in a single paragraph.
2. Inject the Features: When we know the outputs, we can inject the features to calculate the values. We work backwards from the output to the inputs. The list of features becomes a focused set of features driving towards specific outputs defined within the model.
3. Break the Model to find the Examples: Examples are the real world test of what a system needs to be responsive towards. This step is focused on both ensuring negative paths are understood and the system can be validated as successful.
If we move from inputs to outputs at each step, we do not know whether we have all the information we need to satisfy that step. If we move from outputs to inputs, we know at each step that we have the information we need to satisfy the output.
The great thing about starting at the end is that you cannot miss something that is needed to produce the outcome. Not only that, but you do not include things that are unnecessary. As a result, you can deliver with the minimal ammount of effort by choosing appropriate options to implement.
One of the key benefits of Feature Injection is not just to identify the things needed but to identify the things we should start building. Working from outputs to inputs will prevent analysis paralysis. Instead of evaluating whether a particular feature is relevant, we proactively design features that are relevant and drive the inputs into the system to enable such features.
Summing-up: All value comes from the output. With Feature Injection, the business value scopes the outputs and the outputs scope the processes and inputs.