Functionality Landscape

This is intended as a metaphor for a software system. I have seen reference to "features as points in functionality space, and stories as journeys between these points", iirc, somewhere on this Wiki.


The point on TotalNeglectOfRefactoring is that a hilly functionality terrain will encourage or necessitate some strange detours. If you don't take the bulldozer to that little hill (e.g. refactor that DuplicatedCode or make some useful abstraction) then the next paths you make will probably go round the hill or over it: hard for the programmer or hard for the user.

Too many twisty paths round the many hills will leave a mess - you hit the FrankensteinPoint.


We can illustrate the "buying goods for the wrong price" problem in this metaphor. It should be impossible (or at least, a HardProblem?) for the user to climb the mountain that has goods at the top which don't need to be payed for.

Some online store developers prefer a small cliff face or a little fence, because they don't think anyone will figure out how to climb it.


My bugbear with some applications is the presence of precipices in functionality space. The user may stroll along a paved path safely, but the slightest deviation sends him plunging off into some abyss of brokenness.

The FunctionalityLandscape as perceived by the user should, in general, be a valley. If you stray off the beaten path, you should find yourself going up hill. Getting back on the path is easy - just roll.


Earlier, I said,

The idea of ExecutionPathShouldBeaPotentialEnergyValley? (!) is, IMHO, a generalisation of ItsAnOperatorProblem and problems I've seen on a recent project. It ties in with the notion of the "discrete functionality space" inhabitted by UserStories(?) and crossed by UnitTest ExecutionPath?s. I will dig out the details and write more later, when I have collected my thoughts.
There is more to write. My ideas are fuzzy. I suspect this metaphor could be overloaded heavily, but that is part of the beauty of it. I'm aiming to find a way of explaining a business reasons for doing the RightThing, in some sets of circumstances. -- MatthewAstley


EditText of this page (last edited May 5, 2004) or FindPage with title or text search