TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Craig Swanson
from: Brian Converse
date: 1994-10-14 05:08:24
subject: Code quality

CS> Deadlines are obviously problems at times and require that tradeoffs
CS> between doing it right and doing it sloppily to get it done quickly
CS> be made.  Even when deadlines haven't been an apparent 
CS> problem, however,I've seen a lot of code written by people 
CS> who have years of "experience" (whatever that means) that 
CS> makes me wonder how on earth I am ever going to figure out 
CS> who to hire as additional programmers if the time comes to 
CS> do so.  Do you have any experience hiring programmers?  If 
CS> so, I'd appreciate any advice you may have.

1. Hire people you've worked with before. Even if they have warts,
you  know EXACTLY what to expect. My experience with RECOMMENDING to
hire/not hire people: they turn out to be amazingly different than you
thought  during the interviews. In crisis times, it's almost better to
dispense  with any surprises & hire known quantities, although I've
seen  management hire people I thought were dogs only to find out they
were better programmers (and people) than me.

2. Glowing recommendations don't mean diddly. The former employer may
 want to avoid a lawsuit, or the person may react strongly to their new
 environment and not perform as well as they did...this happens with
most of us when thrown into a sweatshop environment.

3. Older "experienced" programmers are hard to change, have distinct 
ideas about "how it should be done" and can be insufferable about it 
rather than sticking to the old adage: "Never try and teach a pig to 
sing- it wastes your time, and it annoys the pig" (which applies to
THEM as WELL as management). They also produce more good code/hr while 
appearing to be extremely slothful compared to new programmers who
churn out stuff that needs to be redone 6 times.

4. New "young" programmers take direction better, code like a bat,
and  are quicker to pick up new constructs- helpful if the project
involves  all sorts of non-traditional stuff. OTOH, they have a low
experience  level, so you have to spell everything out. They won't
admit sometimes  that they don't know about some concept you or an
experienced coder  would take for granted. I 'bout fell off my chair
when my supervisor  laboriously explained integer fractional binary
arithmetic- NOTHING in  the CS texts I'd used (and I'm engineer, not
pgmr- predate "CS") EVER mentioned this, but out in embedded control in
the late '70s, it was a standard tool. I felt like an idiot- but glad I
asked!!

5. Good luck. For help, call (401).... Hope you don't have to make
 the cut on who to hire. Things in CT-RI axis are quite bleak, and I'm 
too soft and sympathetic to make hard decisions about people. I'd want
 to hire them ALL!

6. For one customer, I took over for a programmer who'd left 4500
lines  of uncommented C source behind. He used to sneer at how slow and
pokey  my coding was; took me 8 months, part time, to clean up that
code while  doing all the other stuff required, and the experience led
me to  consider using commercial off-the-shelf POPULAR libraries in
lieu of  even my beautiful, heavily commented code (the other
programmer now  uses lots more comments, I've noticed). Especially
those w/o royalties.  I've been reading some of the Ghostscript source
code (BJ-10 driver,  Epson driver), and it is not what I'd call
quality- the docs. and  comments have the spare, terse unix-y form and
only explain the REALLY hard stuff- the rest is "left as an exercise to
the student". The code  is quite good, I think, and has a consistent
style despite the different authors...but it's NOT the style used by
the programmer described above. 5 years ago, I'd have condemmed BOTH
styles! Now...

CS> Ugh, FORTRAN is one of my least favorite languages, right up there with 
CS> assembler code.  Actually I might prefer assembler, 
CS> depending on the machine architecture.

It gets worse. It was a competitive bid with several heats. Software
had to be in a DOD-approved HLL. In 1982, those were FORTRAN IV, COBOL,
some AN/UYK-xx lingo, and Ada. Ironman or whatever had just finished,
and we  said: "They claim a 1st cut Ada compiler for our mini will be
ready by  the time 1st h/w is due- do you want us to code for that w/o
testing, or use FORTRAN?". They chose FORTRAN. We had a "FORTRAN V"
with block DO,  DO WHILE, DO UNTIL, block IF/ENDIF, etc, but were
FORCED to use FORTRAN  IV- a compiler switch forced a syntax check.
THEN they tried to make  us use RATFOR, which wants 1-2 char tags on
labels...but FORTRAN only  has 6-char labels, so our modules ran out of
unique labels; RATFOR and  a code verifier they wanted to use burned up
about 11 man-months for  naught. This was forgotten until GUIDELINES
chastized me the other  day about some long module label I'd used. Gad,
how far we've come in 12 years (and most of the *&^% radars are STILL
not installed)!  Comments about ICLUI .EXE size have me worried, but
GUIDELINES' imperfect .GUI translation on one module had me digging in
the .RC file (MIS_BREAK_SPARATOR??!) and I realized, "I don't like
this- it has no  intellectual satisfaction whatsoever".  Even if the
.EXE is 100K min.,  I'll take ICLUI or Guidelines over handwritten
APIs.

CS> The project I've been working on for the last couple of 
CS> years has been unfortunate enough to have had severe 
CS> personnel turnover problems,understaffing, and lots of 
CS> requirements changes (some of them major).

Yikes! I hate it when that happens! Have you considered working for a
 quiet, relaxed, laid-back place -like NEXGEN ??

CS> However, in some
CS> ways this has been good for me personally as I'm the only 
CS> one who has been around for nearly the entire project and 
CS> at this point the investors and management seem to think 
CS> I'm worth trusting because I haven't ripped them off and 
CS> haven't quit on them like the other consultants have.

I sincerely hope you are getting $$$ for this! An OS/2-based project
(or even Windows these days) is in serious manpower trouble to begin
with;  tell management I said they need $$$$$ life insurance on you! If
it's  anything near as complex as it appears to be from ur various
messages on comm. programming, the time to come up to speed for new
folk should be  enourmous- an investment NOT to be lost by P-Oing the
help!!!

___
 X KWQ/2 1.2e X ND 27! We're not in Kansas anymore, Toto!

--- Maximus/2 2.01wb

* Origin: Fernwood - your source for OS/2 files! (1:141/209)
SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413
SEEN-BY: 711/430 807 808 809 934 942 949 712/353 623 713/888 800/1
@PATH: 141/209 270/101 396/1 3615/50 229/2 12/2442 711/409 54/54 711/808 809
@PATH: 711/934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.