What your external programmer gave you was a functional prototype, not finished code. To be finished it should follow all your style guidelines and handle all unanticipated exceptions.
You were quite right to reject it, though I'd give the guy a chance to turn it into finished code.
Submitting it as finished code and making the retorts to your criticism reflects inexperience (or outright incompetence) as a contract programmer. When code is to be maintained by any other than the original programmer it is essential that others "snoop through the source". Code doesn't need to just work; it must be understandable, too. Take a look at some of the great examples of open source software. All those contributors know that ANYONE can snoop through their source. They are meticulous with comments, good naming conventions, and follow project standards to that end. To due less is amateurish.
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Birgitta Hauser
Sent: Tuesday, March 05, 2013 12:21 AM
To: 'Midrange Systems Technical Discussion'
Subject: Programing requirements - Guidelines - Code Revision and External Programmers - Am I wrong
Do not want to start a never ending discussions but only get a few opinions.
We got a new external programmer who did the first enhancements.
Before he started he got a couple of programming guidelines (only a few ones around 10), among them:
1. New exported functions and procedures always start with the application label (XX_) 2. All new functions and procedures have to be documented and need a header like it is generated with RDp containing, Procedure Name, Purpose, Parameter Description 3. Prototypes for exported procedures must be copied into a different member (with the same name as the source member but a specific prefix) 4. If parameters must be added to existing functions/procedures they have to be documented within the header and have to be defined as optional parameters with OPTIONS(*NoPass).
5. Return values or output parameters or escape messages that indicate errors have to be handle after the procedure's call.
6. (Reference) Data structures that located in copy members and are used in almost all of our sources should not be enhanced (at least new sub-fields should not be included between the existing sub-fields). If an enhancement is necessary a complete compilation of all modules, programs, service programs have to be performed.
What happened: The programmer finished his work:
1. New exported procedures were generated but without label prefix 2. There is no documentation at all, not even a single row before the starting P-statement 3. The prototype is hardcoded within the source where the procedure is coded.
4. To several existing procedures a new required (not optional) parameter was added and not documented 5. No return value is checked (according to the programmer it is not
necessary)
6. A data structure that is included in almost all our sources (in multiple
applications) was enhanced, but no compilation started
I rejected the enhancements because they do not conform to the guidelines.
The comment of the programmer was: it works and why I should not snooping through his sources. He could not understand why I'm trying to play the boss. If I think I can it better I should do it myself.
Am I really wrong insisting in the programming guidelines are followed?
IMHO "working" is not all, also the source code must be documented and conform the guidelines.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok) "What is worse than training your staff and losing them? Not training them and keeping them!"
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.