Ten Essential Development Practices

Robert Kern rkern at ucsd.edu
Fri Jul 29 07:40:25 CEST 2005

Dan Sommers wrote:
> On Thu, 28 Jul 2005 15:35:54 -0700,
> Robert Kern <rkern at ucsd.edu> wrote:
>>That said, I made a boo-boo. The Zen of Python is really a set of
>>design principles (and some of them, like this one, are more
>>specifically *language* design principles), not Essential Development
>>Practices. That'll teach me to not RTFA.
> May I respectfully disagree? 

No, I'm afraid that you may only disrespectfully disagree with me. I 
will not tolerate politeness. Why? Uh, my .sig quote justifies rudeness! 
Yes, that's it![1]

> The Zen applies to all aspects of software
> (and other things, too, but they're off topic here), from human readable
> reports and requirements and documentation, to GUI's, to test cases, to
> code, to database schemta, as well as the development methodology and
> practices themselves.

Sure, and I can find programming advice in the Old Testament, too, if I 
try hard enough[2]. But that doesn't change the fact that the "Essential 
Development Practices" (e.g. "Use a source control system") are in a 
different category than the Zen of Python (e.g. "Namespaces are one 
honking great idea -- let's do more of those!"). Hence Michael Hoffman's 
very good question about how he might embody that particular bit of Zen: 
it's just not applicable to the things he's doing because it's a design 
principle for Python the language, not about development (or even 
design!) in general.

Of course other pieces of the Zen are more generally applicable 
("Readability counts.") as a "development practice," but that's 
something of an accident. Usually, they're about design, sometimes 
specifically about the design of Python the language.

> Sometimes you have to look at the Zen sideways, so that "implementation"
> appears to be replaced by the particular aspect or aspects (or the
> software, or just software, as a whole, for the true Masters out there)
> you happen to be working on at the time, but such is the nature of Zen.

That's a bit too much navel-gazing for me. With enough effort, you make 
anything a symbol of anything else. But that doesn't get any code written.


[2] Proverbs 28:14 JPS "Happy is the man that feareth alway; but he that 
hardeneth his heart shall fall into evil." Obviously an exhortation to 
not ignore raised exceptions with "except: pass".

Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter

More information about the Python-list mailing list