The shoemaker’s son always goes barefoot

 

Would I lie to you? Of course I am the best!
Reading loads of employment ads in Israel’s computer branch, I am getting one deja vu after the other. »Puff is part of the trade«, but we should we aware of the threshold to ridiculousness.

It is very clear and I admit that, your company is the finest and best in class, so I better hire at IBM? And of course, as at July 2015, I have at least 12 years of experience in programming with the Rust-programming language.
On the other hand I can remember my former employers quite good, how scared they were, when I wanted to use pthreads, shared memory and not exactly the UNIX-IPC but rather POSIX memory mapped files.

I remember applying for a job at ESO. I saw myself honored when they invited me to  a colloquium and there a the colleagues from the computer science dept. gave me the third degree. It was tough, but then I had a little question and I wasn’t so much aware of the importance of both, the question and the answer.

I asked: »What about the documentation?«

And the head of the dept. answered: »Yes, of course we have documentation, but we don’t exaggerate it.«

I finally got the call to join this internationally reputed astronomical organization and then I woke up in the real world:

  • From that point of time on I was responsible to improve the P2PP-tool (Phase 2 Proposal Preparation). A software product to configure the VLT and the attached instruments at Cerro Paranal (Chile).
  • The team of software developers who developed this software – some 130.000 lines of Java-code Version 1.1.8 – was gone.
  • There was not a single page of documentation.
  • There were comments in the code, but only where the code was obvious. The more complicated and staggered the code became, the fewer comments I found and the less sufficient these comments were.
    I literally saw my former colleagues how they wiped the sweat from their foreheads, once their code finally worked so far. Then they went home and never touched it again.
  • There was a bug-list with several hundred items.
  • When I asked for the documentation, the answer was that I should take the book about Design Patterns. This was the documentation.
    Oh, sorry for the stupid question!
  • I was complaining about this situation and after a few weeks the former lead-developer of P2PP delivered some documentation.
    It was exactly five pages, most of them had only a few lines and they said:

    • This one is a manager pattern
    • This one is a factory and a singleton
    • That one is a manager and a singleton….
    • blah blah blah
  • Every bug-fix started with a research project. I had to investigate the inner working of the bug, find its root cause and apply a fix that didn’t damage a software, I actually didn’t know.
  • Then I established a few templates in TEX and wrote my documentation for the bug-fix in vi.
    Along with the release of every bug-fix I published such a document to close the case.
    This made me a hated person!
  • Even though I had a three-year assignment, after about half a year I decided to leave the organization.
    and
  • At the same time the colleague responsible for the Phase 1 tool resigned from his post and the project manager obviously became aware, that I was pretty unhappy and I wasn’t as fast as he wished. So he planned two things:

1. He planned to re-hire the external consultants who initially developed P2PP
2. He wanted to shift me to the maintenance of esoform package – the Phase 1 tool

  • Carlo, the colleague in charge of the esoform package just said: »Don’t take this assignment. It’s the same mess as with P2PP only in C++«

So I finally resigned from my post with a six week notice period and we both left ESO at the same time.

This story may appear a little extreme, but over the years I developed a sober view on companies’ self-assessments. In the real world, managers want the result and they are only too willing to trade quality assets, like the software-process or documentation, for the delivery date.

This may work once, twice….. but after a short period it will land on your feet because the software quality will suffer sustained deterioration. From that point on you will carry a big backpack of issues.

Live with it and never say the truth about it.