18 month project is winding down. I suspect it will have 1 use in the next 4 years we are supporting it.
The tool is basically a copy of the S3 browser, only shittier. The license for the S3 browser is only 20 bucks btw.
Most demotivating thing as a programmer: knowing your project will never be used
I think of it like a rite of passage nowadays. I remember how badly it would affect me when I started out and I can see how hard it hits juniors and mid-levei developers nowadays, it’s one of the biggest threats to morale in a team.
It sucks because we watched this whole train wreck play out in slow motion.
We told our managers from the beginning it was a waste of time and that we should focus on the more important project that will depreciate this one anyway.
I built the tool they wanted, within the constraints of our corporate network configuration, and it worked really well. But it required the customer to change one thing about their workflow, which would require certification.
So they slowly scoped it back and back until it does basically nothing.
But even though the app does nothing and has no users, I still had to generate all the documents and artifacts and recovery plans etc. I wish sometimes that I would have gotten my degree in civil engineering or something more real.
The German government has decided that starting on October 1st of this year, they don’t want energy providers who want to call up another energy provider to just google the other company and use that number. They want an entire new system of message exchange for the sake of transmitting data like a company’s address and phone number directly to all it’s market buddies.
I’m part of the team who had to build that shit within the last 4 months or so. It’s a neat project and everyone gained knowledge in AWS cloud stuff, but realistically, every one of our customers will use the system exactly once (as required by the government) and then never again.
Could it be used as the basis for more advanced information exchange among those companies?
They already have a very advanced system to transfer actually valuable data (when/how much power needs to go to the grid, end user data, redispatch of solar panels etc etc). We’ve actually taken that complex and valid system and clipped its wings to do something way less useful :')
I’m in that boat now 😭
Except I built the app from the ground up and I was super proud of it. I learned so much about PKI and S3 and made a better system for our suppliers, engineers, and customers.
The fatal flaw was that changing supplier workflows was a complete non starter. It didn’t matter that I reduced the complexity of supplier involvement and made it easier for them to work with us, the old supplier portal HAD to be their front end, which has no api to interact with (one of the drivers for this project).
Without the direct supplier pipeline, the tool is worse than useless. Now we need a manual process to receive, validate, and sign software before moving it to the new system. Then to deliver it requires another manual process in reverse.
I made everyone involved life worse.
Not in IT, unfortunately. I work a lot in public projects and the underlying problem is pretty much always politics, not technology.
One project is very simple, in theory. You authorize yourself with BundID, type in some data, these are used to query one agency, you add some more data and then it’s sent to another agency. In a sane world, that would mean 5 parties involved. However, we are currently at 10, just for one of the 16 states. Hardly any of that is a technical necessity, it’s just political will and incompetence.
I once worked on an interface for wifi network selection. The marketing people thought that the scan went too fast and that people would believe in consequence that it wasn’t powerful enough. So they asked me to add an artificial delay (multiple seconds) before showing the results.
Instead I’d probably take multiple measurements some hundred milliseconds apart and do a basic statistical analysis (average as “main result”, but also lowest percentile, highest percentile and median). That way I don’t feel dirty for tricking the customer.
It wasn’t the most fun part of the project, and it was targeted at non-moving home devices so a more powerful wifi logic wasn’t really needed. In the rare scenario where the customer didn’t see its wifi network, he/she could just refresh the list.
I basically just added an ugly timer and moved on more important things.
non-moving home devices
There still is a use case - not that common in America but very common in (not only Europe’s) metropolitan areas:
If the devices are located in a dense urban residential area (say Berlin Gropiusstadt in the 11th of 20 floors) you have a lot of neighbors with wifi, and - at least on 2.5GHz - roughly a third of their wifis will use the same or overlapping frequency range. In the evening, when everyone and her dog streams the newest Season of Bridgerton those will send relatively short bursts for buffering the next five-ish(?) minutes.
This of course interferes with your measurement if you happen to measure at exactly the same time, so having multiple samples instead and providing an aggregated value is - for this scenario - more helpful.
OTOH: it all depends on the use case of those appliances - if you don’t have competitive gamers who wonder why they sometimes lag in your valued customer list, that’s a non issue (and if they actual were competitive gamers, they should use an ethernet/fiber cable instead of wifi, obviously).
And you probably did not get that much time allocated to add the delay, so going with another variant could get you in trouble if it’s taking too long.
A design professor actually proposed this idea to us. Make the user feel how the computer is working, so they can appreciate the result more.
Take the same approach with tickets: Finish one in 10 minutes? You just get a new one. Finish the same one in 2 days, and claim “Pff, that was a tough one, but I did it!” - Makes the Product Owner think the Developer is working, and appreciates the result way more
Not of they ask Jim about it and Jim stabs you in the back and says nah this should take an hour max dunno what Ron is doing.
Years ago I joined a startup as a junior developer to work on a patented security application with SSL certificates and stuff. They had been working on it for 5 years, 10 engineers and 2 guys with PhDs, it was serious business. The thing was a prototype but it was fun to work with them. I was porting their app on Mac OS X too because the founders were sure that it would also be a success on a Mac.
Then one day I bought a HTC Desire to try this Android thing since I already knew Java. After a few tutorials, I realized that I could clone their whole app in 100 lines of code thanks to the Android API in less than a week, but it would be better, safer, and portable. I knew we were doomed. They closed the company a few months after because no one wanted their application.
My company had kind of the opposite case. They had a fully functioning system, but the C suites of the client absolutely had to have a native iOS monitoring app, so they could monitor everything on their iPhones, while all their workers had Androids.
So they rebuilt everything for iOS, added all the useless features they wanted, got paid … and then had like two downloads.
ez! I work for a company that builds a SaaS end to end product.
Myself and my coworker were asked to build exports for a single client. They were json exports. To start the client would take weeks/months to get back to us, their spec was very vague and their exports had some really complex logic to sort data. We’d been going back and forth with them for almost a year when they said we should give it to them “as is”. They now are the proud owners of 2 complex broken exporters.