Re: Rewording the Design Principles: Pave the Cowpaths and Don't Reinvent the Wheel

On 8/13/07, Lachlan Hunt <lachlan.hunt@lachy.id.au> wrote:
>
> Hi,
>    It seems that there are still quite a few people that misunderstand
> and object to the pave the cowpaths principle and I believe this is
> because the current wording is quite vague:
>
>    "When a practice is already widespread among authors, consider
>     adopting it rather than forbidding it or inventing something new."
>
> http://www.w3.org/html/wg/html5/principles/#pave-the-cowpaths
>
> I get the impression that some people have interpreted that as meaning
> we should adopt existing markup usage literally, whereas it's actually
> more about analysing people's behaviour and then designing features
> based on what they are trying to do and how they are trying to do it.
>

Stated like that, that is certainly a good design principle.
Unfortunately, the vagueness of Pave the Cowpaths and it's uncritical
acceptance has led to it's over-application. It is a good design
principle if you are standing with no previous standards to work on
and are standing at the cross-roads of a variety of different ways of
implementing a feature.

Paving the Cowpaths is not a good design principle when it comes to
choosing whether or not to deprecate or remove features that are part
of the specification. Keeping a feature into the next release causes
no harm to those who do not use it, but removing a feature does cause
problems for those who use it. The tests used for removing features
needs to be different from the tests used for adding features.

May I suggest we have a corollary to Pave the Cowpaths, namely "Don't
Unpave Existing Roads Just Because They're Not Cowpaths". Connected to
it would be exhortations to remove features only if not doing so would
cause significantly more harm than removing them.

-- 
Tom Morris
http://tommorris.org/

Received on Tuesday, 14 August 2007 12:46:57 UTC