Your dev horror stories

Hi there, you may already know me as the artist who paints fluffy animals but I’m also a developer for many years, at least I used to.

I was reminded of a time in my early career when I had a similar experience to the one described in this post:

I noticed there are a few other developers on thins forum too (aside from the obvious krita devs), and I’m sure each of you have some interesting/funny/horror stories too, maybe you want to share? Since this is the Krita forum, of course I really would like to hear some stories from the Krita Team too. I bet they got more than one headache from one or the other API or wiered file format.

Of course I start with one of my own experiences (I have a lot) but this one is what the linked post reminded me of.

How I started to hate generating PDFs

I think it was about 10 ears ago, maybe 8. I worked for a advertisement company. Yes, one of those who track you online and try to sell you even more stuff based on your data. But my struggle with moral and ethics is another story. At that time I worked mostly with PHP on the back-end of our web-services. Tracking, yes, but also simple things like billing and stuff, later mostly APIs to third parties. One day we had to change our recipes, invoices and all those things because of legal changes. Nobody wanted to do the task so I took it assuming it was easy. Just changing a few PDFs couldn’t be that hard, right?

Well it could have been easy but we used a strange proprietary PDF library that was not only poorly documented but also weirdly inconsistent. I remember that it for example took sometimes pixels and sometimes points as sizes for doing seemingly the same things (and sometimes not) it was a mess. I found comments from colleagues to not touch some lines that seem to have no purpose otherwise it would break the PDF (which it did) and then I knew why nobody took the task. Every of my colleagues already battled and suffered with this, obviously.

It took me literal days to get the assignment done. Meanwihle I asked colleagues for advice because I was only working for a few years with PHP (worked only with C++ and a bit Java before), maybe it was just me? No it wasn’t. Eventually I got the assignment done but not without thinking about throwing everything away every five minutes.

After I finished the task, I spend another few days to write a whole wrapper around the library (which turned out already was a wrapper) to make things consistent and easy. I had to ditch a few features but it was worth it for every one editing it after me, the dev after me shouldn’t have to suffer. Editing a few lines of PDF generation shouldn’t take a whole day. While doing this I even found attempts from a colleague to do just the same but he obviously didn’t finish due to time constraints or simply giving up.

At the end I added a long comment explaining my struggle with the library for following generations and committed it with the code. As far as I know it was still there, when I left the company.

What made this especially frustrating was that there was an open source alternative that was much better and easier to use even though I would have to rewrite the whole generation code but we couldn’t use it because the license was incompatible with ours.

Well, this is one of many things I could share. Would love to read some of your experiences.

A sorrow shared is a sorrow halved. Tell me about yours.

6 Likes

This is just one of many technical sorrows I’ve experienced.

Where are the ****** comments?!

In the late '80s, I was given the task of update and further development of a range of long established naval display instruments. These were wind speed and direction indicators with a 6802 8-bit microprocessor to read the inputs, do filtering and calculations and drive the display elements, one of which was a custom circular display of many LED segments for wind direction.
The original developer had left two years previously but the source code for the macro assembler development system was of course available, on an 8" floppy, with no backup copy.

About 2KB of 6802 assembler with a very, very small number of headline comments. Such as “Do this task”, “Do that task”, “Drive the displays”.

There was a list of ‘variable declarations’ with their name and RAM storage location but no comment as to what they actually were used for, apart from guessing based on their names.

Have you ever tried to understand someone else’s code when it has no comments?
Have you ever tried to understand your own code when it has no comments, a couple of weeks after you’ve written it?

After I finally figured out what it did and how it did it, I rewrote it in a more structured and organised manner and made sure it had lots of comments.

After my work was reviewed by a senior engineer, I was told that my comments were “too flowery and it’s like trying to read a novel”.
Knowing him as I did, I suspect that he’d once tried to read a novel and had difficulties.

6 Likes

This made me giggle a lot.

When I was still an apprentice as technical assistant for IT before I switched course to full software developer, I had to work with assembler for a few months as part of an internship. “You might as well throw it away and start new”, was the experience I made with undocumented and uncommented Assambler code too. It was this day I decided lower level languages are just not for me.

An this reminds me of

How I learned that mumps can be a disease and a language at the same time

A few years ago I worked for a company doing medical ERP software in MUMPS language. Large part of the code was still from the 70s and clearly written by someone with no Idea about software development (okay hard to blame since software development wasn’t around for long that time, I guess). In addition the language has some weird quirks like a maximum length of lines and length of file resulting in many functions and keywords being just one letter in length, and variables too, most code was just an unreadable mess of letters, even when knowing what a program does, it was hard to parse. It was just like reading Assembler. In addition similar code was copy-pasted all over the place, in different files too. Changing a function was a scavenger hunt and then hoping you found everything.

I was hired to extend this to make it live a bit longer and then port this into a modern language, my predecessor already started it by already putting a modern GUI written in C# over it, but it turned out the company didn’t actually want to make any effort in modernizing, also hours of unpaid overtime on short notice, every client had own version just compiled for them, sometimes with features only for them (sometimes not). You couldn’t just release a patch because of that, if something went wrong.

I quit after two months because it didn’t look like the job would be what was advertised and too stressful, could have been a cool project otherwise.

1 Like

:thinking:

I think I saw so many things in last 20years :sweat_smile:

Let's go for one story.

Few years ago, we were looking for another developer in team.
After seeing multiple candidates, my manager decide to take one, for which I have initially said “no go”.
But my manager was confident in his decision because he considers that I am too demanding, and as the guys was a senior engineer from a high school, then it should be Ok.

So, the guys arrive in team, and I start to explain things, doing training, and give him stuff to do.
But after many weeks in team, the guys was still unable to be autonomous.

So my manager asked me to give him an easy subject.
So, let’s go for one very easy thing.

On my side, it was estimated to 0.5man days of workload (so, in IT department, 0.5md is nothing)
I think it was at least 30-40 lines of code to do, shared in 2 libraries and one script.

The reality: after 13 peer review of code in 3 weeks, the development was still not made properly.
And my limit has been reached, and I’ve finally exploded :exploding_head:

I told to my manager something like: “you decided to have this guy in team, so now it’s your problem, I stop to loose my time with him”

After that my manager tried to find easier things to do, like ok, just write some basic documentation.
But even that was not properly made.

After that, my manager stopped the consultant’s mission.

And since we didn’t try to find anymore developer (because, uh, it was the fourth guy in 18months that wasn’t able to code properly :dizzy_face:)
So difficult to find good developers for a reasonable invoicing in Paris :weary:

Grum999

2 Likes

Ahah :sweat_smile:

I so often see this kind of :face_with_symbols_over_mouth: comment:

// Increment value by one
i++

:weary:

Grum999

1 Like

My talk for Libre Graphics Meeting 2021 has as title “Mistakes were made”, and I’ll be chatting about the various things that we did since kimageshop was created that, ah, well, could have gone better.

2 Likes

I saw this a lot when I was tutoring first year students at a vocational school, but they were just starting out, so I let it slip.

Been there, done that, had to pick up the pieces six months later.

This is a story from a few years ago that I often like to share when I start a new job. I haven’t met someone with a similar experience (outside of mainframes), especially not someone who discovers a running machine older than them.

sshing into a machine older than me

I was a systems administrator and would often work with the security team. If they found an active IP that wasn’t documented anywhere they would often assign me to look into it. So I would ssh into these machines and see that they were past end of life pretty often. I would hardly even bat an eye when I would see publicly accessible centos 3/4 systems when centos 8 was already out :face_with_thermometer:.

One day I happen upon a strange system. I try dnf/yum/apt to list installed packages to see what’s installed. I get a command not found, but I’ve seen that often so I’ll just try up2date/dpkg. Also get command not found.

At first I think its maybe a busybox like system or something. But there is a /etc/redhat-release that shows redhat linux 2 and it still has rpm packages. Most of the things I use to troubleshoot average old systems don’t exist.

Then I see it, redhat linux. Not enterprise. I check uptime and its like 19 years

I can’t believe it. I go find a coworker who I know has been around the longest and ask him about it. He remembers moving that system to the current office like 19 year ago but says it was a few years old at that point.

So I ask him more directly “so around since like '95 right?” and he confirms. I now hold the honor of sshing into a system older than me :slight_smile:

Also we had an intern at the time and I’m pretty sure he was younger than that machines uptime.

1 Like

Ahah, when someone is learning that’s fine. But sometimes I saw this type of comments about trivial things AND the other type mentioned by AhabGreybeard (just writing “do this” “do that” without any other explanation) together. :woman_facepalming:

Did this happen in Germany at a Deutsche Bahn train station? One of my colleagues shared a similar story with me, back at my first dev job. His friend had a case like yours. I’m not sure I still remember it right but I thing it was a old train station in Germany, some day all the displays stopped working, clocks everything too (or maybe they were just renovating) and nobody knew where the machine was that operated all the displays. They finally found it in the basement hidden in a room behind a cabinet. It was apparently some old obscure version of BSD running there and everyone forgot about it because it just worked for many years without issues. They had to bring back someone from retirement to fix it until it could be replaced.

Stories about forgotten machines that just work and do their jobs for years are my favorites. Also says a lot that it’s usually a Linux or Unix like.

When the singularity happens, than probably on one of those hidden machines :laughing:

1 Like

This was at some private company in the US. Thankfully we found out about it before it went down so we were fine that time. Atlhough, I can remember several other time’s a critical system went down that we didn’t know existed :upside_down_face:.

The singularity is definiately happening on one of these machines. I feel like I’ve seen it happen but they wiped my memory to hide themselves :rofl: