1. 19
  1. 9

    Perhaps not strictly a “technical requirement”, but one that really stands out was mandatory usage of a specific editor/IDE (phpED); I wasn’t allowed to use Vim, even though I was considerably more productive with it.

    The argument was that it would make it easier to use other people’s computers; to be clear, this was just for the occasional “hey, let me help ya out” (we didn’t do pair programming or anything like that). I kept phpED installed and used Vim anyway 🤷 There was quite some pushback on this.

    For context, this was a small company; maybe 10 employees. Especially the CTO seemed to suffer from the delusion that he was at the helm of a fortune 500 company or something; this is hardly the only wtf from that job. Another one is that I had to remove the evil: true jslint directive from the jQuery source, as it was considered unprofessional to serve it like this on production (when this was first discovered people raced to make an “emergency fix”).

    1. 8

      I once worked at a company with some military contracts, and we were instructed not to mention that we used a source control system named “Subversion”. >_> It’s a shame that didn’t turn into a technical requirement; at the time, I was rather eager to switch us to Git!

      1. 1

        isn’t setting evil to true a bit of a bad practice anyway? What’s wrong with that bit?

        1. 3

          If memory serves it was needed because of jQuery relying on it (for JSON parsing?); not sure if that’s still the case, this was many years ago. Either way, whether or not it’s a bad practice is besides the point since they were concerned about the word “evil” being unprofessional in case a custom would stumble on it (my previous post probably didn’t make that bit clear).

          1. 1

            Ahhh, I see!

            Don’t show them any unit test or they will flip by seeing all those naughty asserts :P

      2. 6

        How do you actually read this thing? I only see a couple of posts, followed by a link saying “You scrolled this far. Check out the rest.” which takes me to a page in the app store which says “Cannot Connect to App Store”.

        EDIT: Ok, I tried opening it on my desktop, where I just see that there are 1,436 notes, but I’m just presented with a bit under 300 lines of “XXX liked this” and three reblogs with content I didn’t see from the phone.

        There must be some way to see all the people who responded, right?

        1. 9

          No, tumblr is weird. You’re not supposed to read the discussion or something.

          I’ve never quite figured out how it works, but its comment system isn’t really meant to be used like you’d expect.

        2. 4

          My former boss (founder of the company, without any technical experience) force me to use static routing because he did not trust routing algorithms. Every network outage was a nightmare, because we have to reconfigure routing rules by hand.

          1. 1

            I thought we worked for the same company until I saw that you said he was the founder of the company. In the early 2000’s we had a similar experience, but it was the head of IT at the time. He didn’t understand dynamic routing so he refused to use it. This was at ~50 locations, all statically routed on your otherwise pretty standard hub/spoke MPLS network. One night one of the admins just replaced it all with BGP and didn’t say a word. IT Director didn’t find out for months.

            1. 2

              This guy was so stupid that he want to keep the mail server in the office (everyone suppose that he reads our mailboxes), connected with an ADSL lines that frequently have problems. Guess what is happened when a disk has problems, when Chris from marketing send 100.000 marketing emails or when a software has problems and send email alerts every minutes (yes, we use email for event notification).

              I can write a book about the stupid stuff that he force us to do.

          2. 4

            Being forced to make an identifier - which should clearly be unique both from a technical and “business” standpoint - non-unique, and having to adjust all the accompanying code and interfaces.

            4 months later a user of the system realized that it was a problem.

            Then being told to change the identifiers back to being unique again.

            1. 4

              We had to rename a service’s internal name because the old name sounded “too unimportant” to the program managers or whatever. It took a couple of developer-weeks of work to do this in a safe, zero-downtime way. I guess it was more important than features or velocity!

              1. 4

                I was contracting at a big Corp. Their environment was nothing unusual at the time - JVM and Oracle on an enterprise Linux, Nothing cloud at all so the hardware was set in stone and they had a very stifling dev/DBA/sysadmin split. I was there just to fill out the numbers on the dev side for a new project, where they were experimenting with a new agile approach to dev (but not DBA or sysadmin).

                The tech lead decided that we simply had to use Ruby MRI and couldn’t live without Resque, which requires Redis. Of course you might be thinking “how would this work in the production environment?” and the answer was “we’ll cross that bridge when we come to it.”

                Well, that lead bailed out before we reached that bridge. Now there’s a JRuby implementation of Redis backed by an Oracle table. Considering how asinine the business requirements of that project were it was actually one of the more interesting technical pieces of that project.

                1. 4

                  Possibly my favourite was the mandated use of the MEAN stack for a product that literally had “relationship” in its title, in a completely .NET-oriented organisation. Needless to say, trying to model highly relational data in Mongo was no picnic, and deploying code anywhere was always an uphill battle. I believe it’s in process of being re-written in C# and SQLServer.

                  1. 3

                    We were delivering data in an exchange format to our customers and we finally switched from the ISO-8859 encodings to UTF-8. The standard we used had a fixed record length per line (80) and this came with a bit of a surprise of one of our customers, who insisted that 80 means 80 bytes, not characters. The standard was written when byte == char, so it was unclear what was right or wrong. It resulted in us writing our own weird way of splitting multi byte characters over multiple lines.

                    1. 2

                      Being told to migrate all data from an Oracle DB to Cassandra. Also, me being super green and even then wondering what the heck?

                      1. 4

                        I know those feels. We had to switch from PG to fucking Informix once in a previous life, due to some bullshit that presumably happened on a golf course somewhere. I can tell you that wasn’t fun. Informix is a steaming pile that’s hard enough to even get installed, let alone run or port to from a modern database.

                      2. 1

                        In 2002 a project manager wanted to implement read receipts in our asset management system so they could track when emails sent were opened. I explained how it was unethical in embed tracker images against user consent (we sold big software to big companies who ran it white label), and that it also wouldn’t work consistently because various email clients don’t load images. She went away.

                        About 18 months later a major client was freaking out because the system wasn’t showing task email workflow properly and they didn’t understand how tasks were getting worked with ever being read. The bug got escalated to me and it was difficult to explain that the behavior they wanted didn’t work that way.

                        The same PM was also trying to do the self destructing emails that prevented saving and whatnot.