by panqueca on 4/5/24, 1:53 PM with 767 comments
Let me give you some context. I work in the pipeline automation department of a company. Last month, our team decided to deprecate an internal tool due to several maintenance issues. So we created a pipeline that automates the implementation of this legacy tool, in case other teams needed to use it. (WHAT???)
This month, a guy in my team found some improvement scenarios in the automation. So I was chosen to implement this changes in this legacy internal tool.
The thing is, after I finished the adjustments, my pull requests are not getting approved due to adjustments meticulously requested by this guy in my team. Adjustments to make the pipeline automation even more resilient in complete unlikely scenarios.
But this same week, my TL sent notices to all the other teams informing them that this internal tool has been deprecated and they should no longer use it. So what sense does it make to have a pipeline automation that implements the use of the deprecated tool? And if it has been deprecated, why would I need to make an adjustment for the automation to be even resilient if no one should be able to use it anymore? So why am I being allocated to work on in such waste of time like it? (WTF???)
This makes me wonder, how many people have to work on something that they see no sense in doing at all.
So once again, if you're feeling useless, remember that I exist.
by dang on 4/6/24, 8:40 PM
by LaserDiscMan on 4/5/24, 8:27 PM
Having no understanding as to the technicalities involved, the project was given the go ahead by the directors after several meetings with a vendor. After the CTO and I expressed our concerns about the scale of the project and the sheer amount of functionality involved, the vendor gleefully assured us that they were experienced with "migrations of this scale" and were more than prepared, which was music to the ears of the CFO.
Daily 2-3 hour meetings followed (for many months) to define the scope of the project. Within each meeting I sort of zoned out because it became very obvious that no only did the vendor not understand the scale of the work involved, but had started cutting corners everywhere/leaving out crucial functionality, and this was just the scoping stage, no development had even started yet.
I eventually departed the company but kept in contact with the CTO and learned that after 5 years (project was scoped for 2), the migration was abandoned costing multiple millions of dollars with nothing to show for it.
by CommieBobDole on 4/5/24, 9:18 PM
Anyway, the only task they ever gave me was to build Cisco router ACLs to match existing traffic in the stores; they needed to implement access control but wanted to make sure they weren't blocking anything important. Because many of the stores had been opened years before, there wasn't necessarily a consistent IT stack in the store; there were a lot of one-off solutions so they wanted a universal set of rules with per-store exception lists.
So, every week, someone would drop a few terabytes of network logs in an FTP server, separated by store, and I would distill them down to a set of rules; if something was being used in more than X number of stores, it went in the universal rule list, if it wasn't it went in a store exception list. At first I was doing it semi-manually, but eventually I built a database and wrote some SQL to mostly automate it - got it down to about two hours a week, most of it waiting for the DB, by the end. Once it was done, I would send all of my updates to a network engineer who was the designated point of contact for the access control project.
They had a lot of stores, and for some reason could only supply a certain amount of logs weekly, so when my contract was up there were still a number remaining. I tried to set up a meeting with the network engineer to go over the work to be done and the automation I'd built, but he never responded. Eventually I tracked down his desk in the vast corporate complex and paid him a visit. He was pleasant but told me that he wasn't even on the access control project and he thought it had probably been canceled at some point. He had been dutifully copying my updates to a network share somewhere in case they were ever needed. I gave him the SQL scripts and the database info and he put them out on the share where they probably still are today, a decade and a half later.
So that was six months of my working life.
by brightball on 4/5/24, 9:40 PM
Added random sleeps to slow down performance. Random alert messages about fake errors. It was weird.
EDIT: Since this is getting some votes I'll add some more details. He would also come by to tell me how happy he was about all the complaints he was getting about it.
by ewrong on 4/5/24, 11:13 PM
I was late to join the team, but when I did, they'd already bought and branded thousands of meters that were boxed and ready to go in a nearby warehouse. The team had already built a number of APIs exposing controls for these meters as well as various monitoring and reporting interfaces. A UI already existed but it had issues, my job was to come in and fix that and get us ready for release.
We worked hard for a couple of months and whipped this thing into shape. Meanwhile a multi million budget was lined up for the marketing launch. Adverts where drafted, installation technicians where trained and merchandising was branded. All systems go.
It all drove towards a set in stone deadline and we busted our guts to get there... When the day arrived, there we sat. Ready. All features built, no bugs that we knew of. Ready to hit the 'go live' button. Honestly in 30 years working in the industry, that was the only time I think I've ever been in that situation.
Our product owner walks into the room and says, "erm, there's a couple of issues we need to discuss at board level. Hold tight guys I'll be back".
So we sit...
Two days later he returns, "erm, guys... the board aren't sure that this product is on brand. And they are concerned that if it fails it could be bad for reputation. So, we're not launching."
So we sat... for a month... working down our contracts whilst I taught myself Node.js
by snakeyjake on 4/6/24, 12:11 AM
There were four control boards per panel and four panels per satellite and a projected order of 12 satellites so were going to have over 200 boards (enough plus spares) to test and last go-around it took two days to test a single board with failures due to connector issues and I wanted to get that down to two boards per day and no failures.
It was my masterpiece. Place a board on the fixture, pull down an assembly, and six micro-D, two nano-D, MCU and FPGA programming connections, remote thermal and multimeter probes, and a canbus connection with onboard amplifier to traverse the absurdly long cable all slotted with perfect precision into the board and were routed back to a test rack via a single cable bundle. Automated test bench scripts powered on the board, took voltage measurements, programmed the devices, and ran a suite of tests automatically and then printed out a report with a signature block for me to sign at the end.
The board experienced no stress, every connector was mated with perfect force at the perfect angles, and it would cut down the amount of time needed to test the hundreds of boards we were going to build by months.
It was featured in marketing materials for my employer.
We built four of them and with all of the labor they probably cost a quarter million each but would put the program back on track as it was delayed.
Additional delays in another part of the program led to the government cancelling the entire thing and we turned over all of our tooling and prototypes to the customer who probably put my fixtures in a warehouse for fifteen years before selling them for scrap value.
by worik on 4/5/24, 8:38 PM
What they asked for: Refreshing their suit of unit tests, 10,000 of them, that had gone stale (that applied to their widely used C++ telephony library)
Budget NZ$1,000,000
(Don't ask what, why, really?)
I joined half way through
Half the budget spent, nothing to show, mission mysteriously changed to producing a deep packet inspection tool. (What happened to the unit tests you ask? Be quiet! Take the money)
My job was to reach deep into their system and bring the data to the surface, roughly speaking
Thing is nobody that worked on the library wanted, needed, or asked for any aspect of what were doing
The design for it was written on a whiteboard by the project lead before I joined
Then the whiteboard was cleaned.
So the design was in one man's head
That man, the project lead, quit 3 weeks before delivery
On handover day I was a bit afraid, I had taken care to keep good records of my obeying (increasingly unhinged) instructions, so I was confident I could not be blamed (I was younger and naive-not part of the story)
But I fully expected an unpleasant "you did what with our money? What were you thinking?" type of unpleasant meeting
Instead the corporate types sat around a table gushing how wonderful everything was, what a brilliant job we'd all done...
I was stunned. I understand now, I learnt that day, that it was in no-one's interest to acknowledge the waste of a million bucks
Coming from academia, as I was more or less, this was a valuable lesson.
But utterly worthless software for a million dollars
I still use some of the furniture I bought with the money....
by shireboy on 4/5/24, 10:01 PM
by sllewe on 4/5/24, 9:50 PM
After acquisition - we were handed down the order to migrate to AWS.
This was after (in the mess of the merger) the colo contracts were basically ignored and not renewed. Once someone within the company realized the issue, it was the 11th hour.
After many, many attempts to discuss our (Operations team) concerns, we abandoned our protests. It was clear the new CTO wouldn't cave and sign the contract.
Some superficial testing was conducted and the order came down to move...NOW.
We began moving hundreds (maybe thousands) of very resource hungry DB servers first (there was no way to use something like RDS without major app/config changes).
Once the AWS bill came in, the CFO blew their lid and within 90 days we were migrating BACK to our DCs (and the millions of dollars of hardware we left idling).
by clbrmbr on 4/5/24, 8:38 PM
He holds up his hand to stop me speaking, says “you have an A. Don’t come to class anymore.”
So, I never went to class or did any of the assigned work, instead working on the simulator in my dormroom. At the end of the term I got a failing mark. I went to Tewksbury, and he had no recollection of having told me that I shouldn’t come to class. I tried explaining myself about the simulator, and showed him. He grudgingly agreed to change my mark, seeming suspicious.
Despite my attempts to work with the dept, the simulator never got used.
by 0xBDB on 4/5/24, 6:09 PM
Turns out the customer didn't read the (enormously expensive) SOW. They don't want the product, can't ingest its output, don't want to do the work necessary to implement it, and on a recent roadmap review listed its function as their absolute last priority. I am not sure whether there's been a change in management, or some salesperson talked really fast, or what.
I am trying to appreciate this as 'salary for nothing' and use the time to study for other things but it turns out that for me this is an anxiety-inducing and unhappy experience.
by leiradel on 4/5/24, 4:18 PM
After a quick debug session, the problem was clear: the methods to call was being searched using a linear search. I changed the search to use a hashtable and the function disappeared from the list of most CPU consuming functions.
After running both implementations for a couple of weeks to make sure my implementation was right, I made a PR, which wasn't approved. The manager said my change was too risky to go to production, even though the implementation was simple and I spent two weeks making sure it was ok. They're probably still using the linear search.
by windowshopping on 4/5/24, 7:58 PM
I've never shared it with the magic community because I think wizards of the coast would just send me a cease and desist, so three years of work is just sitting idle.
I'm still not sure how I feel about it.
by rossant on 4/5/24, 9:35 PM
There's a global industry involving thousands of healthcare professionals, lawyers, judges, police officers, and child protection workers who have spent 50 years prosecuting tens of thousands of parents and caregivers for allegedly shaking their babies. This is based on a theory from the 1970s, which posits that virtually all infants with blood around the brain and at the back of the eyes have been violently shaken. These professionals have developed entire academic journals, conferences, curricula, and training courses to teach this "theory" to all involved professionals (hospital clinicians, police officers, prosecutors, etc.). There are likely hundreds of such courses annually in dozens of countries. These people have raised probably tens of millions of dollars for research and prevention programs against shaking which, while somewhat beneficial for the well-being of babies, have not succeeded in reducing the global incidence of shaken baby syndrome diagnoses.
It turns out this theory is largely incorrect, and only a minority of cases are likely to be actual cases of abuse: the other children suffer from rare diseases or household accidents that cause these types of bleeding, which are mistaken for signs of abuse. Every year, thousands of babies are removed from their homes and hundreds of parents and caregivers are convicted and incarcerated.
This has been known for over 20 years, with more and more professionals raising the alarm, yet the diagnoses continue to be made every day. I discovered this 8 years ago and swore to myself that I would do anything I can to end it. At the time, I met doctors who had been trying to do the same for over 15 years, and here I am, 8 years later, doing everything I can but still feeling quite lonely and helpless. I still hope to think I'm not entirely useless. But more importantly, think about all these professionals who have built an entire industry on false premises, leaving a trail of devastation around the world under the guise of "child protection", convinced they are making the world a better place. Does this fit your definition of "useless"?
[1] https://news.ycombinator.com/item?id=37650402
[2] https://journals.sagepub.com/doi/abs/10.1177/152483802311516...
by sanderjd on 4/5/24, 7:41 PM
I've probably created a hundred or more proofs of concept for things that turned out to be a bad idea. Say these averaged out to a week or so of work each, and that's about two full years of useless work.
And that's ok! Most stuff you work on will get thrown away before you leave a company, and the rest will get thrown away not long after that.
This doesn't really bum me out, but I can certainly understand why people experience it that way.
Honestly though, I think it's worse when things I've created do persist for a long time. They're never nearly good enough and I hate to think that they still exist nonetheless.
I guess my point is: try not to sweat this stuff; it will drive you crazy.
by angarg12 on 4/5/24, 8:11 PM
When we tested the model (which somehow hadn't happened before) we found that the workflow was 5% quicker, but the results were more than 10% worse, and was more expensive to run. Everyone hated the idea, but the director kept pushing to do it, "or I'll find someone else to do it". I ran away and never looked back.
by thatguyagain on 4/5/24, 2:40 PM
by FartinMowler on 4/5/24, 8:49 PM
by quartesixte on 4/6/24, 3:25 AM
On Day 5 of 7 (sleepless night happened on Day 2 and 3), a passing engineer from a different team stopped by my desk to chat. Saw my screen and said "neat Python code, what's it all for?"
I replied, "oh it's to do some number crunching on that quality problem."
To which he blandly goes: "Oh. Didn't you hear? We scrapped that entire product line 3 weeks ago."
Reader, I almost actually threw my keyboard off the desk.
(If there was ever an argument for in-office work, it's coworkers telling you to STOP working on something and rescuing you from situations like this...)
by mtmail on 4/5/24, 2:38 PM
So the team had continue for several months to fulfill the catalogue of specifications, pass (external) QA and already knew the software will never be used.
He said it was all custom and exclusive and couldn't be reused or sold to another client.
by adityaathalye on 4/6/24, 4:46 AM
BOOK 7: Corporate Wisdom
https://www.mit.edu/~xela/tao.html
[7.1] A novice asked the Master: "In the East, there is a great tree-structure that men call 'Corporate Headquarters'. It is bloated out of shape with vice presidents and accountants. It issues a multitude of memos, each saying 'Go Hence!' or 'Go Hither!' and nobody knows what is meant. Every year new names are put onto the branches, but all to no avail. How can such an unnatural entity exist?"
The Master replied: "You perceive this immense structure and are disturbed that it has no rational purpose. Can you not take amusement from its endless gyrations? Do you not enjoy the untroubled ease of programming beneath its sheltering branches? Why are you bothered by its uselessness?"
by ac2u on 4/5/24, 2:25 PM
I had fun, eventually they wanted things like conditional workflows which I had to think how to model in XML.
To anyone with even a bit of experience, they can tell that it wasn't long until this not-invented-here-driven-monstrosity of an idea was abandoned as it's not something you can do as a couple of hours per week side project and have it be massively useful in a short timeframe.
So it was a useless effort for the company, but as a very inexperienced dev, it was the first project where afterwards explanations of how things like lisp worked started to make sense to me intuitively considering how backwards I was in my naive attempts.
Even the project you're describing, learn to be ok with looking back on parts of your career and being thankful that only your employers money was being burned on "useless" things while you were taking forward the valuable lessons.
by richardw on 4/5/24, 8:59 PM
by ajsnigrutin on 4/6/24, 3:30 PM
Industrial project, new machines to do new things, and the companies internal + one external team were tasked to buid an "enterprise grade" software to manage and control the process, show analytics, trends, etc., for everyone from the line worker to management, marketing etc.
They were working on it for a about a year and were maybe half-done, when the machines had to start the work, so they hired us (a third outside company) to "hack something up". It was a complex machine, configured internally, so basically it was just check if there was enough material (on a scale) on the "input" side, check that the output (a scale again) was not "full" (both configurable in a config file), trigger the machine to do its job, and save the diagnostic number (6 values) together with numbers for the scales to a database + grafana for visualizations. The machine was even smart enough to not start the work without material on the input and stop if the output was clogged, so even if we screwed it up, it wouldn't matter.
Two days later, we had a working prototype, a year later the internal team was still working on the software, and the "prototype" was still in production, then that project got dumped, and the ~100 lines of python on a raspberrypi (it was just a "prototype", just for a few weeks... yeah) are still running the machine... and still is.
by karaterobot on 4/5/24, 9:08 PM
Maybe that doesn't count?
I've also worked on a multi-year product for a large company in Redmond that I was really proud of when building it. It doesn't matter what the product was supposed to do, just imagine it sounding kind of sexy and being very complex and brainy. It was for scientists. When I told someone who wasn't dumb but was outside the software industry about what I'd built, he looked confused and said "well, why wouldn't you just use [a free piece of software that is well understood and runs on every device] instead?" and I had no good answer, because he was right.
by psnehanshu on 4/5/24, 8:01 PM
Ngl, he was my first major client with whom I gained a lot of experience, but it doesn't change the fact that he is a hype chaser.
by shaftway on 4/5/24, 8:18 PM
by rgmerk on 4/5/24, 10:56 PM
https://www.frc.org.uk/library/standards-codes-policy/actuar...
As far as getting paid to write code in our industry goes, it was quite enjoyable. Most of the code was totally new and not particularly tightly coupled with the rest of the system, so the challenges were in understanding the subtleties of the requirements and coming up with a clean and performant design rather than fighting legacy code.
Touch wood, I've done a reasonable job. We got it done a couple of months before it was required and a full dry run with our entire customer base only found one pretty subtle edge case that I'd missed.
So we get to keep our license to look after billions of pounds of customers retirement savings, which is kinda important, and because I worked on this other developers got to work on stuff that actually helps our customers (which is important for our customers, and ensuring that our business retains and expands said customer base).
However, the new version of the regulations, while written with the laudable intention of providing people with more accurate and unbiased information about how much money they will have on retirement, achieve nothing of the sort. It just replaces one set of assumptions that are wrong on some edge cases, with another set of assumptions that are wrong on a different set of edge cases, in some cases arguably wrong in worse ways. Nor does it address the real weaknesses in these statements.
And across the industry, there are literally dozens of companies who had developers who spent similar amounts of time to me implementing this new standard, for no benefit of any of their customers that I can discern either.
by fatnoah on 4/5/24, 2:45 PM
Ok, not so bad, except that the scope of my task remained the same. The project and my role was funded by the customer for the 4 years, but my deliverable remained the same. My job was to literally do nothing while being available to debug things if needed.
by charles_f on 4/5/24, 3:11 PM
I worked for a full year on a service who was used by exactly 0 people. Then had to do all the consequent security updates and such. It took another 2y until we were finally shutting everything down. That was useless.
by __MatrixMan__ on 4/5/24, 7:54 PM
It was actually just a Front. You'd buy it and then our support people (without said licensure), instead of supporting the software, would go out into the field and configure the things for you.
by psion on 4/5/24, 9:27 PM
by delecti on 4/5/24, 8:46 PM
But there was a service, AdWhatever, which let users go onto a sub-site of Amazon.com and just casually? recreationally? vote between two ads. You would be presented with two B&W images and click the one you liked more. I don't know that there was any incentive to do this, but I think it was a Bezos idea.
I didn't develop it, but all the routine maintenance tasks that came along (remove this deprecated library, migrate to new hardware, update your pipeline) needed to be done for AdWhatever too. That stupid service lingered for years after it was clear nobody used it, but we had to keep maintaining it until we got the go-ahead to tear it down.
by meter on 4/5/24, 11:34 PM
There was a 3 month period where I had nothing to do.
I was supposed write firmware for a piece of hardware, but the hardware was broken and wouldn’t even turn on. I was told to wait for the electrical engineers to fix it.
I sat in the lab all day, for 8 hours a day, with no internet access (it was forbidden), pretending to write firmware that I couldn’t test, with no direction on what I should be doing. There was no simulator, no tests, no guidance.
In that time, I would practice my own Leetcode problems in preparation for other jobs. All day long.
About two weeks before I left the company, I received my security clearance. That’s when I realized… they were just killing time until I had my clearance.
All of a sudden, the flood gates were opened, and I learned about a really interesting project. Not interesting enough to keep me though ;)
Six years later, I’ve 3x’d my compensation. And I love my job now (web development).
by azhenley on 4/5/24, 2:50 PM
by turrini on 4/5/24, 8:33 PM
In Brazil, all businesses must issue an invoice or a fiscal receipt. The latter includes purchase details and a QR code with a URL that directs the consumer to the respective state's SEFAZ (Department of Finance). This allows consumers to view their purchase receipt online and print a second copy if needed.
However, each SEFAZ operates differently, if they function at all. This hindered the app's progress, as the constant unavailability of state services led to numerous user complaints.
The project is currently on hold until the receipt consultation process is centralized within the Federal Revenue Service, similar to how invoices are handled currently.
The project's goal is to allow users to compare recent prices from those who have purchased and scanned their receipts, enabling them to create shopping lists in advance and know where they can save money.
Relying on each state's government to keep their systems operational has become the project's biggest obstacle.
I consider it "useless" because of the time spent on it and the inability to continue due to our government's inefficiency.
by abhgh on 4/5/24, 11:24 PM
Yes that isn't a thing; its a term I came up with, and I sincerely hope no one ever has to encounter such a situation.
So, someone wrote a complex data processing pipeline, that read from some tables in a DB, processed the data in small and large ways, finally producing a bunch of variables that were passed into a downstream ML model. No documentation was produced, and the developer had exited the company.
The problem: because of some high stakes issues with said pipeline's results, we needed to (quickly) find out which final variables were drawing information from which initial DB fields. And all we had were a bunch of scattered scripts (Python and Pig I think).
For me that translated to this task: read the scripts to trace a path of successive variable definitions in terms of other variables, eventually connecting each output variable to one or more input column name. It took me 2 long days to trace these paths by manually reading the scripts. The evening sessions were particularly mind-numbing, and involved a few glasses of wine.
by cableshaft on 4/5/24, 2:28 PM
We already had them as clients for other services we provided, this was just something new that the higher ups were sure they'd go for (I think it solved a real need of theirs, their call center people were doing a lot of looking things up manually across like 60 excel spreadsheets during calls, IIRC, and part of what this did was combine all that data into a central area that's easily searchable, plus some other nice-to-have call center features like being to schedule appointments or something, I think).
We got a nearly production-ready MVP in front of them and demo'd it, they seemed interested but we could never get them to sign a contract, for months. One of them eventually decided to recreate something similar in-house and actually had the gall to request that we send them all the business logic we came up with while doing it (for free), the other just never signed a contract.
Well anyway, after failing to get those two clients, the execs must have decided that it was no longer the future of the department, and was quietly shelved.
I might as well not have done anything that six months. Although I did get a bit more comfortable with using Angular at the time, thanks to that project.
That company did that multiple times, btw. Because of the nature of the health industry, and how often they drag their heels for contracts, they often decided they had to start work without a contract in place or else wouldn't have it ready by the annual health insurance open enrollment period, which is when health insurance companies were busiest and where companies that offered services to those companies (our company) made all of their money (think of it kind of like how game companies don't want to miss the holiday season for their new releases). But it resulted in them doing work and not getting paid for it. I wasn't surprised to find out the department was eventually shut down a few years after I quit.
by ChrisMarshallNY on 4/5/24, 9:49 PM
My team worked on a project for about 18 months. I won't go into detail about what it was, but it was (and still is) badly-needed.
We worked with the top interaction and graphic design folks in the world for the aesthetics and interaction. We had many meetings, flying the whole team to San Francisco, several times a year.
When the project was in its final testing, the company got cold feet, and canceled the project. I had to lay off two of my engineers.
It would still, to this day, be the best of breed. It was designed about twenty years ago, in the early aughts.
by pempem on 4/5/24, 9:14 PM
Won a patent for UX that solved a dicey problem which hadn't been addressed until that point and would impact any user under 18.
Won an accessibility award for design heuristics that hewed to the cutting edge of accessibility not just 'this website works for colorblind users'
The site was destroyed by internal politics. Assigned a URL that made it unmarketable (think... domain.com/projects/projectnamemarketplace) and flailed for 2 years before being sunsetted with nearly no users.
by HeyLaughingBoy on 4/5/24, 3:14 PM
Our company owner didn't like their complaints, so I was told to design one that was "better than theirs." That's it. That was the entire spec. OK, I was also told that customer X would like a board that they can program in C (current board had a built-in BASIC interpreter).
I pointed out that I didn't think it would be helpful, since every customer was happy with what we had, and no one was coming close to its limits. It was a small company: I took most of the customer tech support calls, so I was plugged into what they were doing.
I was told to go do it anyway, "we're not going to be held hostage by those guys."
So, I did. I picked a cool new 16-bit Hitachi (now Renesas) chip that had a nice C cross-compiler available and set off on my pet project. My design had more RAM and more storage and a much faster clock. I wrote a simple text-based serial monitor for debugging and uploading code. It was really nice.
As I predicted, however, it didn't sell a single unit. No one cared about all the stuff I added since the existing board already had far more capability than anyone needed anyway and this one, along with the necessary compiler, cost more than 5x the old one.
They showed it to customer X, who said "it's cool, but why would you think we need this?"
by TrackerFF on 4/5/24, 3:04 PM
A scenario like that typically goes like this:
- Client orders an analysis of something. They want all corners covered, and because they'll use it as evidence/argument/pitch or whatever, you're likely working on a tight deadline.
- You (and others) work tirelessly through the nights, pour hundreds of hours into the analysis, do get it finished before deadline. Everything needs to be perfect and bullet-proof.
- Client is presented with the delivery, skims through it, and thanks you for the work.
- The client changes their mind / abandons it all-together.
Those projects rarely feel rewarding, as you're mostly just fighting the clock, and doing lots of boring routine work. And when it turns out that you and your team are the only ones that will ever read the analysis, that kind of just makes it feel useless.
by winter-day on 4/5/24, 11:43 PM
by thom on 4/5/24, 9:00 PM
by sandreas on 4/5/24, 9:54 PM
Basically it is a circuit where you could use any Android inear Headphone with remote buttons on any Apple device with Audio Jack - a TRRS Plug - TRRS Jack translation layer between the 220Ω/660Ω vol+ and vol- signaling on Android to the proprietary Apple ultrasonic chirp protocol.
Probably nobody (besides me) will ever require this, because everyone just uses Bluetooth these days and noone else uses the iPod Nano 7g :-)
by jiqiren on 4/6/24, 8:10 AM
Some Digg colleagues reached out asking why I decided to leave… since that is what digg internally announced. This is when I understand a number of others before me were also fired and not just “deciding to pursue other opportunities”.
EDIT: to be clear I don’t fault them for firing me. People not onboard for a decision made by leadership in a startup are fair game to be fired. You need people to believe in the product and I definitely wasn’t a believer.
Anyway I had 60-90days (can’t remember deadline) to exercise my options or let them expire. I decided to let them expire since I thought v4 was a bad direction. Honestly I was very stressed about this decision but I went with my gut. Saved me half a house worth of money.
by moomoo11 on 4/5/24, 2:57 PM
Post IPO all the late stage jokers from companies like MSFT and AMZN started coming in and I remember the torturous bike shedding and endless documentation for doing simple stupid shit like adding a single attribute to a data model or changing border radius on a button for the design system.
Added literally no value for the users.
Actual user issues were deemed “not important” because they were a bit complex or some PM with the right credentials but none of the empathy would think it’s low priority.
Not to mention the endless self patting on the back and “psychological safety” type people who showed up that spent more time doing everything but the work.
Meanwhile our poor users would suffer in their already difficult jobs and get an unwanted UX redesign instead.
Honestly made me lose respect for FANG crowd. I’ll rather work at startups or my own company than work at some late stage place. What a nightmare.
by rossdavidh on 4/6/24, 2:43 PM
The cupcake company's CTO took paternity leave shortly after the project began.
We asked about the back-office software, which interfaced with the kitchens, on a couple of occasions, and were told not to worry about it, the third party standard solution would handle that.
So, with a week to go, the cupcake CEO finally shows the product to his regional managers. They ask, "where's the part that tells us to put make this much of this kind of frosting, and when in the day to do it? and make this much of red velvet cake, starting three hours before it's needed?"
It turns out, the third party solution was for sandwich and burger places, where you would just make the food when it was ordered. For cupcakes, it needed to combine the needs of multiple different orders, take into account how many hours it would take to make each flavor of cake and frosting, and tell the kitchen staff what to do, and when. The cupcake CEO had only ever run a burger place, he had no idea about any of this, and didn't want anybody like the CTO telling him his idea wouldn't work.
So, he asked us if we could update our glue logic to also talk to the old software, so that it would continue to run the kitchens, while the new website took the orders. We said sure, here's how much it would cost.
Oh, he said, we wanted it as part of the previous quote.
The final meeting, wherein we explained that we had done what he had asked us to, was not attended by the cupcake CEO, he sent his new CTO (the old one had quit right after his paternity leave was up). Every permanent employee of my company slipped out, and I, the contractor, was left for the last part, to explain that no, we would not be building any software not in the original quote, for free.
The entire project went into the dump. The former CTO of the cupcake company, started work for the company that had made the original, bespoke software that was still running things.
by tomdell on 4/5/24, 10:32 PM
I am being moved to the team that builds the cheap dashboards (I'm not happy about it). Among all the prototype work I did, only one significant project has made it into production - the others were continually iterated on for a couple of years, and though some of them have a highly engaged and appreciative beta userbase within the company, I am not allowed to do much more development on them, and they will be taken out of my hands at some point and passed off to other teams.
by Jtsummers on 4/5/24, 2:58 PM
When this happens, look at the money. Who is paying for it, how are they paying for it, and can the money be used for other projects/programs.
I've been in similar situations where work had to be done on X even though there was little work to do or no point, but there was money. Y had more value, if we could work on it. It was funded from a different source which didn't have money (or did, but not enough to bring us over) and we couldn't use money from X to support Y.
It's a very frustrating situation, fortunately not one I'm in anymore.
by intellectronica on 4/6/24, 7:47 AM
The claim was that the system this person was developing, when introduced to a lot of information, would emerge with "interesting" behaviour and insight. The problem was that nobody except for the author knew how to interface with that system, which was just a dense and highly idiosyncratic codebase in C manipulating data structures. And so my role was to learn about that system and build a UI that will allow mere mortals to use it.
After a few frustrating and very confusing weeks not really managing to understand what that system actually does (and therefore what an appropriate user interface would be) I finally got to read through the code (taking advantage of the main author, who normally guarded his creation and didn't allow anyone to look at it too closely, being absent for a few days). It quickly became clear to me that this system doesn't really do anything useful at all. It was more post-modern poetry than code.
When I tried to talk to the investor about the situation I was made to understand that this is not something we're going to be discussing openly. I guess he sort of knew but for whatever reasons liked keeping things ambiguous. In order to be able to deliver _something_ for my fees, I prepared a cute little Windows UI that technically connected to that system but really only used it as a random number generator, had some buttons and sliders, and presented all kinds of cool graphics. They were very happy with the result and I soon moved on to other works.
by ekzy on 4/5/24, 11:47 PM
by LouisSayers on 4/5/24, 9:06 PM
One project was an eBay tool, another was a chat assistant, another was an energy comparison tool...
The CEO was never in the office, she was always flying around the world with her daughter (given a made-up C title) visiting CEOs of large companies and throwing out numerous hooks to see who would bite.
I very quickly saw through this whole charade and quit a month after joining.
Some years later she managed to wangle a sale via a well known tech company she was previously a C level for. Who knows what it was that she ended up selling ...
by throw310822 on 4/5/24, 10:29 PM
In the end, we managed to produce three working web pages, and then the team was disbanded and the project shelved. The whole thing might have costed the company a million or more. Pretty sad, but now I tell people that I know why the interest rates of their bank accounts are zero.
by corytheboyd on 4/5/24, 3:04 PM
Sometimes you have a voice in the room to prevent dumb things from being done. Use it if you have it, by all means. If you don’t get heard it’s a waste of time and mental health.
by JohnMakin on 4/5/24, 9:20 PM
The worst one ever was he wanted to build a kubernetes observability platform from scratch. Specifically, we wanted to filter our application logs for errors and be able to find them. There's a million out of the box ways to do this with free and enterprise tooling, like EFK/ELK setups, datadog, etc. But no. We wanted to do this from scratch.
Well, fine I thought. Good resume builder. His approach was roughly this from what I recall:
- On an EC2 instance we will set up permissions so it can access the control plane of our entire global EKS infrastructure (like 4 dozen large clusters hosting 10k+ containers)
- We will run a series of bash scripts in a background process that hits the control plane every few seconds with Kubectl to get raw pod logs and store them for analysis/error grepping (probably someone is laughing already)
- We would use a similar series of bash scripts to automatically generate a mostly static website that would link to the paths of log files deemed "problematic" in some insane filepath system that was approximately organized by timestamp, the idea being if you thought an incident happened in Cluster XYZ at 11am you'd navigate through this web of raw log files and find the directory that had the precise timestamp you needed (linux epoch of course, not mm/dd/YY)
- Because new files were generated all the time, like every few seconds, we also had to periodically "refresh" the site by rebuilding the static site with all the new links
All told I think it ended up being some absolutely psychotic mess of 50+ scripts and over 15,000 lines of almost all bash and some Go templating.
Surprisingly, it did what it was supposed to, it just looked terrible and had an obviously bad UX. Luckily before we could show it to anyone important the exact thing happened I had warned about and we started crashing some of the clusters' control planes from the sheer number of requests we were sending to it. He panicked and told me to shut it down.
I'm sure I don't even need to go into detail how useless this is. I did become a wizard with kubectl, however, so it was valuable to me. Not so much to the company.
by whinvik on 4/5/24, 3:14 PM
I started with a proposal on how to simplify it and went about developing a POC. However, a couple of months in, I realized that the company actually had NO customers for this. And multiple engineers had worked multiple years to get this to the stage it was. I had 0 motivation to do anything after this, and left soon afterwards. I think they are still working on it!
by mazone on 4/6/24, 3:11 AM
by 3371 on 4/6/24, 10:28 AM
The so called "tech dev team" are responsible for all sorts of tasks, for example exploring new tech, prototyping, supporting product team with optimization or content production.
We had been supporting system design and development in a new Unity (game) project for half a year, things were fine, and then the project got frozen/archived/cancelled.
And the reason was simple, our big boss wanted to svalr new heights! Something just like the one he made ~20 years ago and still feeding the company. He wanted to concentrate resources on this new ambitious project of his.
So that was it, the end of a 10+ men project, we got assigned to different task then. And then again. Then again.
Sometimes we just experiented techs. Sometimes we worked on projects that is not promising at all from our view. Sometimes we took over a good project and altered it into a abomination.
As my first job in my career, I'd say it certainly harmed my passion. I really really hope I can works on something poilsitively meaningful and impactful/useful to the world or even just certain audience.
I am probably only qualified as junior go/.net developer, but if there's such opportunity please let me know.
by Froedlich on 4/5/24, 11:40 PM
Had anyone bothered to ask me, I could have told them that their "solution", being a Windows-based software package, wouldn't run on their database servers, which ran SCO Unix. Which was quite adequately backed up with tar and cpio, and rotating off-site tape storage.
Later, the desktop support group was surprised by the delivery of a couple of pallets of Compaq laptops and desktops with Windows 3. This was before "internet" was really a thing. The desktop guys set them all up, made sure they could log in to the Novell servers, and went home. However, the main application the clerks used was on the SCO boxes, which were accessed with NCSA Telnet. The Compaq machines had Ethernet ports, but their customized Compaq Windows version didn't have TCP/IP drivers, so the next morning they were frantically putting the old computers back so people could work.
by denkmoon on 4/5/24, 11:40 PM
When I worked for my country's defence organisation, I was the "primary development resource" on a project to rebuild the login page for their online services portal. I was allocated to this task full time for 14 months. I got some designs from the UI people, did a real shit job of turning it into a functioning page in angular in about a month (I'm not a frontend dev, they never asked me if I even knew what angular was, the job just landed on my desk one day), copied some npm magic to make it all render out to a single HTML file that could be installed in their fancy super security authentication system. For the remaining time I just attended a few hours of meetings a week and answered a handful of emails each week, maybe 2-3hrs of work a week, while a bunch of shit went on in the background to approve and document the work (stuff I didn't have the right title to do).
I left that job three years ago, the login page for the online portal is still the one that was built in 2003.
I'm fairly sure the entire point of the massive overallocation was for $CORP I was employed by to extract more money from $GOV, at the cost of a fraction of that paying my salary.
by kn100 on 4/5/24, 2:55 PM
The real goal is learning to sniff i2c though.
by anyonecancode on 4/6/24, 3:09 PM
The project I _had_ been on was central to the successful product line. I had built out a central part of that system and was proud of how well it worked and seeing the usage and revenue growth from it. The _new_ product was... changing the payment processing system we used for accepting credit cards. I mean, sure, a more flexible payment processing flow is a helpful improvement, but at a time of existential risk to the company, _this_ is what we should be focused on?
And actually, it was more than that -- the new flow had some kind of complex integration with a system provided by an outside vendor. And involved lots of sync meetings. Lots and lots of sync meetings. And every meeting would involve explanations by contractors (who seemed to multiply by the week) as to why we were behind schedule, and questions by me trying to get some documentation on the API I was supposed to interface with, and explanations of why the people on this call didn't have that info but I should set up a meeting with a different team of the vendor...
I assume there was some kind of kick back or other tie between the execs who approved this program and the vendor, as this project seemed more about pumping money out of a dying company and into this outside vendor than any kind of rational business strategy. I did move on after too long, and that previous employer is now officially bankrupt.
by robofanatic on 4/5/24, 8:18 PM
IMO only this part is useless. I have been through this and it feels horrible. sometimes its waste of time arguing with people so I just do what the reviewer says even though it doesn't make any sense.
by alibarber on 4/5/24, 8:48 PM
He inspired me to take April Fool's seriously. I've since changed industries but last year I jumped on the AI bandwagon with https://chatellite.space and this year a nod to a popular mobile game https://flappysat.space .
Functionally completely useless but they taught me a lot and made some people laugh.
by chrystalkey on 4/5/24, 8:35 PM
by theGeatZhopa on 4/5/24, 2:14 PM
It's all a matter of selling it with perspective :)
by rickcarlino on 4/5/24, 8:05 PM
by dandanana on 4/5/24, 3:03 PM
It is a very successful gaming company and released a couple games that sold very well. But the game project I was working on was basically a side-gig that no one (other than the owner of the company) cares about. It was like it was his hobby project and he was paying us to develop it. I think it was a good game and could have been successful but it was horribly mismanaged
by Simon_ORourke on 4/6/24, 9:54 AM
What I didn't know at the time, and came only to realize much later, is that these enterprise software vendors and integrators tend to put their A-team onto winning new business, holding back some hapless goons for the actual implementation if and when that comes around.
I was managing a team of BI analysts, data scientists and assorted "KPI reporting" heads. First thing the implementation team does is look for a list of all current reports and their data sources. OK, nothing odd there, but roll forward about four months and there's a weekly status update meeting where the vendor casually mentions that the data warehouse will be locked down to producing exact facsimiles of the current reporting, with no other access allowed for running other queries. Future reports or changes would have to be routed through the vendor for development.
This of course kicked off a major sh!tshow, where I had to go to the CEO and tell him that unless he wanted to be signing cheques to the vendor forever more, we'd better get some appropriate permissions on the data warehouse and BI reporting system.
After lots of difficult shouty meetings with the vendor, despite their threats to hold back support from their own work, we got access and could continue to do some work. However, the vendor argued that they'd need to place a couple of "senior support engineers" on staff to ensure smooth operations from our meddling. These guys turned out to be some fresh college graduates who didn't have English as a first language, but ended up costing the company about 150k/year each for them to sit at a desk and play minesweeper all day.
Lots of hard lessons learned, I was way too naive thinking that vendors just want to sell stuff, plus occasional support - rather than take over an entire function for cash.
by throwway120385 on 4/5/24, 7:51 PM
For a useless/meaningless project I did once, I wrote the read and announce portions of a userspace BLE stack against the BlueZ sockets in Linux because it was quicker and easier than figuring out how to use the DBus interface. It also turned out to be about 10 times faster latency wise. We needed it to do a proof of concept for something which later didn't pan out in the market. The code still lives in our repository and gets compiled into our products but nobody plugs the Bluetooth dongle that triggers its activation into any fielded product.
by cosmotic on 4/5/24, 4:16 PM
The project itself was a mess. There were GUID-named Visual Studio solutions for every combination of values of three variables; hundreds of solutions that grew every month. The output of these projects was a spreadsheet that was then manually compared to the previous months' output.
This was all lead and managed by one of the top consulting firms in the US.
by fnordpiglet on 4/5/24, 3:50 PM
That’s one of the most important lessons any good programmer learns at some point. We aren’t building monuments in software, everything we do is disposable and will eventually be someone else’s curse in the future.
by tdh15 on 4/5/24, 9:14 PM
by tcmart14 on 4/6/24, 3:52 AM
by liamN on 4/8/24, 1:06 PM
The Google and Arkose SDKs were fairly different in their implementation and the Arkose SDK needed a lot more tweaks to get working in our code. The entire company spent around a month migrating web, iOS, and Android and then coordinating a simultaneous release. All went well, congratulations all around.
Fast forward to a year later, new order from on-high: we're switching from Arkose to Google Recaptcha because Arkose was too expensive! Rumors were circulating around then that the only reason we had switched to Arkose was that some VC had a buddy on the Arkose board and pushed really hard to get our company signed on, and then immediately left.
I left the company not too long after the migration back to google Recaptcha, but was waiting with baited breath for another order to be given to switch back to Arkose.
by brynet on 4/5/24, 3:03 PM
by SoftTalker on 4/5/24, 3:19 PM
Or, a new manager or exec somewhere up the chain decides to change a business process while you're still working on implementing support for the previous process. It happens all the time.
I would guess that 90% of the code I've ever written isn't used at all today, if it ever was. And that's being generous.
by tracerbulletx on 4/5/24, 10:42 PM
by tenken on 4/5/24, 10:39 PM
2 quarters (4 months) from release campus decides to buy an Internet SaaS product. And the in-house project was shelved completely never to be touched now.
Imma really the integration lead for the campus with the SaaS vendor. But it turns out the SaaS product cannot create the Reports we want, nor is it granular enough in other aspects for our needs compared to our in-house legacy offering.
Se la vi.
by Buttons840 on 4/6/24, 12:31 AM
We implemented the contract faithfully, and checked all the boxes, but nobody outside the government wanted to use the system.
We had a namespace of sorts we would allocate to the users in the community. There were a few times we wanted to make backward incompatible changes, which we were hesitant to do for good reason, but then I would go and check which parts of the namespace we had allocated and see that literally nobody had used the system yet, so we went ahead and made the backwards incompatible changes.
I left part way though the project. I don't know if they ever got any real users, but they did get the government's money, and, in fairness, did an honest job following the contract, so I can't blame the company.
It was one of my first jobs and it bothered me a lot how weird things were following a contract rather than doing what actual users wanted. At the time I imagined how great things would be having real users I could deliver value to, but have since learned users aren't always as wonderful as I imagined.
by nomercy400 on 4/6/24, 5:04 PM
They were in the process of moving from paper to digital forms. This meant for each field in a form updating about eight different data objects across three data abstractions. Imagine a form with thirty fields.
Now this is tedious and prone to error, but it gets worse
The form I was working on was not well thought out, but we had to build it anyway. So on the first demo to the functional designers, or 'stakeholders', we pointed out several oversights, which we were asked to correct. And ofcourse process some other changes they found themselves. This is half the fields in the form, so we already did a lot of useless work. But it gets worse.
The form in question was about the city being able to judge if somebody would be entitled to benefits. Citizens with benefits would be asked to volunarily fill in this form, and judged if they could keep their benefits. Yes, voluntarily. Would you fill in a form, which could make you lose monthly income? Or not fill it in, and keep your benefits?
Pointing this out had no effect. For me, the form was useless, and so was the technical implementation.
I left that month.
by anonzzzies on 4/6/24, 5:03 AM
by OnACoffeeBreak on 4/5/24, 2:45 PM
Memory is hazy, and I may get some of this wrong because I left the industry a while back.
One was a multi-port T1/E1 interface card that provided -48V line power to downstream repeaters or CPE. Think PoE but over T1/E1 interfaces at telco voltages and ruggedized to sit in an outdoor metal cabinet with no fans. All components were rated -40C to +85C. I am glad it was cancelled. It was going to be a safety and regulatory certification nightmare.
Another was a multi-port DS3 interface card that did circuit emulation over Ethernet. There were no off-the-shelf ICs that could do everything they wanted. So, we ended up with 4 very expensive FPGAs on the board. This one went into second prototype stage before being cancelled. I'd guess, $200k spent just on prototype hardware.
I can't remember the third project. At that stage I was jokingly known as some sort of project killer.
by Spooky23 on 4/6/24, 12:18 AM
It was flagged as a “CIO Priority”, so exempt from normal lifecycle activities and rules.
I did this work in 2009. I got a call a few weeks ago about it because it wouldn’t restart. Turns out in 15 years it was migrated a dozen times, and most recently migrated to GCP.
by klntsky on 4/5/24, 10:39 PM
These scenario descriptions can then be bound to hotkeys.
I decided to embed a LISP into the extension, but while building the interpreter[1] I realized that the DSL is already too complex for everyday use, and I haven't really used it to automate anything.
I am the only user of this addon.
[0] https://github.com/axes-webext/axes [1] https://gitlab.com/kiniro/
by readthenotes1 on 4/5/24, 2:39 PM
Although ancient, his essays are still useful in today's world...
https://archive.org/details/parkinsonslawoth0000park_f7z9
Short, funny, and inciteful
by green_smoothie on 4/11/24, 3:11 AM
It literally did nothing other than store files on disk and let you access them.. Very slowly. It didn't support subdirectories, so you needed to drop everything into one directory... And an LS on 500 files took about 4 minutes.
Everyone at the company hated it, but it was the baby of the VP in charge of engineering, so it stayed.
To be clear, it added nothing over just dropping files in a directory.
by throwawayX995 on 4/5/24, 10:48 PM
To make sure the project was successful, we contracted the actual work out to BigCorp. I pointed out they were already selling a product in this space - we would be hiring them to build their own competition. No one seemed too worried.
Lots of money, lots of time, lots of progress reports, lots of calls with enthusiastic sales people. Nothing ever resembling a functional product came out of it. When it finally got cancelled I heaved a sigh of relief.
by wwilim on 4/6/24, 7:03 AM
I also briefly worked in an extension team for a company, as a part of a huge hiring wave of about 30 people at once. The team on the customer side was really cool and I was excited for the project. However, suspiciously little work was given to us, I was one of the lucky few to have something to do every day, but it all just seemed like filler. After a month, the CTO of that company gathered all of the new hires in a meeting and sheepishly declared that they've overestimated the scope of work and their budget and they're firing all the new hires with 1 month notice.
by Waterluvian on 4/6/24, 1:26 AM
by any1 on 4/6/24, 10:48 AM
We had an internal control system based on RT_PREEMPT Linux and busybox. This system was created before buildroot and yocto became a thing. It was compatible with the company's previous control system, which ran on bare-metal 68k. I was on the team that maintained and developed this Linux based system. This all ran on hardware that was developed and manufactured in-house.
The company had also acquired many smaller companies over the years, all of which came with their own way of doing things. Most used PLC, but not always from the same vendor, some even used elaborate mechanical clockwork.
The Linux based stuff was actually pretty good for gluing all this stuff together.
At some point, a consulting company came in, and shortly after that, the management decided that the company should focus on its "core competencies". So, they hired a guy to find a replacement for all the different control systems within the company: One system to rule them all. It was to replace all the software and the hardware.
We told them, that they should rather focus on creating and documenting common interfaces; replacing everything was very clearly an impossible task. They ignored this advice, entered a contract with a single PLC company and deprecated the system that I was working on along with everything else.
A few years later, they fired that guy they hired and the CTO, but in the meantime, we all kept working on the "deprecated" systems while the replacement was "just around the corner".
Anyway, whether they were going to proceed or not didn't really matter to me. It's all about the journey, not the destination. You can keep learning whether you're doing something useful or not. You can still craft software to the best of your abilities and take pride in the art. In fact, don't think of yourself as a software engineer. Think of yourself as a software artist!
by INTPenis on 4/5/24, 8:27 PM
But I knew a sysadmin at a large european educational institution whose only job it was to hit up-arrow and enter a few times a day when a server crashed.
They knew how to fix this too, they just didn't care. And nobody else had enough experience to understand.
by tstrimple on 4/5/24, 3:15 PM
by Cyberdog on 4/6/24, 4:56 AM
But for real, the first full-time programming gig I had was at a place that displayed huge tables of stock prices or something like that - I don't recall the exact data or why we were providing it, but I do remember the problem that I was assigned to solving: the tables of data were so large that on modest computers and those newfangled smartphones, system performance would drag to a crawl.
I was tasked with solving this problem, but not tasked with solving it in a particular way. This would have been around 2007, so IE 6 was the primary target, and if jQuery was out yet, it wasn't widely used yet.
After a good deal of experimentation, the solution I came up with was kind of ridiculous - the page would load the table, then remove all but the first two screen-heights of rows and replace it with a single row with a CSS height parameter set to the sum of all the other rows in the table. As the user scrolled through the table, rows of data were added below the existing rows while the footer "megarow" was shrunk, while a header "megarow" was created and set to the height of rows of data that were removed. The experience was flawless if you didn't scroll too fast or use the home/end keys, but even if you did you just saw a flash of an empty table row before the correct rows were loaded into place. It worked really well.
Anyway, that took up the bulk of my first three weeks working there before some higher-up took a look at the books and decided they needed to start laying people off in reverse order that they were fired - which I guess makes sense if you don't want to be bothered to do an evaluation of someone's skill, but still, it was pretty offputting to lose my first real dev job that way. To this day I have no idea if that code ever saw production - the product was an expensive subscription service so I had no way of checking up on it inexpensively.
Fortunately I was able to rebound and get another dev gig through a friend of my stepfather, and I've continued to hack away ever since.
by jdswain on 4/5/24, 9:13 PM
I feel for architects that see their own buildings torn down in their lifetimes and replaced. I'd find that hard to deal with.
by emerongi on 4/5/24, 10:07 PM
by system2 on 4/6/24, 12:47 AM
Instead of following basic instructions, the CEO and CFO came together and invited every known influencer in Los Angeles to a rooftop party in Hollywood. For this event, they spent over 1 million dollars paying for the fancy hotel for a day, decorations, gifts, and unlimited alcohol. After the event, there was no money left for marketing. They shut down the site after 3 months of not trying anything else.
by wruza on 4/5/24, 11:16 PM
This was demotivating af. I wished I could go back 10-15 years into my consulting days when I helped real people to do understandable, healthy things.
by Havoc on 4/5/24, 3:03 PM
Also wrote some Visual Basic Code that I’m 100% dead certain was never used. Which was probably for the better
by QuercusMax on 4/5/24, 9:27 PM
When we were just a month from completing this project, they laid off everyone involved in the project except for me. I don't know for sure how much this boondoggle cost, but it was at least mid-single-digit millions of USD just based on the number of folks involved.
by Lerc on 4/5/24, 8:35 PM
https://c50.fingswotidun.com/ useless but arguably art.
https://k8.fingswotidun.com/static/ide/ an ide,assembler,emulation for a fictional 8 bit computer.
https://github.com/Lerc/notanos A html/js desktop for Linux that I really should finish sometime.
These three projects have a combined user base in single digits. Mostly just me.
by rdl on 4/6/24, 12:54 AM
by rhelz on 4/5/24, 2:39 PM
by Ensorceled on 4/5/24, 9:34 PM
The project was doomed to failure because Datarama had all the same problems as Domo for our use case and, as the project dragged on, Datarama increased their pricing to match Domo's. Eventually the project died, but not after we paid for a year of Datarama and 8 months of contracting.
by hahahacorn on 4/5/24, 9:14 PM
I really suck at the game and my buddy had ideas for different strategies that would beat someone skilled at the game. So I made a CLI tool to simulate these strategies. I haven't played the game since learning that yes, there are strategies that beat skill given a sufficiently low burn rate.
by jmclnx on 4/6/24, 2:27 PM
This may seem useful, but with what I know now, it was to track inventory for a reason that was border-line illegal. During Inventory time, trucks would be loaded up and they would cruse the Highways until the Inventory was over. They wanted a way to know what inventory was on a sightseeing trip.
That company went out of business over 30 years ago and no longer exists.
by to11mtm on 4/6/24, 8:51 PM
1. A significant 're-architecting' of parts of our backend to metaphorically sell cars off the back of a truck... It was one of the few parts of an auto lease financier's chain that didn't have a called-out contract with one of the major players. I suppose this one wasn't entirely useless as we were able to reuse some of the concepts for future integration work.
2. At another shop, we did an integration with a startup that was providing a reasonably related service. Part of the gig was we were going to get something like 10$ for every client signed up. I think the project was a good 3-5 months of 1 Sr, 1-2 normal devs, a BA and QA's time. In the first 12 months after launch I don't even think we got enough to cover a weeks worth of pizza for the team.
3. Was not my team but I saw it happen, one of the above shops also wound up deciding 'Everyone should use the same ORM because cogs in a machine'. This included having a fully in production product port their entire app's NHibernate logic to EF6 on Oracle 11... This did not end well for the project at all, as on top of being a huge timesink to get things 'working', performance tanked and it hurt the project's already heavy maintenance costs.
by teapot7 on 4/6/24, 9:19 AM
This was back when:
- the internet was new and exciting, rather than just part of the background of our lives
- people used video tape recorders
- "multimedia" was a field of its own, and people made a fuss about it
I got a contract to write a program in Macromedia Director (which was what ruled the multimedia roost before an upstart program called "Flash" came along) which would take a number of still pictures and emit them as a short Quicktime movie, with each picture only on screen for a couple of frames. Definitely not the hardest bit of work I've ever done.
What was it for? Someone had had the idea that the best way of getting real estate ads in front of people was to make a 15 or 20 second movie consisting of dozens of static real estate ads, which would be broadcast on TV at the end of... what? Some news or current affairs show I think. Potential homebuyers would tape this on their VCRs and the go through it frame by frame, carefully reading each ad.
As you can imagine, this was before people had much bandwidth, and long before real estate moved online.
By some miracle this actually got aired a couple of times before the idea sunk into oblivion.
by smcameron on 4/6/24, 1:52 AM
by thewileyone on 4/8/24, 2:11 AM
Anyway, got everything and started up. The airline started operating to 2 airports and then after a month realized that it wasn't cost efficient to operate at any of these 5 airports. The cost to just cancel and remove the equipment was USD100,000, not including the cost of setting up in the first place. Total cost blown as USD250,000. Colossal waste of time.
by d--b on 4/5/24, 7:32 PM
by zem on 4/5/24, 9:04 PM
the useless part came about when the company was clearly going down the drain, and the ceo was desperate to find a pivot. he had a friend who was a chip engineer, and said friend had complained to him about how hard and unintuitive EDA tools were to work with. our man gets convinced that the problem is that "these EDA firms hire scientists and mathematicians, but no one who really knows about UI design, unlike CAD companies", and that if we could hook our CAD product up to some open source circuit simulation libraries we could come up with an mvp that would be clearly so much better to use that we could get funded to develop it.
now i usually take the stance of "okay, you're the product guy, tell me what to implement and i'll get it done", but this time i pushed back pretty hard over what a fool's errand this was. but he had his hardware engineer buddy talking into one ear and the "make money fast" shoulder devil talking into the other, and would not listen. so fine, i took a couple of months to play around with CAD fileformat parsers and electronic simulation libraries, got some very basic circuits working and handed over an MVP which of course went precisely nowhere.
by canucker2016 on 4/5/24, 11:03 PM
First time I was programming in the scripting language, but after reading the docs to grok the syntax and standard library apis and a repl to test out code snippets, I was good to go.
I open the script.
If you've ever transferred a CRLF-delimited text file to a UNIX-like OS and back, you know what I saw.
The script alternated between code and blank lines. Someone had committed the code after some tool somewhere along the way did a CRLF->LFLF->CRLFCRLF roundtrip.
And no one decided to bite the bullet and cleanup the mess.
Sigh.
After spending a couple of days to get the script running on test documents and understanding the code flow, I discovered two things:
1 - a coder had inserted a one minute sleep() call delay into the script (so the script's output could be checked?) That coder committed the change which was rolled out into production!
2 - the script had two large if statements, each several hundreds of lines long. There were a handful of differences in the two if statements - took me at least half a day to confirm that there were only a handful of trivial differences.
I removed the sleep call and refactored the two if statements into two function calls with the few variable arguments required and created one function to handle the functionality of those two large if statements.
I also removed all the extraneous blank lines.
In the end:
- reduced the script's line count by 75% (half the lines were blank, consolidated the two large if statements into one function and invoked the function 2x)
- reduced the runtime by one minute per document processed
The company didn't believe me when I mentioned the sleep() call in the script. I had to open the script on the production box and show them the sleep() call.
I committed my refactored script and got assigned to another project.
One year later, I ask how the new script was doing in production.
The people responsible for the daily monitoring of the document processing say that they're still using the old script.
Oh.
That's nice.
I hope they took out the one minute sleep() call at least.
by Sevii on 4/5/24, 5:04 PM
There are a lot of dead ends in software. You get over it after awhile, just keep coding.
by maxslch on 4/6/24, 3:26 PM
I’m gladly out now but it’s a hell I don’t with anyone to go through, even just for experience, it’s exhausting and at the end of the day you can’t even mention that you worked for that X project
May not be every agency but in general how design agencies work is pretty awful compared to freelancing, productized agency concept etc.
Spend hundreds of hours on our own projects also to end up semi dead, due to directors lack of time and willingness to delegate, share ownership.
For those startup projects also it’s not super valuable, they just want you to deliver something they can throw back to their investors and get another round, to eventually sell it and start over, while you as a design contractor - done most of the product thinking, brand and marketing.
Could’ve as well put our own product out like that
by tinycombinator on 4/5/24, 3:09 PM
(Not saying everyone doesn't genuinely contribute to the world, but moreso a propagation of a toxic, externally-based-worth mindset.)
by gedy on 4/5/24, 8:39 PM
by avastmick on 4/6/24, 4:09 AM
We as a team worked super hard and were super proud of what the platform could do. We even won some awards. But due to politics and bureaucracy its capabilities were never used and today the service is a national joke and really only used to logon to government services. It is going to be replaced with something new and shiny.
Now, I look back and think why did I care so much and work so hard. Why was I so naive that it would be used as designed.
by monsecchris on 4/5/24, 7:38 PM
The software for an exascale EU Horizon 2020 supercomputer that never got built.
by deathmonger5000 on 4/7/24, 2:50 PM
Together Gift It solves the problem the way you’d think: with AI. Just kidding. It solves the problem by keeping everything in one place. No more group texts. There are wish lists and everything you’d want around that type of thing. There is also AI.
by purple-leafy on 4/6/24, 4:21 AM
I made a notebook that could be saved as a bookmark. So when you run the bookmark it would reopen the notebook where you left off.
The bookmark was basically a JavaScript executable that saved data to itself and printed its own contents to the screen.
A cross device Quine without a server
by landgenoot on 4/5/24, 7:49 PM
I honestly don't know.
by HeyLaughingBoy on 4/5/24, 2:59 PM
by danbmil99 on 4/6/24, 7:41 PM
by bmitc on 4/6/24, 5:22 AM
by bediger4000 on 4/5/24, 3:35 PM
I was doing some user interface app. Absolutely hopeless. Burning money after blowing your nose in it.
by globalise83 on 4/5/24, 2:36 PM
by Tade0 on 4/6/24, 8:47 AM
Spent half a year there, after which my sub-team's component was removed from scope and the sub-team in question dissolved.
I'm still in touch with most of my squad several years after that, as we had great chemistry, but the project itself reportedly went way over time and budget(despite shrinking the staff to less than half), costing the department that was responsible for it a significant chunk of its budget.
I guess the real use of the project were all the friendships we made along the way.
by mvdtnz on 4/5/24, 7:30 PM
I understand the need to put your best foot forward for a sales opportunity, but there's nothing I hate more than being asked to build something in the lowest-quality way possible in order to throw it away later. I hate hate hate it.
by smokel on 4/5/24, 8:13 PM
by JTyQZSnP3cQGa8B on 4/6/24, 4:57 AM
I was young and naive, but when I bought my first smartphone (HTC in the 2000s), I said to myself "we’re doomed" because the whole company was being rendered useless in front of me. The whole thing could be replaced by a small Android application that I built for myself to learn that new stuff.
10 engineers worked on that for 5 years, and it was thrown in the trash while I rewrote the whole thing in a few weeks.
by throwaway_haha on 4/5/24, 8:41 PM
The software architect of my team was heartbroken because of this. He was fully committed and it was exactly his dream to work on such a product. The last 4 years he was working his ass off and everything went to waste. I still feel bad for him.
by kelnos on 4/5/24, 8:05 PM
It's 2009. After spending 5 years at my first job, I got the opportunity to work for a small (15-person), new (around 6 months old) startup. I jumped at the chance. While I was grateful for my first job (the mentorship and experience turned out to be incredibly valuable), I wasn't really excited about it anymore.
The new gig was going to change higher education. No longer would students carry around several tens of pounds of textbooks. Instead they'd carry around our tablet (we planned to sell a one-screen and two-screen, foldable version). It was fairly large, and supported touch and pen input, so students could highlight and take notes directly in the textbooks. The iPad didn't exist yet, and the idea of pervasive touch screens was still new but exciting.
We all worked so hard on it: 12+ hour days, 5, 6, and sometimes 7 days a week. I would roll into the office around 10am, and on the worst days drive home at 2am, sleep for 5 or 6 hours, and start it all again. I was tech lead for the team that built the middle layers: the UI framework, graphics, and parts of the input stack.
A year passes, and the company has grown to over 200 people. The product is shaping up: there are bugs, of course, and a lot of missing features, but things are going well. We'd been getting a lot of press and had done talks and demos at tech conferences.
And then we (the rank and file) learn that the company can't get digital rights for any useful amount of textbooks ("come back in three years when we renegotiate contracts", the publishers had been telling us), something it's clear to us that the founders knew for a while, but hadn't told us. The first iPad had been released out nine months ago, and after initial skepticism, people were starting to realize how versatile and useful it could be. To top things off, despite the iPad's smaller size and lack of pen input, it cost less than what our tablet (even our one-screen version) would need to cost to just break even.
So that was it. The company laid off half the staff (mostly on the hardware side), pivoted to making iPad apps, and sold off the hardware IP for pennies on the dollar. I lasted a couple more months before I quit, disappointed and disillusioned.
In total it was about 15 months of 70+ hour work weeks, completely useless. I'm sure a lot of people have failed startup stories, but this was the only one that I (in hindsight, perhaps foolishly and naively) poured my heart and soul and time into.
by pknerd on 4/5/24, 9:24 PM
by wojciii on 4/6/24, 8:21 PM
by 999900000999 on 4/5/24, 3:13 PM
Ended up thinking I "figured out" roulette and I'm down about 2k. This isn't a lot of money for me, but I think I'm done with gambling for a while.
Ultimately just take whatever you feel like gambling, bet it on black and leave regardless of the outcome. That'll yield you better results than any system.
I'm not open sourcing the code since I don't want someone else to lose money using it.
It was really fun to learn Golang though. I also had some fun with setting up a build pipeline for the mobile app. I guess I really spent 2k to learn Golang...
by timetraveller26 on 4/5/24, 7:46 PM
I guess if you learn something at least it wasn't entirely useless, but then how do you exact;y measure uselessness?
by EdwardDiego on 4/5/24, 9:57 PM
We licenced a Flash based video player, and I had to make it a) work in general and b) show video adverts before after during the content.
I spent six months learning Actionscript 3, getting the goddamn player code to build and run, (the Ant build script came with the dev's homedir baked in everywhere) came up with a way to unit test it via some monkey patching etc. etc. Files called 'blank-single-frame.flv' were created to work around concurrency bugs deep in the player, etc etc.
We released it and then I saw the "content". Pure garbage. Our content partner had scraped together a desperate collection of free videos like "Frankfurt Airport shareholder update", not the stuff like "Germany's Next Top Model" we'd been promised by the excited executive.
I'm not sure who fucked over who here, but I'm pretty sure there was a very boozy dinner and possibly some cocaine involved in forming this "partnership".
So yeah, six months making a videoplayer work to show adverts around videos no-one wanted.
Can't even justify it based on what I learned cos Flash lol.
by al_borland on 4/6/24, 12:12 AM
No one is actually doing any planning or looking to see if certain work is worth it. Just do all the things, do them all at once, because we can't be bothered to pause for an hour to ask if the juice is worth the squeeze.
by SergeAx on 4/5/24, 10:54 PM
When I was working in such a company, I warned people in the interview that most likely 80% of the code they write will be thrown away. It is surprisingly hard to cope with.
by XCSme on 4/6/24, 12:54 AM
Many times I worked on implementing fixes/performance improvements, spent many hours finding very complex solutions, implementing them, debugging them, testing, improving, etc., only for them to become obsolete immediately after release just because browsers released a new version/API that was 2x better out of the box.
It happens a lot in software development, and I got used to it. I know that everything I develop is ephemeral. It could be used for many years, only a few days or maybe never released.
by IshKebab on 4/5/24, 2:46 PM
Hmmm. I don't know the details here but I have seen some junior devs say "that's never going to happen" as a way of justifying fragile code. And sure, maybe that thing is never going to happen. But if you carry on like that you'll end up with 1000 things that are "never going to happen", and then you'll realise that this guy was actually right.
> So why am I being allocated to work on in such waste of time like it?
Maybe ask your boss instead of us...
by Tainnor on 4/6/24, 7:41 PM
It was usually fun while it lasted but then inevitably it would just be scrapped.
Also, one time my team hired a freelancer but in order to justify him to upper management we had to invent some extra project to implement. It turned out to be all in vain anyway, since the whole team was let go one year later.
by beepbooptheory on 4/5/24, 3:08 PM
Not quite useless, (if it works out) it will probably be of interest to two or three other people.
1. https://gitawonk.com/dickmao/nnhackernews 2. https://gitawonk.com/dickmao/nntwitter
by aeroxis on 4/6/24, 12:38 PM
And that ladies and gentlemen, is the most useless project I’ve worked on. Hey atleast I got paid I guess.
by Scoundreller on 4/5/24, 9:51 PM
by msackmann on 4/5/24, 5:18 PM
by jcbrand on 4/6/24, 7:07 AM
Spending a month on a useless pipeline doesn't seem that bad to me.
by nullserver on 4/7/24, 3:19 PM
The more you commented or liked posts the higher on leader board. Top comments would be automatically highlight.
I kept trying to get word to people in charge that the project would fail. No one would listen.
Went live for 1 day. Every top comment, was on how horrible AT&T was.
Shut down next day. 3 months of work for nothing.
by nomdep on 4/6/24, 3:38 AM
by robofanatic on 4/5/24, 8:41 PM
nobody plays this except me, that too once in a blue moon.
by nirav72 on 4/5/24, 8:30 PM
While it worked, it was still a bit slower than me simply pressing a button on the little wired remote that came with the USB switch.
by RecycledEle on 4/5/24, 3:06 PM
We know that old tools get reused sometimes. Let's say it is 1/3 of the time.
It's a very good expenditure of resources to update this tool now, especially since no pipelines will blow up in real time if errors are made.
It is also possible your boss is testing you. Deciding this is a easte of your time is a good way to get fired.
by thayne on 4/6/24, 3:51 AM
by poulsbohemian on 4/6/24, 2:36 AM
by instagib on 4/5/24, 11:22 PM
The new project would take over once it passed acceptance testing but the bugs of the old system were a daily annoyance to everyone. All of the knowledge learned does not apply to modern tech at all. I wasn’t even directed to do it.
by riizade on 4/6/24, 3:35 AM
Even if this project were a rousing success by the company's definition, it would have ended up a useless chatbot used by very few people but frustrating many more.
Instead, one day we're chatting about the project, and when talking about strategy for implementation, the product manager pushes back on working too early on integrating with the actual API calls to purchase tickets. I thought having a proof-of-concept for the actual functionality would be important, so if we ran into roadblocks we could ask other teams to provide us alternative APIs with enough notice at the beginning of the project rather than the end.
The product manager said that we couldn't afford to do that, because if we did, we'd lose.
I said "what? lose? what do you mean?"
It turns out, our team was one of 3 teams competing to make the same project. Leadership wanted to make 3 fully implemented, separate systems, and the one they liked best would go live, while the others would wither and die.
It also turns out, that our team was way behind because although we had some logic set up for handling edge cases in conversations (not great by any stretch), another team with no backend developers had a beautiful UI concept that handled only exact strings with no room for deviation on the user's part. This UI concept demoed well, of course, so they were the favorites.
It was made clear to me by the team's technical lead that nobody up the management chain (including our team's direct manager) had ever written a line of code before, or knew what the difference was between backend and frontend, or a tech demo that presents well versus a working product, and so wouldn't be able to differentiate a finished product that actually purchases tickets from one that runs entirely on the frontend and talks to nothing (until launch day, of course).
I was already on edge because I had been asked to test API integrations by using my personal credit card to purchase a real flight ticket and refund it because we didn't have test cards or even corporate cards we could use.
So I resigned within a week, and my manager was furious.
This story happened probably more recently than you're thinking.
That was the most useless project I've ever worked on.
by joelcollinsdc on 4/6/24, 3:04 AM
by colechristensen on 4/6/24, 1:54 AM
by tootie on 4/6/24, 2:00 AM
by sage76 on 4/5/24, 8:53 PM
It is EXTREMELY time consuming.
The actual solution manual is already available online.
I might gain an understanding of this field, but I doubt I will ever get an interesting job because of this effort.
Unless I revise this stuff, I will forget most of it in a few years.
Why am I doing this? Idk. Vanity perhaps?
Somebody stop me....
by asdfman123 on 4/6/24, 12:09 AM
I spent years fiddling with that thing. When the layoffs came and I left, they just threw the whole thing in the trash. Completely useless work.
by joezydeco on 4/5/24, 11:25 PM
An entire ecosystem, killed overnight by the iPhone.
by latexr on 4/6/24, 1:54 PM
> So once again, if you're feeling useless, remember that I exist.
You are far from alone.
by rbanffy on 4/6/24, 12:09 PM
https://github.com/rbanffy/selectric-mode
Please enjoy.
by matrix_overload on 4/5/24, 8:04 PM
Been there, seen that. Start looking for other teams internally ASAP.
by bunabhucan on 4/6/24, 3:21 AM
by eigenman on 4/5/24, 10:21 PM
(Queue Rick and Morty butter getting robot meme.)
What is my purpose?
To collect overhead.
Oh my god.
by alphazard on 4/5/24, 9:16 PM
When the first fully machine automated software consultancies post their first cash flow statements, there will still be humans building features that will never be used somewhere else in the same industry.
by blackhaj7 on 4/5/24, 8:03 PM
Not only for job satisfaction but, given the current market and the propensity for layoffs, working on something useful will give you a little more job security
by Intermernet on 4/6/24, 9:11 AM
One of the projects I've worked on involved the installation (thankfully not by my team) of a very expensive, over-engineered rock-fall catch-fence. At the top of a ridge.
by froderick on 4/6/24, 3:05 AM
by hnthrowaway0328 on 4/5/24, 9:41 PM
by resource_waste on 4/5/24, 2:34 PM
Last year I gave customized fidget cubes for christmas, they were so popular I ended up getting requests for them.
Looking for something similar, the tri-color filaments make me want to re-do everything to see how it appears differently.
by projectileboy on 4/6/24, 4:42 PM
by maerF0x0 on 4/5/24, 3:13 PM
by ranger_danger on 4/5/24, 10:37 PM
by sailorganymede on 4/5/24, 8:57 PM
by fschuett on 4/5/24, 10:14 PM
I was employed as a simple office clerk (I had failed to start my own startup and needed any job to get some money at the time) and was told to do the same as everyone else, copying text from the PDF, rewriting the text according to legal guidelines and pasting it into an ArcGIS-based software. Meanwhile the ArcGIS-based software I was supposed to paste into crashed every 30 minutes. So the only way I saw to actually do my job was to write a digitization tool for the PDF documents. Since I had internal access to government documents (which aren't publicly available to anyone of course) I saw it as a way to build my portfolio and put the project on my resume to find a better job afterwards (which I did). I had a good manager who allowed me sudo access (my state used Linux, yay!), so I got to work.
After about 6 months I had a full GUI tool written and digitized about 100 PDF files. The software can digitize from PDF to JSON, then ran a python.wasm VM over the digitized JSON in order to rewrite the texts according to the (constantly changing) legal guidelines. Then I also "hacked" the ArcGIS-based software with a HTTP middleman logging server and found out that it was just submitting XML requests to an endpoint, so I wrote a tool to batch upload the JSON documents directly into the database instead of having to launch ArcGIS. In the end I also wrote a management server that used libgit2 to create diffs between legal document (i.e. creating Grundbuchänderungsmitteilungen via git diff), I am very proud of this because it's cool, although the chance of ever getting official approval was almost zero (but hey I thought it was cool).
I was hoping I could somehow sell my tool and support for it to the government, since the project of land registry digitization has currently taken over 20 years[1] and it's still not finished. Apparently the problem is that some bureaucrats want to make the absolute perfect data model and only release the software once the data model is perfect (which is basically never going to happen). My approach of making an extensible JSON-based model for now to just translate the PDFs - and then adapting it for use-cases later was rejected because, well, I am not a multi-million dollar company and I sadly failed to impress the government with my skills. Long story short, after about 8 months of work I was given rights to my program (even though I wrote it on government payroll, technically) but it was rejected. Oh well, at least I got a nice academic article[2] avoided shooting my brain out from boredom copying and pasting text and also advanced my career somewhat.
In case anyone needs such a tool, it's licensed GPL3 over at https://grundbuch-test.eu/
[1] https://www.grundbuch.eu/nachrichten/
[2] https://geodaesie.info/zfv/zfv-archiv/zfv-147-jahrgang/zfv-2... (page 4)
by allan_s on 4/6/24, 8:42 AM
by diamondfist25 on 4/6/24, 3:35 PM
Using existing solution would’ve taken 2 month and works
by MPSimmons on 4/6/24, 2:08 PM
I've worked with someone like that. He didn't last long a the company.
by web3-is-a-scam on 4/5/24, 9:11 PM
by sodimel on 4/6/24, 11:06 AM
by datatrashfire on 4/6/24, 4:06 AM
by mjcohen on 4/5/24, 10:02 PM
by bkitano19 on 4/6/24, 10:49 AM
by exe34 on 4/5/24, 3:01 PM
by int_19h on 4/6/24, 12:41 AM
Now the company, up until then, was writing everything in C++ (this is mid-00s, and they are doing low-level stuff to boot, so it kinda made sense). However they had trouble finding enough qualified C++ devs. This meshed with some of his ideas of using higher-level approach to parts of the product so that "idiots" (his words) could work on it, while "smart guys" could tackle the low-level issues. He managed to sell it to the rest of the group and to their funding sources, and appointed himself "chief architect".
The logical thing at that point would be to take something like say Java or .NET. But, you see, they were also designed "wrong". So, instead, we would write our own thing, that would be even higher-level, but done "right". I believe something like a quarter of the company was eventually involved in this effort, and he insisted on the rest using the bits this team produced basically as soon as something worked (even if things would break all the time), so product development also ground down nearly to a halt.
I was one of the people working on this boondoggle, although I came in at the middle of it, when it was already kinda sorta working... so long as you didn't look at it wrong. The whole thing was pretty much crutches and duck tape from the bottom up. At the bottom layer it was COM-esque framework for C++ that gave you things like garbage collection and reflection. On top of that sat the remoting layer, complete with its own protocol, proxies/stubs etc (COM, CORBA etc were all "wrong"). On top of that we had a bespoke UI framework, with declarative markup written in XML and widgets bound to data models via its own custom high-level interpreted language that was inspired by XPath adapted to object graphs. On top of all this we had a bunch of libraries similar to .NET & Java stdlibs, to do stuff like filesystem access, SQL queries, and so on - some of it wrapping existing C++ libs, but most written from scratch.
The guy insisted that once we had it all polished, productivity and quality of software produced by the company would skyrocket. In practice, the engineers working on all this were overwhelmed by the requirements, and most of us had no experience doing anything like that, so we learned as we went, with some amusing results. For example, codegen for interface definitions (also written in yet another bespoke language, because of course IDL was "wrong") was done by having a parser emit XML which would then be processed by gnarly XSLT (and, later, XQuery) stylesheets. The garbage collector used cycle detection on top of refcounting, but the former was so slow that releasing an object graph of a few thousand objects took on the order of 10s. The UI framework guys were constantly fighting with layout engine. And so on, and so forth. Amazingly, the "chief architect" managed to keep this scam running for over 2 years before people writing money checks finally paid attention to all the grumbling from the engineers and started to investigate. When they did, it all unraveled very quickly, of course. But in the meantime, a major new release of the company's main product had to be abandoned after spending those 2 years writing it on top of that messy stack - both its stability and its performance were deemed unacceptable. The whole thing was just scrapped.
From the company's perspective, it was certainly the most useless project anyone in it has ever worked on, and it cost a lot in terms of money. On top of that, the company lost quite a few great engineers who were forced to work on this thing, or to use it in product development.
Speaking for myself, though, I've learned a lot working on it. Most of it, in the end, was knowledge of the kind "why doesn't Java / .NET do it that way?", but even that can be useful, or at the very least, interesting. The money was good, too, especially for someone fresh out of college.
by evandale on 4/5/24, 3:23 PM
I've found the decision to "deprecate" tools, especially long established ones, comes along with political shenanigans and especially so when the tool is used by multiple teams with competing interests. One team usually can yell louder than all the other teams and force the new tool to be very specific to their workflow, but because other teams have different workflows the new tool won't work for them. So you're in this limbo of supporting both forever until everyone can agree to switch to the new tool or someone important enough decides to completely turn off the deprecated tool.
by pizlonator on 4/5/24, 3:01 PM
https://m.youtube.com/watch?v=Gij9UQy_JEQ&feature=youtu.be
It’s so slow lmao. 200x right now. But I can run curl and ssh so that’s something.
by donatj on 4/5/24, 2:38 PM
I even took the registration page down after GDPR out of an abundance of caution.
I use it every day and really like it, but every time I have shown it to a friend they just shrug
by sleepingox on 4/5/24, 8:42 PM
In 2023 I helped make an AI powered internal tool for Meta. ...
The IBM one works better still.
by lxglv on 4/5/24, 5:47 PM
I would also encourage that, to be honest. Maybe you learned something, maybe built some relations, maybe made a mental exercise and became a better person.
by democracy on 4/6/24, 5:52 PM
by keepamovin on 4/5/24, 2:34 PM
I’m still under the mistaken impression that I’m useful so I can’t provide any examples.
by lusus_naturae on 4/5/24, 3:50 PM
by plants on 4/6/24, 2:20 AM
Fast forward another month or so and there are six hastily thrown together initiatives in which our organization is contracted to other organizations to “help them out”. The team dynamics were atrocious - our team was met with skepticism as to why we were helping out (was the other team not doing their job well enough?), and people on our team were often clueless on the business subject matter that we were supposed to be consulting on.
I was assigned to one of these initiatives, and upon digging into the business problem, our team realized that the feature importance was completely contained within a single categorical feature in the model. All other features in the model were comparable to uniformly randomly generated features. In the selfish interest of being able to claim that they “solved their problem with ML”, it was clear that either the model developer or the team at large had obscured this fact.
In an effort to save face, the VP kept us on the project, despite the poor relations and lack of useful features to improve the model. We didn’t improve the model and eventually, the VP ended up being “pushed out”. Last I checked, this VP is currently the CEO of a startup that recently raised a $100M seed round.
by crabbone on 4/5/24, 9:03 PM
Today I'm a grunt in a department of a large international company. This department was previously a separate company, but was acquired two years ago. The parent company has very little interest in what our department is doing in general.
But, that's not the most useless part, of course. My boss sucks as a programmer. But, on top of being very bad, he's only worked for this one company where he's today. He has no clue how bad he is because he's never seen anything else. After tasking me with writing some code and not being able to understand it, seeing how I wouldn't use the disastrously bad practices he instituted in his department, he decided to never give me any work that requires writing any code ever again.
It's been close to two years since I've written the last bit of code that went into any of the company's repos :) I've been given tasks that require exclusively painfully boring manual testing. It's even funnier because all those things I'm allegedly testing are, sort of, tested automatically (but automation is so awful that it mostly doesn't work).
I attend every morning meeting (online) and just read the news / Reddit / HN during the meeting. The meetings consist of my boss enjoying himself talk for about an hour. Then me and the other guy tell him that we have nothing to add and wish him a pleasant day.
I haven't opened my work email for months :) The last time I did so was because HR sent some form I had to sign, and they found me in Slack to tell that they've been waiting for my signature for far too long.
To add to the pile: the product our department works on is awful in more ways than I can count. It's hard to decide which part of it is worst, but to give you an example: in one of the recent features the customer asked for, instead of implementing this feature the two developers assigned to the task produced two MS Word documents, one around 10 pages long another one closing on 90. These two documents detailed a DIY process of implementing this feature (by the customer), mostly consisting of shell commands interspersed with terse and vague descriptions. Needles to say there was never any kind of plan for how the feature should be implemented. Product management is, basically, nonexistent where I work.
And then I was asked if I can test it... :D In, like... a few days. Because the mothership company requires publishing a release a month, and that feature has to be in the next release.
----
Hope you feel better about your plight now :)
by cess11 on 4/6/24, 3:54 PM
I suspect that explains some of the examples in the thread.
Sometimes you also put people on busywork so you don't have to fire them, because you don't want them going to your competitors or have to go through the drudgery of hiring replacements later on when the times have changed again.
Once me and my two developer colleagues were put on building an extension for an existing SaaS-product, the assumption from the higher-ups were that another customer segment that is also subsidised by the government would be profitable to sell the product to. One board member with background in Google couldn't keep his fingers out of it so it boiled down to putting two people who had never built software with static typing or the regular mess of web client tooling suddenly having to use TypeScript and a bulky UI lib based on Vue.
We spent four months, one 'man-year', me trying to both put out fires in production and figure out how we were to tack on TS onto the horrifying PHP application we had and also teach my teammates how to approach problem solving with static typing and 'reactive' (or whatever the kids call Vue-related frameworks). In the end we managed one view with a decent search form that sent a string and rendered some rows with pagination. At that time fires in production started to threaten cash flow so it got shelved.
It was a crappy idea to begin with, the new market had very different characteristics and actors in it many hard demands that we would have needed to spend quite some time, probably upwards a year in a setting my colleagues were comfortable with rather than TypeScript. Having an almost trivial integration with the tax authority to ease using that subsidy didn't change that, it turned out.
by aidantomcy on 4/6/24, 1:43 AM
by mrbonner on 4/6/24, 12:19 AM
I was pretty bored to dead but it was some sort a promote project for a few people including myself. I couldn't stand it at some point and ask my skip manager to help. My skip pulled me out and said that I didn't have to spend time in this shit show. But it did hurt my promotion case for what it's worth.
by ajot on 4/5/24, 10:50 PM
by rahu_ on 4/8/24, 6:38 PM
But yeah its so useless
by theusus on 4/6/24, 10:07 AM
by giancarlostoro on 4/6/24, 1:08 AM
A former employer had a client who had us re-write the same project 5 times. We kept each project repo backed up, because we were able to re-use pieces when the next re-write rolled around. Eventually they scrapped the project. The client printed money and wiped their ass with it like it was nothing. A lot of stress went into it for nothing. The project itself was a horror story. Maybe someday I'll write a blog about it.
Then there's the one where someone high up wouldn't pay ten grand for a license, so he paid a senior dev to recreate the same feature set. Took this dev over a year, so over $100k+ for a amateur (by comparison) offshoot that is maybe as reliable? Instead of just buying a license for 10 grand (I am shifting the amounts on purpose, it may have been higher ;).
Then there was the project where they hired a ton of Jr devs except like four (30+ devs) and charged senior rates for all of them. They refused to hire actual seniors, questionable hiring practices all around. The front-end folks were doing hacks that give me nightmares, because they had to (proprietary front-end framework). When the app hit the app store I saw all the negative reviews for it and was not surprised.
Then there was the project I was what I call full-stack developer plus. It involved a web front-end (I worked on the back-end, and the front-end) to a daemon (I worked on this as well) and a debian package, as well as some external APIs. It also involved mDNS / Avahi. The idea was we would install this package on a OS we customized, then we would know we could run tests on this OS. I touched every major piece of that project, and was holding the weight of the other two developers because one was a junior, the other was some weird data science guy who wrote some of the worst code we ever saw.
Edit: I forgot one key piece, I also wrote shell scripts to automate installing and provisioning this OS on Virtual Box instances, which would also check the network for this VM to be online and then install my Debian package.
It also had noVNC (a web based VNC client) so we could remotely see these systems with ease.
We had this thing running like a train by the time I was at my peak with the project, and one QA guy said one thing wasn't working, and the manager said we'll stop using it until its fixed. That was the death of that project. I also kind of left the company after all the burn out of basically carrying too much weight. It was one of my worst projects I worked on because of all the weight in my shoulders, but it was also one of the most fascinating ones.
Then there are more recent examples I dare not utter since it was within the last year at my former employer (I'm looking for work HN ;).
by convivialdingo on 4/5/24, 3:32 PM
Our job was to implement a crypto storage system for an OSS database where each user only had access to data based on their own authentication keys. Only minimal changes to the DB allowed, so we made our own PAM module to handle the authentication and key management.
We implemented a POSIX layer that intercepted file ops and backing-stored and encrypted the blocks into S3 containers. Files/blocks that got purged would automatically pull from S3.
One month into the project the major software company decided they didn’t want it. But we still had the contract and had to fulfill it for six more months.
So yeah, six months of code in the trash. But I learned a lot of S3, AWS and wrote a toy compiler with the spare time. Since nobody cared I was able to try a lot of new solutions, test out different languages and tools. Basically experimented with everything out there.
Delivered my code on the day of the deadline. Tested, worked, archived.
by yosito on 4/6/24, 4:34 AM
by RGamma on 4/8/24, 4:42 PM
by garbanz0 on 4/5/24, 7:58 PM
by llmblockchain on 4/5/24, 11:55 PM
by mustashio on 4/5/24, 8:11 PM
by j2020 on 4/9/24, 4:48 PM
by anacrolix on 4/6/24, 4:36 AM
by lakomen on 4/6/24, 9:42 AM
by findingMeaning on 4/6/24, 12:26 AM
by snapetom on 4/5/24, 11:40 PM
A couple of years ago, our sister company asked us to support them (aka do the work for them) in an ML project with a vendor. We researched several in the industry and presented our choices. They rejected all of them and selected this fairly unknown one. This vendor was chosen without seeing a demo or interviewing alleged customers.
Immediately, this vendor set off red flags, but our CEO was too chicken shit to push back. (No, I know what you're thinking. Our CEO wasn't in on it. He's too chicken shit and stupid.) I naively came into the company around this time and immediately set up discussions to explain our data and its sources. They didn't care. They just wanted the data. They threw fits when we brought up that we weren't comfortable with releasing financial and confidential data. They were up in arms about security requirements. We had to fly out to their headquarters for a demo, and they only offered to show us a canned demo. They kept blaming my company at every opportunity including to the point of switching out meeting notes and documents for signature.
The running theory is that they were out of money, and were desperate for an exit strategy. They needed us to show off to potential buyers and investors. My theory was that they were only in it to sue us and get a settlement. And of course, decision makers at the sister company were in on the scam.
Finally, our parent company finally started seeing through the scam, but we still had to cover our asses and meet certain deliverables. I created an epic that basically was sending data through Kafka to the vendor. And of course, they wanted it yesterday.
I told the team, "This is all bullshit. They [the vendor] do not have the expertise to examine the data. They're not even going to look at it. Your work is going to be thrown away when this finally gets shut down. We just need to pipe data there. I don't care how messed up and dirty it is, don't bother testing."
Sure enough, a little while later, the parent company shut down the project. I gleefully killed the pipe when word came down. The kicker was that the vendor wasn't officially notified for another month.
During this time, did they ask us why the pipe was killed? Of course not.
by majikandy on 4/5/24, 10:27 PM
by anon115 on 4/5/24, 8:05 PM
by Aloha on 4/5/24, 10:38 PM
I've also implemented hours of design work for a feature the customer later decided they didnt want.
Oh well, I get paid the same anyhow.
by culopatin on 4/5/24, 10:38 PM
by sitzkrieg on 4/5/24, 10:44 PM
by nkmnz on 4/6/24, 10:21 AM
by frrlpp on 4/6/24, 1:18 AM
by leoh on 4/5/24, 10:07 PM
by shafyy on 4/5/24, 8:49 PM
by dwagnerkc on 4/5/24, 8:24 PM
Me (2 months later): Here it is.
Them:
by rrr_oh_man on 4/5/24, 7:37 PM
by psyclobe on 4/6/24, 8:40 PM
by jl6 on 4/6/24, 4:22 PM
This translation and migration project had been going for years before I got involved. It had been going for so long that none of the original staff that commissioned it or designed it were still around. Needless to say, the people that wrote the original actuarial programs were long departed, some retired, some no longer alive.
I inherited the task of adapting a handful of programs to run in a test environment. There was absolutely no documentation, of either the code or the programming system. We had to guess and run experiments on what particular bits of syntax did. As well as creating a like-for-like replica of the original system, we also had to fix various known issues (the promise of fixing the issues was how the project got funded by the business; the simultaneous migration to the new platform was how the project got approved by the enterprise architects). There had been attempts at writing specs for what should happen - but even the actuaries who supposedly owned the outputs of these programs didn't understand them. There were furious, intractable debates about what parts should be fixed, and what parts should remain the same. One camp argued that nothing should be fixed, because then they would have to explain to the auditors/regulators why the previous calculations hadn't been right. Mass confusion reigned, staff churned, months dragged on. Nobody thought the project was a good idea any more, but the project was uncancellable because these fixes were viewed as a mandatory resolution to a longstanding risk that the execs had on their all-powerful risk register.
The project eventually got to a state where all the new programs at least ran without errors and produced some output. I had left the project by this point, but I was still in a position where I could observe the terrible consequences.
A new financial year arrived, and it was declared that This Is It. The new programs were going live, no matter what. Of course, a big switchover was too risky, so they kept the old system running in parallel, to do various live proving tests. Some people were heroes for finally getting the project over the line. Other people were immediately drafted onto a new project: a project to fix all the problems that the previous project had deferred.
History repeated itself. The new "fix" project dragged on, and on, and on. The actuaries kept running tests comparing old and new outputs. Horrifyingly expensive consultants were brought in to complete expert analysis. Some genius exec eventually concluded that since the original project had closed, the risk must have been resolved. The "fix" project slowed, staff dissipated, and eventually it was placed on a kind of indefinite hold without ever being properly closed down.
I next encountered this a few years later, when the "new" programming environment was due to be migrated to a still-newer platform. A whole lot of money was spent migrating these Very Important live programs. Of course, the ancient system was still running, and nobody was using the outputs of the new system (but nobody would categorically sign off that they would never be used). Still, they got migrated over to the new new platform, where they ran happily for several years, consuming hours of batch time and producing hundreds of gigabytes of output each month, all unused. Eventually, they were quietly (but expensively) decommissioned .
Millions of dollars spent, man-decades of time expended. Absolutely no useful result.
Last I heard, the ancient programs were still running, with all their original flaws, and since they were concerned with long-term pension plans, they will need to keep running for several decades to come, until all the policyholders are dead.
by dmje on 4/6/24, 2:46 PM
We flew over to see him with a creative proposal for the site, got the go-ahead, and spent the next 6 months creating and building. We started to get content for the site, via his "team" (a student just out of college, nice guy but totally inexperienced in ...anything much).
As we got to the go-live date it became clear that things (as ever) were going to slip on the content side of things. The head guy was extremely meticulous, and the site contained a lot of video content - everything was shot at the highest quality, and there were maybe 300 videos to do, plus lots of photographs for each item, plus text content which needed to be researched as well.
We'd stressed all along (as we always, always do...) that content is almost always the first thing that causes bottlenecks in our line of work - we hit all our deadlines, but the content was just excruciatingly slow to extract. Nothing new for us, but we then went back to the client and suggested that rather than waiting for everything to be in place he roll out the site with all the content we had (about 25%) and basically go live - then iterate as more content arrived. In this particular context this makes perfect sense - as individual items were completed we could have published them, they could have done some PR about each one, nice "trickle content" to keep the SEO and social media gods happy.
But: the head guy was not of the "go live and iterate" mindset ...at all. We finished all the design and dev work, and a year went by. I emailed the "team" guy on a regular basis, pushing for the site to go live. Round about now it turned out that everyone on the staff was absolutely terrified of head guy - if he said jump, they all said how high, and absolutely no-one on the client side was prepared to push him at all.
Another 6 months went by, and next time I emailed a totally different person who knew nothing about the project answered the email. Turns out the entire team had been replaced - so we started from scratch, trained people up on content editing, kicked off project meetings again... and then nothing.
This started a cycle that basically went on for ...8 years :-/
We'd work on the thing for a bit, the team would change, we'd re-train, content would trickle in - rinse and repeat.
Obviously, all the energy and enthusiasm had gone by this time, the original design and build needed some serious refreshing anyway, and all the original project aims had sort of gone out the window in the intervening years.
After 9 years, we got dumped, and a new guy came on board to deliver the site. Luckily we had solid contractual stuff in place, so we billed our last 20% and walked away.
2 years later I noticed that the site had finally gone live - a complete rebuild, a complete new redesign. And, I have to say - with some slightly bitter pleasure - it's really terrible :-)
I have bumped into 2 more types of exactly head guy's mentality over the past 25 years working in my area - they all share the same mentality: incredibly bright self made people who have earned a wad of cash, but with that same sense of entitlement which makes them completely unable to take on board anything an external expert brings to the table. I can now spot them from a mile off: they may be extremely rich and on the face of it excellent people to do work for, but f** that, when this particular personal klaxon goes off I now just say no...
by abcdefgunit on 4/6/24, 2:03 AM
by neonlights84 on 4/6/24, 1:53 AM
During my interview, I expressed skepticism in their long-term prospects -- I questioned whether the air filtration market would continue to grow in the post-COVID era... and they were very bullish about their outlook. Their argument was actually very convincing -- they were preparing to kick off development of a new product that was intended to address ongoing air filtration issues that were well known before COVID. Multiple American states were drafting legislation mandating the use of these products, so the market opportunity was immediate and growing.
After rejecting their initial offer, they raised the offer and I hesitantly accepted.
Shortly after joining, I set up a product data management system that worked really well, and the other engineers (even the grey-beard) quickly adopted it. I'm very proud of the work I did on that project, and it only took me 2 months to design and implement.
The next project ate up 2 years of my life. I was tasked with designing a medical smoke evacuator. Medical smoke evacuators had been around for almost 20 years at that point - there were numerous patents that were about to expire, so we didn't have to reinvent the wheel.
Our company founder had started his firm tinkering in a garage. He had no formal background in engineering or business management, and got lucky with the pandemic. As the company grew, he started spending ridiculous sums of money on a distributed sales and marketing team, many of whom he poached from competitors. On the engineering side, he converted multiple outside consultants into full-time employees.
Despite the incredible talent flowing into the company, our founder had no respect for the opinions of his employees. He had to have final say in all decisions, and his judgments always changed at the most inopportune time.
I built multiple functional prototypes of a benchtop smoke evacuator, each about the size of desktop computer. With some finishing touches, it could have been a hit. It worked really well.
Our founder shitcanned it, deciding that we needed to design an upright wheeled smoke evacuator instead. This ballooned the size and cost of the product - it had to be stable while supporting an articulating intake hose. Additionally, it had to have a huge touchscreen display, to show various air quality measurements (that very few customers actually needed). Lastly, it had to use a particular quiet (but somewhat underpowered) fan motor that he had already been ordered in large quantities.
At this point we only had 8 months left to develop a tradeshow-ready prototype. In the medical world, 2 years is not an uncommon development timeframe. So I worked my ass off.
Despite numerous obstacles (especially in wrangling with vendors and our electrical/software team), I managed to get a beautiful prototype ready and delivered to the tradeshow. Nestled among our older products, my product was the star of our show!
Post-tradeshow, I continued working on improving the design for production. I cranked out at least 60 drawings, got quotes from vendors, sent the quotes to our CFO for purchase approval. And waited. And waited. Weeks went by without action.
Behind the scenes, our company was starving for cashflow... the medical market was in a crunch, as hospitals had overspent during the pandemic. My interview market speculations a couple years prior had come true. Several members of our sales and marketing team were let go, along with one of my engineering coworkers. To stem the tide, our executives decided to go through another round of funding with our original investors. It was during this funding round that I found myself waiting for purchase orders to be sent.
Then we got our funding... in the worst way possible. The investing group got a majority share, and they moved immediately to push the founding CEO out (and who could blame them - the guy was a hack)! The consultants came in, hard questions got asked. And then a few days later my engineering VP told me that all NPD projects had been axed by the new CEO, including my smoke evacuator. My VP privately warned my team that we needed to start looking for... "other options".
A week later, I got laid off along with a coworker and our engineering VP. Just a couple weeks before I got married. Luckily, I got multiple interviews lined up in short order and was only unemployed for a short time.
So that was the most useless project I've ever worked on. Doomed from the start, despite my best efforts.
by bensilbermouse on 4/6/24, 1:21 AM
by mozempthrowaway on 4/5/24, 9:56 PM
by underdeserver on 4/5/24, 10:42 PM