How to actually write a program?

Alex Martelli aleaxit at yahoo.com
Tue Sep 7 03:24:06 EDT 2004


Peter Hansen <peter at engcorp.com> wrote:
   ...
> > there is a system that you can use to help you model out your program
> > (taught to most computer science students).  This system is called UML
> > (Unified Modeling Language) - I would advise getting a good book about
> > UML and reading through that.  
> 
> Ahhh!!  Run!  Run, Neil, run!  UML!
> 
> > It's is complementary to the XP (Extreme 
> > Programming) stuff that people are talking about.
> 
> Ahhh!!! Run away some more!  UML and XP are nearly anti-thetical.

Scott Ambler's "Agile Modeling" is the one attempt to bridge this gap
that I know of -- it's truly an excellent book, and very readable, but I
suspect it will go right over the head of readers who don't have solid
knowledge AND some experience in the field, too.

XP (and to some extent Agile development of all kinds) do prefer to
deliver code (tests, mostly) rather than other kind of development
artifacts, includng most modeling artifacts; Scott (quite an expert at
UML and other modeling techniques, of course) makes an excellent case
for "as little modeling artifacts as you can get away with" but ALSO
that sometime that "little" _DOES_ go all the way to UML.  But unless
you've tried different approaches 'in anger', you're unlikely to get
from that excellent book as much as you could if you had.

UML and Agile/XP are typically used in organizations with very different
philosophies and mindsets.  They're anything but antithetical
_technically_, but, _culturally_, you're probably right...

> Don't even consider going there.  (Well, consider it, but please
> don't waste any money buying a UML book as you do.  Find a few
> web sites, then ... run away!  It's cheaper that way.)
> 
> In my opinion, if you try to get a beginning programmer to work using
> UML when he isn't even sure how to start writing code in an empty
> file, you will not have a beginning programmer for long.  And I
> don't mean because you've just got him over that initial hump...

On this one, even though I do like modeling, I agree with you 100%.  The
right time to learn modeling approaches and technologies is AFTER you
have some experience in simpler kinds of programming, like TDD and other
Agile approaches.

 
> In another opinion of mine, if you try to get a more advanced
> programmer to work using UML, you also deserve whatever you get...
> 
> -rabidly-anti-UML-ically y'rs,
>   Peter

I suspect your "anti-ness" comes from cultural and not technical factor.
Basically, injecting some modeling into an Agile culture, just like the
reverse, takes diplomatic talents which very few people possess...


Alex



More information about the Python-list mailing list