Anticipate, Plan, Execute
posted Tue May 08 16:57:11 +0000 2007 - permalink
One issue we always seem to face in software development is
our own fantasy about The Phantom Specification. This usually
involves one or more of the following symptoms: claims of being
unable to proceed without the specification, an inability to foresee
any changes to the codebase, nervous laughter, and/or trying to hide
out in a corner of the office away from everyone else (at least more
than normal).
Specifications are generally hard to come by and are tough to
lock down. I've heard ideas on obtaining and locking down specs from
getting all stakeholders to sign a spec (mostly, I believe, in order
to get them to read it), to spending several months attempting to
nitpick every last detail via committee. There's the opposite idea as
well in the agile software movement's Matrix-style believe that
there is no spec. While the agile software movement has a
lot of cache, in my experience somewhere in the middle lies the
truth.
Which brings me to the point. Senior developers on any team
need to be consistently anticipating, planning, and executing to fill
in the gaps left by Phantom Specifications. Anticipate company
changes, and begin planning early to meet those changes so that you
can effectively set priorities. Currently, I'm working without a
specification. But I have been able to anticipate and plan around our
new products, allowing us to make the proper codebase overhauls to
support three new products. By the time I receive the three
specifications, we'll be all set to cross our t's and dot the i's so
that with any luck we'll be able to deliver on time.