Monday, May 02, 2005

Follow up to transparency: explicability

Software: your software should have the same characteristics
as your own professional life.

1) Software should be transparent -- what is going should be either
visible, or "visible"-isable, in other words, the operations should be capable
of being made visible. Professionally, you should be able to say what
you are doing, and ..
2) Explicable - why something is happening - should be another characteristic.
Why has a certain relevancy been assigned to a search result?
Show the algorithm -- how were the parameters arrived at? Why were they
applied in this case.

People will not trust our systems if the systems cannot supply this information.
People will not trust us, and they should not, if we cannot supply this information.

(see this post,
Software Engineering for Everyone
by Dennis E. Hamilton