How Specific Should Job Requirements Be?


What comes to mind when you are looking for work and a job specification is a little too specific?  Let me give an overly ridiculous example:

Job: Senior Perl Programmer

10+ years of AngularJS with Micky Mouse watch module installed with symbolic links to an NFS mounted drive.

4 years of recent experience managing AWK reports on a Convex C1
system from a Tektronics workstation.

5 years of Coyote Point Load Balancer experience in a paired configuration fronting a rack of seven Compaq web servers running SCO Unix with an Oracle backend on a VAX running VMS with Eunice mounted on brushed aluminum rails.

Field experience maintaining Pyramid and Sequent systems from the same consulting company for clients in or near Auburn, California.
What are your thoughts?  Ridiculous?  Sure it is.  Unethical?  Possibly, but not necessarily.

A person who has had a long career in Human Resources may not have the technical expertise to know what it takes for a technical person to be qualified.  And while they are laboring in search for the person who matches every unnecessary specification perfectly, several the position remains unfilled while several much better candidates get away.

If I needed a javascript developer, I would rather have an excellent Golang or Python programmer or even a COBOL programmer who did a little javascript development than a sloppy, careless javascript programmer who had no problem solving skills, no decomposition skills, no modeling skills, no software or systems architecture skills, no understanding of scalability, no wisdom regarding performance, and no understanding of what it means to produce high-quality maintainable code that does not need documentation but is documented lightly and appropriately anyway with documentation that is actually useful.

Whether I am hiring a software developer or a technical support member or a release manager or a QA specialist or a systems administrator, I would be impressed with someone who had experience in several areas and who knew well if not intimately how well the different teams worked together.

I realize version differences can be significant.  In 2005, I was hired by a consulting firm to work for IBM/Coreo as a PeopleSoft administrator during the summer.  It seems my boss with that firm sold the IBM manager on my skills but failed to mention that my experience was with PeopleSoft 7.54 and earlier.  Most of IBM’s clients were on 8.2 or 8.4.  My boss at IBM was livid and my coworkers were not happy either.  And I was not happy that I had been oversold.  But I made it my mission to do my best work for them regardless.

My old friend from my PeopleSoft days helped like a true angel helping me learn the basic things needed to perform a great deal of the work, and both during downtimes and after-hours, I worked hard to learn the new architecture well to the point where I was able to debug and fix significant problems and perform rather complicated upgrades with their new upgrade assistant utility.

Versions versus Features

I have a theory that may just be an observation common to people who have an eye for the obvious, and that theory is that people who over-specify job requirements might not actually be looking for candidates at all.  Is it possible they aready have someone in mind but want to limit the choices to that single person?  Is it possible that their company or the law may require them to interview at least three candidates to avoid being accused of cronyism or illicit discrimination?

If a manager does not want to hire a black person, for instance, he cannot say so in the job specification or else he will get sued or at least experience the wrath and disapproval of a large population of people from all races.  People don’t approve of  racism.

If a manager wants to avoid hiring an old person, she cannot use words that show this discrimination.  But if she has someone in mind for a job, she can simply make the job specification impossible for anyone else to satisfy.  One might as well add to the job specification, “Must drive maroon 2012 Hyundai Sonata with a 4 inch scratch above the left front fender and beige seats.

But when a manager is sincere and wise, that person may still over-specify their qualifications.  For instance, some might justify a particular version of Oracle by mentioning a particular feature.  Perhaps it can communicate via TCP or Unix sockets.  Perhaps one can feed the database data sets from multiple file systems.  Perhaps it integrates well with the SAN for backups so one can simply freeze the database, take a snap or clone, release the freeze and perform a dirty backup at any time.

But if Oracle has that ability, would it be shocking to find that SqlServer may want to have the same features?  Or Sybase?  Or IBM DB2?  Or any other database company?  Epic uses Chronicles for their database which was based on Judy Faulkner’s PhD project in school years ago, and it is wildly different from common SQL based relational databases.  And yet, even it has many parallels.  Transactions have ACID qualities–Atomicity, Consistency, Isolation, Durability.  Transactions are saved to a transaction log–not for human readability but to give an administrator the ability to recover a database by pulling in the latest back up and rolling forward the transactions from the transaction log files.

Now, if someone has experience recovering an Oracle database, how different would it be to learn how to recover a Sybase database with the help of technical support staff?  How hard would it be for an Oracle DBA to learn to do this independently with a little training?  My guess is that an Oracle or DB2 DBA would already have already overcome 90% of the hurdles that a person must go through to become a DBA of any database.

The same is true for operating systems.  While I was working at Ingres, I supported about 80 Ingres databases on about 40 variants of Unix.  People wondered how I could possibly know all of those variants of Unix.  Simple.

First, they were all built on a common foundation that for simplicity sake we will simply call, “Unix”.  Second, Unix was divided into a few foundational variants–AT&T Unix and Berkeley Unix.  And then there was Mach which was CMU’s micro-kernel patterned after Berkeley’s Unix.  And almost everything else was built on one of those three variants.

Now, there were some strange animals.  For instance, Apollo had a very strange networking scheme.  I have a feeling they were in competition with Sun’s NFS to see which would win the lion’s share of popularity, and NFS won, but their methodology was completely different, and most found Apollo’s methodology to be a pain, so it died.  The company was acquired by HP and we stopped hearing about Apollo.

Pyramid, Sequent, Encore, and Convex had dual universes, so you could use AT&T Unix if you were more comfortable with it, or you could use Berkeley.  Encore seemed to go away.  Pyramid moved to a System VR4 Unix and Sequent did likewise moving from Dynix to PTX.  Pyramid disappeared and Sequent was bought by IBM, and I think Convex disappeared, too.

Sun started with a Berkeley kernel.  They moved from a Motorola 68020 chip with a complex instruction set to a CPU based on a RISC or Reduced Instruction Set Computer called the SPARC.  DEC competed with their Alpha processor which replaced the old VAX architecture with its complex but somewhat beautiful instruction set, and DEC or Digital Equipment Corporation made its own interesting evolution from VAXen running VMS to running Eunice, a Berkeley-like Unix shell running on top of VMS.  And then they came out with Ultrix based on Berkeley Unix before coming out with DEC Unix built on a Mach kernel.

The Big Question

If I can handle 40 variants of Unix, VMS, and various versions of Windows, or if I can learn to program in many variants of Basic, Fortran, Pascal, various assemblers, C, C++, Perl, Java, Javascript, Lisp, Prolog, Python, and various Unix shells and other languages, is it really that hard for a person to adapt to a different version of a piece of software?

Is it necessary, fair, honest, or wise to require exact versions of anything?  Or is the real hope to avoid hiring someone who is, say, over 40 or 50 or 60?

I’m 61 and I’m studying Machine Learning from Stanford, and I am enjoying it.  I’m also taking Cryptocurrency from Princeton via Coursera, and a negotiation class from Yale while taking an “MBA in one class” course through Udemy.

Are 61 year olds *really* that old?  Or is 60 the new 30–old enough to be experienced and young enough to maintain a rapid pace of learning while having a huge foundation on which to build that learning?

Perhaps those who hire people my age are actually very smart!!!  Perhaps that is why they can succeed where others fail.

Best wishes!

Leave a Reply

Your email address will not be published. Required fields are marked *