Meaningful comments should be added to programs where appropriate.

Structured programming methods should be used at all times. The emphasis should be, where possible, on writing re-usable code.

When passing parameters to a program the same parameters should never be used for two different purposes. Input parameters should never be changed inside the program, output parameters should be defined even if program finished with an error.

Avoid using COMMON to pass parameters between programs.  If you need to use the COMMON area, then discuss with one of the following people: Scott Levy, Ilyas Rehman, Barry Easton or David Harrison.  A new COMMON parameter cannot be added and an existing common area cannot be removed until it has been approved by the named persons.  If permission is given to add or remove a COMMON parameter, then add the name of the person who has approved this into the program change description.

Please make your program a “black box” with clearly defined input and output parameters.  This avoids the need for people using the program to know the internal workings of the program.

When creating a program that should process several records (e.g. a program that issues all certificates belonging to a group) create a program that process ONE record and then call the program for each of the record.

Existing program that processes a selection of records needs to be used for one record, divide the program into two: one that process one record only and another that calls it as many times as necessary.

Each module should have only one entry point and only one exit point.

Never use GOTO and STOP commands in your programs, use GOSUB and RETURN instead.