logo       

Re: Development: A Structured Problem Area?: msg#00024

programming.language-of-the-year

Subject: Re: Development: A Structured Problem Area?

--- Derek Richardson <stuff-YC78yCVKCwA@xxxxxxxxxxxxxxxx> wrote:

> If requirements are fully specified, is the rest of
> the work a "well-structured problem" that can be
> solved by rule-based methods?

Yes, but that just moves the messy unstructured work into writing
fully-specified requirements. If we had fully-specified requirements -
- a 1:1 scale map of the system -- translating the requirements into
code would be purely mechanical. The hard part is getting to those
fully-specified requirements.

The idea that any reasonably intelligent person can write
requirements and specifications, and that programmers can then
mechanically translate the specs into code is an old and pernicious
problem of programming, still believed by many managers and non-
technical people. Programming languages are supposed to be tools for
unambiguously expressing requirements in a form a computer and (we
hope) people can understand. Most people don't want to learn
programming languages, so they write requirements and specifications
in English or some other ambiguous, informal natural language.

One source of messy emergent behavior comes from the discrepancies
between the actual requirements and what gets recorded in the specs.
The customer or user has a need or vision that the requirements only
partially or imperfectly capture. Another source of messiness comes
from the programmer translating the requirements from informal
ambiguous language to formal unambiguous code; the programmer must
necessarily make assumptions, fill in the blanks, etc. A third source
of chaos derives from our human inability to understand complex
systems and predict their behavior.

In 25 years of professional programming I have never seen formal
requirements or specifications that were worth the time spent on
them. Having the programmer(s) work directly with the customer/user,
possibly with a skilled analyst acting as mediator, always (in my
experience) leads to a better result. Without that interaction
projects either fail or turn into death marches.

Most people, I think, understand at some level that doctors and
nurses use experience and intuition more than a set of rules. But
increasingly even medical professionals are expected to follow
specific procedures (established by lawyers and insurance companies)
or risk the consequences. And rule-based diagnostic systems were
among the first applications of AI. Programmers have never been seen
by non-programmers as much more than coders mechanically translating
requirements. Doctors are now increasingly viewed the same way.

Greg Jorgensen
PDXperts LLC - Portland, Oregon USA




------------------------ Yahoo! Groups Sponsor --------------------~-->
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->


Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/pragprog/

<*> To unsubscribe from this group, send an email to:
pragprog-unsubscribe-hHKSG33TihhbjbujkaE4pw@xxxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise