|
Please patronize sponsors of this page!
Bytesmiths no longer is involved in software consulting. Maintenance of this web site is currently subsidised by unrelated business activities. Please pass the word to other interested folks, so I can continue to host this page!
- Bytesmiths Editions -- large, archival, fine-art photography on unusual materials
- Bytesmiths Press -- artists' services: web design/hosting, jury slides, giclee reproductions, opening announcements, brochures, etc.
- Champagne Beadworks -- handcrafted jewelry and beadwork
- Crafted By Carol -- handcrafted jewelry and beadwork
- EcoReality, an organization devoted to establishing a sustainable ecovillage
- Ecovillage Newsletter -- Diana Leafe Christian's news of her travels.
- Environmental Education Outreach -- providing environmental education worldwide.
- Gemini Gypsy -- Carole Good-Hanson's fused glass frames
- Green Chipper -- light forestry and environmental services.
- Salt Spring Island Society for Community Education -- community education on our island of 10,000.
- Veggie Van Gogh -- two artists' mobile warehouse and living quarters, petroleum-free!
- Veggiemog -- life and times of Kelly O'Toole's Unimog, running on biodiesel
Your site could be listed here, for as little as $12 per month! Go to Bytesmiths Press for details.
This site has been selected by PC Webopaedia as one of the best on this topic!
This site has been awarded a Links2Go Key Resource Award in the Smalltalk category!
Originally published in The Smalltalk Report, January 1997.
Architects Versus Coders
by Jan Steinman
"But
Andrea, can't we get
another eight women together and ship this baby in a
month?"
Aaron Blake sighed into
the telephone. "I'm going crazy out here!" Aaron was the project
leader of a new Smalltalk project at
MegaCorp. He had
pulled off successful Smalltalk projects before, but this time things
were beyond his control.
"I'm sorry," MegaCorp MIS Director Andrea Saunders told him over
the phone, "but my hands are tied." Andrea was going through a
difficult RH factor pregnancy, and had to spend most of her days in
bed. "Believe me, I'd rather be there with you guys right now -- I'm
going crazy too, from the boredom!"
Andrea had carefully nurtured Aaron's experiments in Smalltalk,
providing him with good
training for his team,
bringing in outside
experts, and buying the
best tools they could find. This paid off handsomely on one
pilot project, in which
Aaron's team bettered MegaCorp's typical delivery resource by an
order of magnitude, while completing the project in a third of the
time with less than the average number of problems. As that project
wound down, Andrea "loaned" Aaron to another Smalltalk pilot project
in a different department, which then achieved similar results.
Then two unlucky events coincided: Aaron was given a bigger,
mission critical task to do, and Andrea went on medical leave.
Is there a chief architect in the
house?
Andrea's temporary replacement was Grey
Thompson, a very senior staff member who fondly recalled the "good
old days" when men were men and computers stored bits in tiny
torroids of ceramic iron. His favorite language was assembler, but
only when it wasn't practical to build a custom micro controller to
do the job.
Grey scorned management as art or science, believing instead that
the role of a temporary MIS Director was to drive the technology
forward into uncharted territory, no matter what the cost. This, of
course, required constant vigilance over the unruly staff, lest they
decide that there was more to life and software development than
following orders while keeping their eyes on the tube and their
fingers on the keys.
Grey regarded object orientation as a passing fad somewhere along
the path between assembly code and autonomous expert systems. To
avoid being distracted by such voguery, Grey carefully avoided
learning much of anything about OO. "Smalltalk is just another
programming language -- if this doesn't work out, we'll re implement
in assembler," he announced at his first staff meeting after Andrea's
departure. "The language doesn't matter if the architecture is
right."
His new role gave him greater authority than he had ever been able
to muster. As a hard core "tekkie," he
lacked the people
skills needed in management, and had enjoyed little influence
since his first few projects, when his keen understanding of hardware
had enabled him to do wonderful things in assembler.
But now he could simply order people to do things, and make their
lives miserable if they argued with him.
"The most important thing is architecture. Everything must be
driven by architecture, or thrown out," Grey told the staff. This
sounded like music to Aaron's ears at first, since he had witnessed
too many kludges grafted onto hacks on the sides of patches in his
day.
But it quickly became apparent that what Grey meant by
"architecture" also included minutia like the names of specific
classes and methods, the layout of storage, and even the use of
specific language facilities.
Morale crasher 1
"What do you mean, 'we can't use blocks?'" Aaron snapped
at
"Trigger" Larsen over
the cubicle wall.
"Grey said blocks will be difficult to deal with if we port to
some other language," Trigger replied. You know he insists that
Smalltalk is merely an implementation vehicle for all his "great"
ideas. (Trigger drawled out the "great" while rolling his eyes --
he was
not known in MegaCorp for his tact or political savvy.) "I
overheard him boasting to
Linus in accounting that
if our Smalltalk vendor goes out of business, he'll be back on track
with a different language in under two months!"
"Fat chance," Aaron replied. "Doesn't he realize that the
only reason we're as far along as we are is because we were
able to re use the infrastructure
Jake built for the
CIMPR
project last May?"
"Hey, just see how much of CIMPR we can use without blocks!"
Trigger laughed cynically, "We'll spend twice as much time getting
rid of blocks in our current code as we've spent to write it."
"Does he even realize that blocks are a core part of Smalltalk,
that exception handling and even Dictionary access won't work
without them? Are we going to re write the base image to avoid
blocks?" Aaron tried not to get upset at management decisions, but
this was going too far.
"You kidding? He doesn't know a block from his head," Trigger
continued, "come to think of it, I'm not sure I do either, but he
went to some conference and some academic told him that his Smalltalk
code would never port to C++ or Java if he used blocks."
"So, I suppose we need to 'dumb down' to the least capable
language we might ever consider using," Aaron sighed. "Guess it's
time to get out the old abacus and start programming."
Morale crasher 2
Denny
Hicks was not fond of confrontation. In fact, the very idea made
him feel a bit ill -- especially when the confrontation was with
someone who could have him fired. His shoulders slumped as he stared
at the conference room table.
"I don't see the Wopr class in your diagram," Grey
Thompson accused, "a vital part of the architecture is the w
ord, o peration, p rogram counter, and r
esult object, but you saw fit to leave it out! Do I have to do
everything around here myself?"
"Well, well, you s-s-see," Denny stammered, "I thought the
architecture was meant as an abstraction, and that I should re-use
whatever I could, and besides, Wopr as defined in the
architecture is just a data holder, so I encapsulated that
information together with contextual behavior, and..."
"'You thought?' We don't pay you to think!" Grey cut him off, "the
abstractionists have done all the thinking here! I want you to
schedule a new design review, and Wopr better be back in
if you want that review to go any better than this one!"
Morale crasher 3
"So exactly where is the cache we specified?" Grey glowered at
Aaron.
Aaron had to think fast. He mused to himself, "How would I
describe the abstract re-use of cadence and melody in a Bach fugue to
a cave man?"
But unlike Trigger, Aaron had taken
Office Politics
101. "The cache is a hidden implementation detail," he began,
"and we have nailed down the external protocol of the encapsulating
object, which is all we need to get things started. The type of
cache, the cache coherence policy, and even the number of caches and
their locations are decisions that can be deferred until we know more
about the problem."
Back in politically correct mode, he reserved to himself the
thought, "Not to mention whether we need a cache at all in this
particular spot, you oaf!"
"Aaron, you agreed that architecture was important," Grey said,
speaking as though Aaron were a impudent child, "Please save yourself
a lot of trouble and put the cache back in. You'll thank me later."
Morale crasher 4
"The Nack class is supposed to have three variables,
but it has none. Was there something you did not understand,
Trigger?" Grey asked with skepticism.
Trigger retorted, "Well, I don't even think it should be a class,
let alone one with instance varibles, so I made it a subclass of
False just so that the name will match your silly
diagram. That way, it has a hope of actually working."
It started at Grey's neck. It rapidly progressed up through his
ears and face, and soon all his visible skin was bright red. But he
knew Trigger was baiting him, and he didn't go off like the
firecracker exploding inside his head. Through clenched teeth, he
told Trigger, "If you humor me with the silly class to match the
silly diagram, then put the silly variables in there as well."
Conclusion
It's been about six weeks since we visited Aaron and heard about
how much he missed his old boss, Andrea. He gave
Barbara a call the other
day.
"So, do you guys know anyone hiring experienced Smalltalk project
leaders?" he asked.
"Aaron, you know we can't talk about this while you're working for
a client of ours," Barbara replied, "So what's going on? Maybe we can
help make it more bearable."
"Well, not today. I've got to go rename a bunch of classes, get
rid of some blocks, sprinkle a few useless caches and variables
around, and update my resume," Aaron said dejectedly.
"Gee, try not to sound so cheerful!" Barbara replied, "How 'bout
we drop by next week? We might not be able to help, but sympathy goes
a long way!"
To be continued...
Go to the previous column in
the series, or the next
column in the series.
Go to our review of ENVY/QA published
in the next issue of The Smalltalk Report.
|