Mama Cass Elliot wrote:
> <snip>
> Find out exactly what the End-user (or equivalent) is needing.
This step here is the impossible one.
The end users for Mozilla are potentially:
- developers (Mozilla as a platform!),
- businesses, and last but not least
- everyone in the world who uses the web
Now... trying to write a set of requirements for Mozilla for these
potential users is a vast task, one that would take years to accomplish
on its own... let alone writing any code.
Worse than that is that people are fickle. Consider the following:
You've got your spec. You write your code. It's perfect, bug-free, and
100% to spec. And then the users all simultaneously cry: "Ya, it's
good, but it should be able to do <insert unforseen feature here>".
You've just got yourself millions of potential new bug-sources, and the
users won't be happy until you give them what they want.
Writing bug-free code is within the realm of the accomplishable for
smaller projects, or ones where the requirements are well defined and
are unchanging... and your friend's courses would apply beautifully to
those projects. The problem is that Mozilla doesn't fit into either of
those categories.
> <snip>
> Of course this all depends on accurate and complete systems analysis, and
> an accurate, complete description of the application's internal logic prior
> to writing the first line of code - something that many [most?] programmers
> seem unwilling to do.
Strangely enough, many will. Or at least the good ones will try. The
problem is with those changing specs again. When the specs change, the
systems analysis has to be redone... and that isn't practical.
You're right in that we should always strive for bug-free code... but
that's in the same realm as the weight-lifter always wanting to lift one
more pound... he never quite gets to infinity, now does he?
Eric