End User Habitability

RichardGabriel describes habitability likes this:

"Habitability is the characteristic of source code that enables programmers, coders, bug-fixers, and people coming to the code later in its life to understand its construction and intentions and to change it comfortably and confidently. … Habitability makes a place liveable, like home. And this is what we want in software - that developers feel at home, can place their hands on any item without having to think deeply about were it is"

Compared to architecture the source code forms a habitable structure, like a house, that gives the developer a room or possibility for certain actions.

Patterns give a way to structure the source code in a way that makes it more habitable for the developer, that is, make it easier for the developer to navigate, correct and change the source code.

End user habitability gives a different view of habitability. The final program gives the end user a structure that makes certain actions possible as the source code provides a structure for the developer.

If one thinks of the program as a building for living, the goal must be to make this building as habitable as possible for the end user.

It seems to me that most pattern writers take on the view of habitability as RichardGabriel does in PatternsOfSoftware, that is programmer habitability instead of end user habitability.

The goal for ChristopherAlexander, who seems to have inspired many pattern writers, must be end user habitability. His goal isn't making architects dwell into their drawings with pleasure and comfort, but building houses where people can live.

Has anybody identified patterns for improving end user habitability?

It seems to me that the InteractionPatterns? are getting closer to this. I find DesignPatterns important too, but on a lower level, to complete the end user habitability patterns, whatever they might be called.

-OleHoeghHansen

(I found the term end user habitability on FallingWater)


EditText of this page (last edited August 4, 1998) or FindPage with title or text search