|
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.
--
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.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.