[racket] OFFTOPIC - Quote on Programming

From: Ray Racine (ray.racine at gmail.com)
Date: Thu Mar 21 12:16:55 EDT 2013

Ancillary story.

On one occasion I did do a detailed business rule design to the extant of
constructing a full on Zed document.  In this case there were 10-15K lines
of completely opaque RPG code dealing with pricing.  Not a living soul on
this planet understood how pails, buckets, gobs, and dump trucks full
shadowy data (most of which at the end of the day, didn't influence a damn
thing) were poured into said system and then machinations resulting in
spitting out a price from the other end.  Think your digestive track here
and you're pretty close.

It took weeks to put the document together.  But ... when we went to code,
it was the smoothest flowing constant stream effort to completion of any
software project I've experienced.  After code completion we found far more
bugs in the spec than we did in the code.  Most of the issues were failures
to uncover subtle corner cases (most of which were themselves bugs, legacy
deprecated rules etc) in the RPG code.

Summary.
Overall far less bugs.
Lesser proportion of bugs were from variance between spec and code.
Most bugs were in variance between spec and reality (actual business rules).
Overall, I liked it the approach to the point where I would apply it again.
Interestingly, I never have, though there have been a few situations where
it would have been applicable.

These days, I'd throw someone out the window who wanted to start coding
from the get go with the idea we'll sort of Agile random walk the code and
logic to the desired end state, as I will someone who advocating full on
upfront MBase.


On Thu, Mar 21, 2013 at 11:36 AM, Richard Cleis <rcleis at me.com> wrote:

> My experience is the same. But try to explain to a program or project
> manager that at least four things gradually change to complete a project:
> design, code, tests, and docs. I am no longer expecting to ever work on a
> project where the leaders do not insist each of those is a milestone
> completed in some exact order that was preconceived by someone who never
> finished a good project.
>
> rac
>
> On Mar 19, 2013, at 2:29 PM, Patrick Li wrote:
>
> > My personal experience is that a good and detailed design is hard to
> > get to *without* doing the coding.
> >  -Patrick
> >
> > On Tue, Mar 19, 2013 at 1:50 PM, Jos Koot <jos.koot at gmail.com> wrote:
> >> One remark down intermixed in your email.
> >> Jos
> >>
> >>> -----Original Message-----
> >>> From: users-bounces at racket-lang.org
> >>> [mailto:users-bounces at racket-lang.org] On Behalf Of Hendrik Boom
> >>> Sent: martes, 19 de marzo de 2013 15:15
> >>> To: users at racket-lang.org
> >>> Subject: Re: [racket] OFFTOPIC - Quote on Programming
> >>>
> >>> I forget where that quotation came from originally, but it
> >>> antedated the
> >>> days where internal documentation was the norm.
> >>>
> >>> On Tue, Mar 19, 2013 at 06:20:57AM +0100, Jos Koot wrote:
> >>>> Well, that may depend on how you define "clever code".
> >>> Surely it is clever
> >>>> to write well documented code that can easily be
> >>> understood, debugged,
> >>>> maintained and reused by yourself and by others.
> >>>
> >>> The "clever" refers to cleverness merely in producing a
> >>> foemalism that
> >>> appears to work.
> >>>
> >>>> Understanding may require
> >>>> knowledge of the discipline the code is written for, of
> >>> course. In my
> >>>> opinion it helps a lot first finishing the documentation
> >>> and the design
> >>>> (both user and 'inside' docs) before starting coding.
> >>>
> >>> You're talking about metacleverness -- the know-yourself kind of
> >>> cleverness that acknowledges your own limitations and take them into
> >>> account.
> >>>
> >>>> With good and well
> >>>> described design it is even possible to leave the coding to
> >>> another person,
> >>>> just like an architect designs a building and constructors build it.
> >>>> My 2c, Jos
> >>>
> >>> I've never found it to be feasible to leave the coding to another
> >>> person, except in cases where the remaining coding is so
> >>> trivial that a
> >>> machine could do it.
> >>
> >> I have experienced some good things leaving the coding to others. I
> think
> >> that in some cases a good and detailed design makes coding almost
> trivial.
> >>
> >>>
> >>> [ In which case it makes sense to use a compiler.  :-) ]
> >>>
> >>> -- hendrik
> >>>>
> >>>> From: users-bounces at racket-lang.org
> >>> [mailto:users-bounces at racket-lang.org]
> >>>> On Behalf Of Harry Spier
> >>>> Sent: martes, 19 de marzo de 2013 2:56
> >>>> To: users
> >>>> Subject: [racket] OFFTOPIC - Quote on Programming
> >>>>
> >>>>
> >>>> I found this quote on a blog and couldn't help sharing it :-)
> >>>>
> >>>>
> >>>> "Debugging is twice as hard as writing the code in the first place.
> >>>> Therefore if you write the code as cleverly as possible, you are by
> >>>> definition not smart enough to debug it." Brian Kernigan
> >>>>
> >>>
> >>>> ____________________
> >>>>  Racket Users list:
> >>>>  http://lists.racket-lang.org/users
> >>>
> >>> ____________________
> >>>  Racket Users list:
> >>>  http://lists.racket-lang.org/users
> >>
> >> ____________________
> >>  Racket Users list:
> >>  http://lists.racket-lang.org/users
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130321/8eefb563/attachment.html>

Posted on the users mailing list.