Guidelines, heuristics, principles

1 view
Skip to first unread message

rackri

unread,
Oct 8, 2003, 6:09:00 AM10/8/03
to
Hi all,

some OOD books describe guidelines, other speak about
heuristics. What is the difference between guidelines
and heuristics?
And what differentiates guidelines/heuristics from
principles?

Thanks -- Roberto

Phlip

unread,
Oct 8, 2003, 10:09:57 AM10/8/03
to
rackri wrote:

> some OOD books describe guidelines, other speak about
> heuristics. What is the difference between guidelines
> and heuristics?

A "guideline" is a rule of thumb, such as, "Don't have long cycles in your
dependencies." Of course everything has to depend on something. Define
"long" as you see fit.

A "heuristic" is the criteria you use to select a path, such as, "If all the
tests don't pass, don't commit your code." The trick is generally selecting
the right path without knowing exactly what's at its end.

> And what differentiates guidelines/heuristics from
> principles?

A "principle" is a rule, but we don't call it a rule on behalf of those who
don't understand rules were made to be broken.

But a "principle" permits trust with others. A principle is a heuristic or
guideline that your team members may count on you to either follow or ask
their advice before breaking.

--
Phlip


Uncle Bob (Robert C. Martin)

unread,
Oct 8, 2003, 11:55:58 AM10/8/03
to
rac...@yahoo.it (rackri) might (or might not) have written this on (or
about) 8 Oct 2003 03:09:00 -0700, :

Principles, heuristics, and guidelines are all aspects of advice.
They aren't rules, laws, or truths.

Most people impute a hierarchy to the three:

Principles > Heuristics > Guidelines.

Thus we don't violate principles unless we have to.
We don't violate Heuristics unless we *want* to.
We don't *follow* Guidelines unless we want to.


Robert C. Martin | "Uncle Bob"
Object Mentor Inc.| unclebob @ objectmentor . com
PO Box 5757 | Tel: (800) 338-6716
565 Lakeview Pkwy | Fax: (847) 573-1658 | www.objectmentor.com
Suite 135 | | www.XProgramming.com
Vernon Hills, IL, | Training and Mentoring | www.junit.org
60061 | OO, XP, Java, C++, Python | http://fitnesse.org

H. S. Lahman

unread,
Oct 8, 2003, 12:35:21 PM10/8/03
to
Responding to Roberto...

> some OOD books describe guidelines, other speak about
> heuristics. What is the difference between guidelines
> and heuristics?
> And what differentiates guidelines/heuristics from
> principles?

All refer to policies for conduct. The main difference between
Guidelines and Heuristics is that Guidelines are usually fixed policies
for conduct while Heuristics are policies of conduct that are
incrementally improved empirically. The etymology of 'heuristic' stems
from a teaching approach. [Jeesh, I can remember this kind of minutia
while I forget my own phone number.] In software development they are
usually treated as synonyms.

Principles are formal and immutable rules, laws, or codes for conduct
while Guidelines and Heuristics are not binding (or at least less so).


*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
h...@pathfindermda.com
Pathfinder Solutions -- Put MDA to Work
http://www.pathfindersol.com
(888)-OOA-PATH


Reply all
Reply to author
Forward
0 new messages