in reply to What is "Production Code" ?

I would like to offer an unusual response to this post, if I might. I'm not a PERL programmer, but I have programmed in PERL, lately I've been dotNET programming, but before that I was doing Flash like a madman. Woe is me. What I do I still refer to in antiquated terms: interactive multimedia. Perhaps this shows my age. I've been in this biz since, well, I don't want to say how long. Let's just say I have gray hair. So, to answer your questions.

Question #1: What characteristics does production quality code possess? Unfortunately, that is not quantifiable, any more than the question “What qualities does a bestseller book possess?” Good code must be in the right place at the right time. It need not be elegant, it need not be absolutely right, it just needs to be right at the right time. That's a crap shoot.

Some code, like the code for windows, was accomplished by many great minds funded by a great deal of money. Committees can accomplish something, given enough time and money. If an analogy were to be given, it is this: great newspapers have great reporters working in concert with great editors. But, newspapers are not considered “bestsellers.” They might be “production quality,” but they are not riveting bestsellers.

Then there is is work of the individual. The “bestseller” that captures the imagination, stuns the public, grabs the wallet of everyone involved. That usually comes from a solution to an overarching problem. In the case of coding, it isn't the coding itself. It is as if the person doing to the code understood a basic problem, worked out a coding solution, and bridged the gap between the problem and its solution in a user-friendly manner.

Once the problem is solved, it must get out into the wide world. Then, if it is good, if it is right, if it is the right moment, lightning will strike.

Question #2: If there were a checklist.... Well, if there were a checklist for baking bread, it would be grocery-store bread. A good baker takes the bread out of the oven when it is right, there is no real checklist involved. Checklists are for assembly lines.

Question #3: What are the characteristics of a good deployment? Take a lesson from AVID, which wrote the video editing software. They couldn't control the quality of the software on the end-user's equipment, so they only sold their software at first on machines that you purchased from them. That way they could guarantee it would work. The model worked for them, it has worked (in some respects) for Apple. This is a good lesson. Don't deploy good software on bad machines or machines cluttered with software you can't control.

If your software solves real-world problems that cost real-world money big time and must be deployed in real-world environments that are restricted by real-world paranoid IT people who have firewalls under their control that will restrict everything and anything that goes on in the computing environment, then your software must, must delineate the firewall requirements and filtering requirements. If you must filter, they must understand you are filtering. You must be in your own environment with easy access to the machines in which you exercise control in order for your software to work. The minute you must bridge a firewall or security issue, you are in trouble.

If this happens, oh, my. Make sure you had a contract and that they paid you in advance for the work. You cannot, repeat, cannot control their IT departments. Even the president of their company cannot control them, as they are creatures unto themselves, usually composed of third-tier programmers who don't know the difference between an integer and a function.

Well, just my comments....

Those are my thoughts. Hope they help. RobW