dimanche 9 août 2009

Lean Software Development and Features Injection

I recently discovered 'Feature injection' and started to apply it in my daily work for part of the project. So far I really enjoyed it and did not find a major flaw in the process.
Lean Software Development resonate as common sense, organized way of getting the work done efficiently.

Here is what I retained of it:
1- WHY? : Find the value that you want your product to generate for your user, generally this value allows the user to save time or money, gain productivity, have fun, or event better: be really good at what he is doing using your product ("kick ass user of Y").

2- WHAT? : What are the outputs that represent or give this value to the user ?

3- HOW? : How do you process to get these outputs ? which features produce them ? what are the inputs needed? Build the model during analysis, list all questions and answers, some questions may get an answer later in the process.

At this point we have :
OUTPUTs <- Feature(Process + Model) <- INPUTs

4- Write Feature Tests : for each feature injected we can implement the tests that will pass when the feature is done

5- Analysis and Design of features allow us to Write Unit Tests

6- Implement code to green our Unit Tests, then our Feature Tests : at this point the features that are DONE are ready for final review and release in production

The implementation followed the inverse direction of the analysis so we implemented only what was really needed to produce the outputs that have a value for the user.

Only the necessary features were injected into the system!