Having just read Doron's Yaacoby's post on some of the insights he got
from reading Tom & Lister's Peopleware, I'd thought I'd repost a
couple of posts I wrote about a year ago in my Dr. Dobb's Journal blog
(with a few edits):
I just finished reading Software Conflict 2.0: The Art and Science of Software Engineering, by Robert L. Glass.
is a reprint (with few new retrospective additions) of his 1990 book.
While the technology mentioned in the book is outdated, many of the
author's ideas and views are still valid. The book is a collection of
short articles on various subjects, and one of the more interesting
articles is about the cognitive side of design.
that research done showed that design includes the (obvious) steps of
understanding the problem, decomposing it into goals and objects etc.
The essence of design, however, are the mental steps taken by designers:
also said that people tend to start with a model that worked on a
similar problem and that good designers perform this process extremely
fast. As I was thinking how one can train himself to get better at
performing this task, it occurred to me that I heard something similar
somewhere... While not the exact process this is very reminiscent of
TDD - only TDD makes the process explicit. In a way we can say that TDD
will not only help make your design better it would also trains you to
design better altogether.
Getting back to TDD or at least the idea of test first. It seems (via Rob Keefer pomiet blog) Gerald Weinberg talked about it more than 35 years ago in Psychology of Computer Programming :"By
pursuing this test example to the point where he understands the
problem, he will not only learn the one thing he did not know, but
perhaps will learn others as well, for test programs such as this are
often better learning instruments than are production programs.As
a matter of good practice, the test program should be constructed
before the 'fix' is made to the production program. In the first place,
there will be an all too human tendency to forget about the problem
once the production program is working correctly, so we must impose a
little discipline on ourselves. Possibly more important, however, is
the chance that by the mere act of constructing the test case we shall
discover the problem."
Subscribe to RSS headline updates from:
The opinions expressed herein are my own personal opinions and do not represent
my employer's view in any way.
© Copyright 2005-2014, Arnon Rotem-Gal-Oz
DirectionalRedux theme by John Forsythe and Jon Stovall