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.
In a sense, it is analogous to Desire Lines
http://en.wikipedia.org/wiki/Desire_lines
A desire line is, for example, a dirt path formed by people cutting
across the grass instead of following the pavement around it, which
eventually leaves a dirt track. Landscapers don't look at that
situation and decide that it would be a good idea to build dirt paths
everywhere. Rather, they look at it and decide that it would be a good
idea to pave it. So people can still do what they want to do - in this
case, take a short cut - but they no longer have to walk through mud on
a rainy day to do it.
There are similar problems with the wording of Don't Reinvent the Wheel:
"If there's already a widely used and implemented technology
covering particular use cases, consider specifying that
technology in preference to inventing something new for the
same purpose. Sometimes, though, new use cases may call for
a new approach instead of more extensions on an old approach."
http://www.w3.org/html/wg/html5/principles/#do-not-reinvent-the-wheel
That wording doesn't work well when existing solutions have, for
example, proven to be harmful, overly complex or far too limited to
address the use cases properly. There are some cases where it is better
to invent a new solution than attempt to recover some poor makeshift
solution, and the principle should make allowances for that clearer.
e.g. Replacing the datetime-design-pattern that abuses <abbr> with the
new <time> element.
These are my proposed revisions to those two principles:
Don't Reinvent the Wheel
Evaluate the success and failure of existing solutions. For those
that have proven reasonably successful in terms of benefits, usage
and implementation, consider adopting, retaining and/or improving
upon them in preference to dismissing and inventing new features.
Pave the Cowpaths
Investigate existing practices and design or adopt features that
meet the desires of authors. Where possible, solutions should
leverage the existing techniques and skill sets of authors which
will help promote the adoption of new features.
--
Lachlan Hunt
http://lachy.id.au/