From: paradis@sousa.ltn.dec.com (Jim Paradis)
Newsgroups: misc.jobs.misc
Subject: Re: Earning a living in the country
Date: 6 Sep 92 15:59:02 GMT
Distribution: usa
Organization: Digital Equipment Corporation, Littleton, MA

vernak@fenris.com (Verna Knapp) writes:
: I do the kind of work that lends itself to working at home; I am writing
: software. With a decent specification, I would need almost no interaction
: with my coworkers. However, I have not seen a decent specification in the
: last 10 years. By a decent specification I mean one which lists the inputs,
: the outputs, the transformations which turn the inputs into outputs, the
: hardware the program is to run on, and any interactive queries which may
: be received along with the required responses. And don't forget the formats.
: This seems to be a cultural thing. We have allowed the people who get their
: social jollies by talking to define how we do our work. This "talk to each
: other" mode has been substituted for specifications, much to the detriment
: of time to market, I might add. This cultural factor is always cited as
: an absolute barrier to my requests to take my work home. 

Well, Verna, there are things to be said for both over- and 
under-specification of software requirements.  Overspecification
allows the coders to work independently with a minimum of input from
others, but it is inflexible -- what if you encounter a problem that
the author of the spec *didn't* think about (and in a complex enough
spec, such things are bound to happen!).  Well, either you blunder on
ahead blind, or you need to call a *meeting* with the author (and maybe
the rest of the team) to resolve the issue.  Underspecification is 
much more flexible, but it requires lots of personal interaction to iron
out the details.

The issue of specifications is kind of like taking a trip... issuing
"perfect" specs is like giving someone detailed directions ("take your
third left, then right at the next light, then three miles, then fork
left...").  Trouble is, what happens if the traveler suddenly faces a
sign that says "Bridge Out"?

I used to believe as you do: write the specs and refine them and re-refine
them and so on until they were perfect before writing a single line of
code.  I changed my mind on my current project, where I had to *architect*
my first major piece of software.  The project I'm working on is in largely
uncharted territory in the software world, so I didn't even have the benefit
of a "map".  So we've ended up having to do just what everyone else does;
write a preliminary, general spec, debug it, use it on simple cases,
watch something break, fix it, watch something else break, realize we need
to redesign this piece.... and so forth.

The amount of interaction my group does to build this piece of software
is *not* for getting our social jollies... we'll do *that* elsewhere,
on our own time 8-)  No, we interact because that's the nature of the
beast...

That said, realize that I haven't ruled out working from home yet!  All
I've done is made a case for the fact that personal interaction *is*
required in a number of jobs....

: There are probably other similar fixable barriers to working away from the
: main office. How about let's do a bit of brainstorming on what those barriers
: are and look for ways to fix them? 

Well, like I said: lack of personal interaction is, to my mind, the main
barrier.  Just because people are geographically isolated does not mean
that they must be interpersonally isolated, however.  We already have
many tools available for remote personal interaction... we're even using
one of them right now 8-)

In fact, I used to believe that if only we could get *everyone* to do
business via phone and modem, we'd have the working-from-home problem
licked.  Since then, I've discovered that people have numerous different
"personal styles", not all of which lend themselves to this kind of
interaction.  Some people have the knack for expressing themselves
concisely and accurately in written form.  Others may communicate primarily
by gesture or facial expression.  Still others may speak only a few words,
but their tone of voice says everything.

In short, getting *everyone* on a team to funnel their interactions through
current narrow-bandwidth channels is often more trouble than it's worth.

On the other hand, I saw a snippet on PBS the other day which I'd like to
know more about... it showed one guy communicating with a remote colleague
about a particular problem.  He was seated at his workstation, and he had
two windows up: an application window, and a videophone window!  The latter
window showed his colleague's face in real time.  What's more, they also
had the ability to control each other's workstations (have you ever typed
on someone else's terminal to demonstrate a problem or whatnot?  Same sort
of thing!).

I think that a setup like *this* would work wonders for the work-at-home
movement.  8-)  Of course, I wonder how much it costs, and what kind of
telecommunications setup it requires (i.e. can it be done via ISDN, or
does it require even higher bandwidth links?)

Food for thought...

-- 
Jim Paradis (paradis@tallis.enet.dec.com) 
Working for DEC, speaking for myself.
Newsgroups: misc.jobs.misc