4

I just thought that there would be a bunch of errors logged in my system, because it seemed as if two files with the same path and filename were being saved at the same time, conflicting with each other.

Then I noticed that one of the files got saved as name_1.png instead of name.png. From my foggy memory, I vaguely recall having encountered this problem in the past, and apparently, I coded in this feature to handle the situation. I had entirely forgotten about it and can't even immediately find where in the massive codebase this actually occurs.

This is not the first time that this happens to me in this vast system I'm programming, which has been ever growing for years in complexity.

Basically, it's now a nightmare to attempt to go through all of it, so I always have like a "fog" around large parts except those I've recently been interacting with directly. There's a lot of "mystery functions" which interact with each other in ways I've long forgotten how I originally intended them to work, and they have slowly evolved to be quite robust and "well-oiled", so to speak.

Could this be called something more accurate than the overused "ironic"? I feel as if there's probably an English word which describes such a complex system which surprises the author due to having forgotten that they made a specific feature, long after it's been implemented and tested and then forgotten about like an old legend or myth.

7
  • 1
    I too have experienced this feeling, but I am unsure if there is a term for this. I would suggest tagging your post with "single-word-request". And perhaps a phrase could be a creator's pleasant surprise?
    – Tyler N
    Jul 13, 2020 at 20:27
  • I was a lot smarter than I thought I was. Jul 13, 2020 at 20:48
  • 3
    Serendipitously, I was looking at the word 'serendipity' shortly before I read the question.
    – Greybeard
    Jul 13, 2020 at 22:29
  • Maybe it's a result of limited working memory (ours)? Or, I like to say "I'm too organized" after I search for something, only to find it was in its right place all along. Jul 13, 2020 at 22:40
  • What happens to me is I’ll be using software I wrote and I’ll get an idea for something it should do, so I decide to add it and go to the place in the code where that should be done and find that I already did that a couple years ago and even better I did it just the way I had been thinking about doing it just now.
    – Jim
    Jan 19, 2021 at 22:10

3 Answers 3

1

One phrase that describes complex behavior which is observed among individually simple elements is emergent behavior. An example of this is an ant colony, where each individual ant has very limited physical or intellectual capability, with very simple rules that govern its behavior. But when you put a million of these simple agents together, you get something far more complex and interesting than any individual.

Emergent behavior can sometimes be a goal of algorithm design, since it generates complex behavior from simple elements. The behavior of the system as a whole isn't hard-coded, but "emerges" naturally as a consequence of the interaction of individuals.

It sounds like the situation describe could be likened to a negative instance of emergent behavior, where code elements are interacting in unforeseen ways to produce undesired behavior.

0

Synergy

Welcome! Good question and well stated, believe it or not. The classic professional programmer term for this is in two words. The first describes a group or cluster of items. The second word describes one sort of penetration or another, it can vary considerably but is always biological.

What you are searching for is a word describing the unexpected result of your efforts. The word is Synergy. This means that the initial conditions or expectations have gone into business for themselves, beyond your expectations. Normally this describes a positive outcome. For your efforts there is a ways to go yet.

The problem with your previous efforts is easily explained which means difficult to execute. This is why so few manage it. As much as I see Object Oriented Programming over used down to the trivial case it is still the method of choice. That and careful documentation. A simple note right there to Future You or your compatriot would give you just the hint you understood back then so well but cannot fathom now.

From where you are Now!: Work to break up a copy of your one large module into smaller components, each with fewer functions than before. Eventually each part will serve one and only one task. This will take time but doing this will help you isolate the odd behaviors and replace them with better code.

Otherwise each time you understand what the code it actually doing Make A Comment Right There. You will no doubt return to this place wondering how and why. The connections need mapping.

Good luck and let us know what progress you make.

0

The circumstances you describe are to some extent:

Frankensteinian = anything that becomes dangerous to its creator

Collins Dictionary

Other definitions go beyond the inconvenience you describe to more perilous things:

Frankensteinian = a person who creates a monster or a destructive agency that cannot be controlled or that brings about the creator's ruin

Dictionary.com

Nevertheless, the word has the necessary feeling of something created that then gets out of control for its creator.

As is widely known, the word derives from Mary Shelley's novel Frankenstein

[Gutenberg]{https://www.gutenberg.org/files/84/84-h/84-h.htm)

1
  • We could call these things “Frankenfeatures” or “Frankenfunctions”. Everyone would get this.
    – user205876
    May 12, 2021 at 5:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.