[Tutor] The philosophy of versions

Michael P. Reilly arcege@speakeasy.net
Sun, 24 Jun 2001 06:13:05 -0400 (EDT)


Jesse W wrote
> Honors to all tutor-ians,
> 
> 	My major difficulty in Python is not precisely a programming 
> problem but a meta-programming problem.  I (incorrectly) think of 
> my programs as inexorably moving toward a final state of perfection, 
> and I therefore have something of a mental block on the idea of 
> releasing versions or writing changelogs and things like that.  I am 
> quite aware that this is not a sane view, and I would like to work 
> through this block, but I have not yet figured out how to do it.  If any 
> of you have any comments, ideas, or responses to this, please post.

Hi, Jesse.

I won't try to convince you of anything, just give a few of my thoughts
as a corporate release manager, having to deal with these issues for
corporate products.  In the industry, there is always the same fight
you are having; Engineering wants more development time and testing,
Sales wants it made they day after they sold it.  When do you release?
Well,  open source software has different reasons for being released
luckily, but the question still remains: when do you release?

Some companies put complicated mechanisms in place to say when the
software is ready, depending on the severity of the defects (I worked for
one company where they released the product as soon as "it compiles").
They put processes in place to make sure things get done correctly and
they have some paper-trail in case the customer complains about a lack
of testing.

Don't worry about process; the best processes are the ones that don't
hinder you, but just make things better (I would suggest using source
code controls tho, e.g. CVS).  There is a common saying with open
source software: release early, release often.  The idea behind this
is: get the product in people's hands, let them help you find the bugs,
let them help you find the new features that they want, but above all,
trust in yourself to direct where _your_ program should go.

Take a page from Guido himself,  he isn't quite the control freak some
might think: he had been pretty much _the_ Python developer up until
fairly recently.  It wasn't because he was afraid that people would
"destroy" his work.  More that he had a clear vision of what he thought
Python should be, listen to people's ideas, rejected the ones which didn't
seem to fit the vision and incorporate the ones that did.  More recently,
he's gotten a development team for Python.

If you think your program(s) are never finished, then I give this advice.
Don't think of a release as a culmination of the product, but as a step
in the evolution.  Enjoy "Software Darwinism." ;)

  -Arcege

PS: Excuse the rambling, if I did..  haven't been feeling well the last
month or so, and the mind gets off-track a little.  Going to nurse the
resulting headache.  Good luck.

-- 
+----------------------------------+-----------------------------------+
| Michael P. Reilly                | arcege@speakeasy.net              |