Fidelity Focused Application Software Development
Let's imagine that building software is like making a painting where the final work of art represents a high quality functional application. Having a 'fidelity focused' approach applies creativity to building high quality software applications.
Fidelity: degree of accuracy with which sound or images are recorded or reproduced.
In software we often focus on each piece of the application separately. If we approached a painting this way our painting would quickly end up looking abstract and unfinished. Focusing on the pieces separately also leaves the work of filling in the blanks for last, and it often turns out that these blanks rarely are completed or are done hastily, resulting in poor quality overall.
In fidelity focused development, we focus on our application as a whole and start by first building a low-fidelity version and then iteratively improving it. This approach maintains the consistency of the application the entire time. Similar to our painting analogy, the progression feels more 'natural' and allows the overall picture to be clearer.
Fidelity: strict observance of promises, duties, etc.
Another aspect of a fidelity focus is using early iterations as a 'promise' for what we are creating. Often there are communication hurdles when building specifications for software. Specification attempts often let us down during development and the application can turn out being radically different than what was originally intended in the specification. Going back to our painting analogy, if we start painting a landscape, it wouldn't make much sense to later attempt to change to a portrait. You would just start over with a new painting.
In fidelity focused development, it is crucial that early 'promises' are kept. This can be difficult as oftentimes there is pressure to make large changes during an a project and move away from original promises. But in order to keep 'fidelity' of the project, it is absolutely critical that the team maintains their early promises and instead defer large changes to subsequent projects.
By incorporating the concepts of 'fidelity focus' we move away from rigid, systematic processes to building software and instead embrace a creative, high quality approach.
Interesting Matt. What would be a low-fidelity version of an app? Seems counter-intuitive as a starting point.