[comp.sys.amiga] On Software Development

ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) (02/01/89)

In article <2030154@hpcilzb.HP.COM> daves@hpcilzb.HP.COM (Dave Scroggins) writes:
>But what I want to know is: how could
>any business person in their right mind start advertising for a product
>that's so far from completion?  This is really appalling to me.  [ ... ]

	It's quite easy, actually.

	My experience with developing Onion has given me an insight into
how developing Real Applications works.  I can speak only for myself,
remember.  Also remember that my words do not necessarily reflect the
official position of Silent Software, Inc., nor does it necessarily reflect
the normal development cycle there (we've actually met quite a few
deadlines).

	Basically it has to do with the programmer lying to his bosses.
By lying, I mean providing a forecast which turns out later to be untrue.
This is (usually) unintentional.  The boss looks at the program, and says,
"Gee, it's almost done!  Just a couple more things, and it'll be finished."
This is probably the worst thing a boss can say to a programmer, since it
causes his productivity to go down the toilet.

	His (or her) mind starts to wander.  He starts thinking about other
projects he'd like to work on.  He may actually start thinking about the
data structures he'll use in his next project.  The time spent thinking
about his next project detracts from the current project.

	Also, making the program robust can eat a lot of time.  Bullet-
proofing also causes the program to double in size.  This can cause a
recursive cycle to start up, with the boss saying, "Make it smaller," with
the programmer obliging, but adding the required features and making *them*
bulletproof, causing the program to grow larger still, causing the boss to
say, "Make it smaller," etc.

	Also, programmers are known to burn out.  Working on the same thing
for months on end, particularly when you've got zillions of ideas bouncing
around in your head, can be quite frustrating.

	As a result, the program is late.  It's not that the programmers or
the publisher want it to be late, nor that they even *knew* it would be
late.  As the product becomes later and later, the publisher starts to lose
money (paying the programmer[s]'s salary), and the programmer gets more and
more irritated.  No one wants product to be late.  It just sort of happens.

	You'd think publishers would have learned this by now, but in a
world of four-month magazine lead times, some hard decisions have to be made
by The Powers That Be, and they hope and pray that they are right.

	On the other side of the coin, you almost never see an arcade game
port that's late.  This is because the people paying to have the game
developed say, in no uncertain terms, "It will be finished on this date."
All they care about is that it's finished in time for them to sell a lot of
copies.  Quality is almost never a consideration, since such games can
usually sell on the name alone.  This is why most arcade game ports suck.

	Sometimes, you see a crossing of the two.  Because the publisher is
running short of money, he'll 'shoot the programmer' and release the product
early (with bugs) with the hope that the revenue generated from the product
(before word gets out that it's buggy) will help cover the cost of
completing the project properly.  The problem with this approach is that you
almost never recover from the bad reputation.

	So the best advice I can give when waiting for a product to be
shipped is just that:  Wait.  Everyone at the other end is probably gnashing
their teeth just as much as you are.

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Leo L. Schwab -- The Guy in The Cape	INET: well!ewhac@ucbvax.Berkeley.EDU
 \_ -_		Recumbent Bikes:	UUCP: pacbell > !{well,unicom}!ewhac
O----^o	      The Only Way To Fly.	      hplabs / (pronounced "AE-wack")
"Work FOR?  I don't work FOR anybody!  I'm just having fun."  -- The Doctor

ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) (02/03/89)

In article <10557@well.UUCP> I write:
>	Basically it has to do with the programmer lying to his bosses.

	After some brief correspondence with Jim Mackraz, I thought it might
be appropriate to clarify this statement.

	I never meant to imply that this is how I intentionally go about my
duties, nor did I wish to imply that this is the sort of employer/employee
relationship that should be expected.  It was a poor choice of words on my
part.  I meant only to say that, despite everyone's best efforts to provide
accurate forecasts, projects can become late.

	It is my perception that a professional programmer is fully aware of
his/her level of expertise, and burnout level.  Therefore, projects under
the stewardship of professionals should tend to be less late than other
projects.

	This is why, when some people refer to me as a wizard, I try to play
it down.  Wizards know precisely what their capabilities and limitations
are.  I've only been programming "professionally" (read: for money) for a
relatively short period of time.  I'm not yet fully aware of what my
capabilities and limitations are.  Sure, I've pulled off a few parlor
tricks, but that turns out to be only a small part of what's needed when
Actual Products are being developed.

	So far, I think the biggest requirement is perseverence (sp?).  I'm
trying to find that quality within myself.  So I'm not a Wizard.

	But I'm working on it.

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Leo L. Schwab -- The Guy in The Cape	INET: well!ewhac@ucbvax.Berkeley.EDU
 \_ -_		Recumbent Bikes:	UUCP: pacbell > !{well,unicom}!ewhac
O----^o	      The Only Way To Fly.	      hplabs / (pronounced "AE-wack")
"Work FOR?  I don't work FOR anybody!  I'm just having fun."  -- The Doctor

carus@ttrdf.UUCP (Bryce W. Carus) (02/06/89)

...ya gotta like a guy who says things like that!