Question for the Software Engineers, with a rant.

Markola

Thinks s/he gets paid by the post
Joined
Nov 24, 2013
Messages
4,742
Location
Twin Cities
The Digital Age brings many lifestyle benefits, and incredible, even magical powers to our fingertips. That said, technology can also be a pain in you-know-what. Life online is a thicket of friction, starting with logging into anything. After 30 years of the internet passwords/passkeys remain nothing but headaches. Every user on earth prays that there is special place in Hell reserved for the inventor of captchas. Despite these hassles, we face ever more sophisticated hack threats, only made worse by the most profound technological change yet: AI.

This year, I have been especially plagued by another bewildering trend, which is financial apps that I rely on suddenly going haywire.

I used Personal Capital for years to aggregate all my accounts into a series of useful dashboards. Over the past year or so, the company changed itself to Empower, and began rolling out a series of “enhancements” that have completely botched the product. My Vanguard accounts simply will not stay connected, but other ones do. Some of my assets show only on certain pages. The once-clean and useful Retirement Planner was fumbled and I no longer trust it.

Same thing at You Need A Budget (YNAB). They had a simple, terrific budgeting product, which I relied on for years. Recently, they unexpectedly rolled out wildly more complex features that only an accountant could love, forcing users to relearn the platform. However, my credit cards have been failing to link, causing me all kinds of hassle. With much unwanted and unshared fanfare, they added miles of spaghetti code to the system and now things just don’t work.

Now I’m reading here that folks have similar complaints about recent and non-useful “enhancements” to Fidelity’s Full View page.

I’m not alone, because there are Reddit forums for all of the above, where thousands of frustrated users howl into the void using crude language that we should not use here.

Dear software engineers: WHAT IS THE DEAL? What are the dynamics inside one of these companies that lead to messing with stuff? I get the need to stay current and secure, but unnecessary changes are a true scourge of the digital age. Is it that expensive engineering teams must prove their worth by constantly fiddling and “enhancing” rather than leaving well enough alone? Is it that engineers don’t use the products themselves, so aren’t in touch with customer needs? What’s it like to work on these products? What is the incentive structure to constantly break things and tinker? Why don’t teams fix bugs and problems before they layer on entirely new ones? Why can’t companies stop the torture?
 
Last edited:
In my former company, and probably many others, programmers who had written the software and had been working at the company for years were replaced by outsourced contractors from a certain foreign country.

While there is plenty of talent outside the USA, the contractor companies would rotate in mediocre people for three or six month stints. They had to be constantly trained on the systems and were gone before they could understand how things work.

Also, just guessing, I heard that AI can generate 80% or 80% of the code but leaves bugs to be fixed.
 
Also, just guessing, I heard that AI can generate 80% or 80% of the code but leaves bugs to be fixed.
I'm sure that's true, but AI is still eliminating a lot of legacy software jobs, and will only get better (less than 20% bugs)?
 
If given the choice, I use a PC because my old eyes appreciate my text settings. However, I think many do everything with a cell phone. True or not, I tend to blame a lot of changes on vendors trying to accommodate all screen sizes, even tiny, with the same or similar operational experience, but now, optimized for phone size screens.
 
My customers don't want something that just works. They have heard all about shiny new toys that work on phones, etc. They want something new with bells and whistles, but don't want to pay for it. More than I like I am losing to a slick powerpoint presentation and vaporware. Clients come back when they realize the shiny thing does not work, but much is lost.

For personal stuff I think it is generational. My kids use their phones for everything and converting old software to mobile is not easy. I despise using my phone. Mobile means laptop to me. Don't care about gamification or fancy gui or bloatware. Just want something simple that works. That is why we are still on message boards :)
 
Broken account links are due in large part to changes in account interfaces. Most aggregators used to use a fancy form of screen scraping (which breaks when the source changes their screens). For security (and liability) reasons, the "improvement" was to outsource link verification to Plaid, FinCity, et. al. with different sources using different verifiers of varying stability.

A lot of institutions are creating APIs for access... which led Fidelity to create their own and charge big $$$ to use it. Until the industry coagulates onto a standard interface there are going broken links.

Lastly, to rant a bit, the world wide trend of using garbage open source modules for EVERYTHING means developers don't develop anymore... they integrate untested garbage that they find on GitHub. Agile software development methods result in software that barely gets through unit test (the guy who wrote it clicking on it a couple of times) before uploading for production. We used to have (waterfall development) unit test followed by a formal Function Verification Test followed by an end to end System Verification Test. All of my former System Verification Test team has been moved to Level 3 customer support. The customer is the tester.
 
The deal is that one institution changes security posture in some way and it takes time for the little guys to adjust (or not).

We want stasis, but they deliver accommodations.
 
Unfortunately, frustrating processes that make no sense for the consumer have become the norm and it’s not limited to I.T. Making things worse is that you can rarely find a person to talk to and even if you do, said person is not empowered to do anything about it.

Speaking of software development, my favorite professor back in the 80s taught us that there’s nothing more important than usability. Doesn’t matter how technically advanced your software may be if it’s not intuitive and easy to use. And that was back when we were working with 256k of RAM!
 
Totally understand OP's gripe - UI changes drive me crazy - the TSP one broke many things and took months to fix and/or figure out (I left TSP as fast as possible when rotating out of any government employment), the VG one just added menu layers to get an overall view. My new Fidelity account makes me bury down into menus a well. My simple credit union did a UI change and made the font *even smaller on a computer screen* and no way to change it outside of using the web browser settings (the amount of white space is over 50% with the existing font - just crazy from a computer-human interface design)....and they make arbitrary decisions regarding what will be ported to the new database and front-end with regard to historical data. Almost every one of those companies have another menu item where you see historical data as a pdf or dangling file tracking to the previous system format. I laugh out loud with all of the predictions about AI as they have decided to lop off a lot of good data with these decisions so getting access to that data for algorithm development will be *very* expensive....

So, yeah - craptastic is the word for all of this. I don't use my phone for any financial transactions - I consider it a very risky single point of failure on so many levels.....
 
I was a software guy some, ahem, some time ago. I recall that in the old days things were still bad in this regard, but possibly not as bad? We had a dedicated quality assurance (testing) team for each product who pounded on things hard. I recall thinking that if we unleashed our QA team on any already-shipped product, a stream of bug reports would quickly follow.

I agree with the person that said this isn't tied to just software. If you haven't heard one of the more recently introduced terms in our ever-evolving language, it's "Enshittification", which encapsulates a lot of this sort of thing.

I think it comes down to money, and in a way to the specifics of our economic system. There's not much reward for making really high quality products that last a long time, are designed to be user-repairable, and have been carefully thought through from the user perspective.

It's the user/consumer perspective thing that particularly gets me, and yes, this is all sort of an "old person ranting" type of thread, isn't it?
I'll be taking a couple of trips over the next couple of years, booking directly with two different airlines I've not flown on before. In both cases just the process of getting a login, frequent flier number, adding passport and KTN etc data, then installing their app --- because you have a seperate app for each and every airline you might ever want to fly on --- this was just yesterday. Ended up taking a couple of swear-word-inducing hours for something that should have maybe taken 10 minutes if they had ever sent someone on staff through the customer process, ran into the obvious bone-head stuff and FIXED IT.
 
Unfortunately, frustrating processes that make no sense for the consumer have become the norm and it’s not limited to I.T. Making things worse is that you can rarely find a person to talk to and even if you do, said person is not empowered to do anything about it.
+1000. Wait until you try to settle an estate for a relative.

Customer support has become 'what's the least we can get away with, so we can eliminate as many jobs as possible, and retain only those who will work for less than market value (e.g. an empowered CSR).' BUT in fairness, customers have largely voted out customer support with their purchasing choices. Customer support is by no means free...
 
For personal stuff I think it is generational. My kids use their phones for everything and converting old software to mobile is not easy. I despise using my phone. Mobile means laptop to me.
Something that happened to me yesterday on my desktop (windows) PC was that I filled out a fairly detailed form, clicked "confirm" or "ok" or whatever, and then it spun its wheels for a while and then put me right back at the same filled-out form. No error, no way to do anything else but repeat that or hit the back button. There was simply no way to save the info I had filled in (I checked).

So I used their app on my phone instead, exact same form to fill out in the same way but now it worked easily.
Conclusion: they're really focused on mobile. I guess this is a trick I'll keep in mind from now on, is if I have any problem to try it via a mobile app alternative.

FWIW, I found it a lot more tedious to use a soft keyboard on my phone screen, the keyboard taking up 40% or so of the screen space. I had to navigate through drop downs where my country (United States) and my state (WA) were near the bottom, and I could only see maybe 3 entries in the drop-down. Copy/paste is more difficult that way too.
So much easier on a real computer, if they would only test their crapware in that environment.
 
In my former company, and probably many others, programmers who had written the software and had been working at the company for years were replaced by outsourced contractors from a certain foreign country.

While there is plenty of talent outside the USA, the contractor companies would rotate in mediocre people for three or six month stints. They had to be constantly trained on the systems and were gone before they could understand how things work.

Also, just guessing, I heard that AI can generate 80% or 80% of the code but leaves bugs to be fixed.

Yep. Its much cheaper to do it elsewhere and deal with the quality issues, they said.

These folks are brilliant over there. They work for pennies on the dollar and understand nothing about how we do business in this country.

I listened to this nonsense as we were sending stuff there.
 
I agree with the sentiment of the OP, but not the cause; software engineers are not the problem.

The problem is that businesses have alterior, self competing, and conflicting goals (they have their heads up somewhere unhelpful).

One use case that should probably be forced by legislation is the ability to get a machine readable (not just machine printable) statement. The customer should not have to perform different gymnastics at each financial institution to get their transaction details in a format that allows an audit by a separate system.

The frustration of changing things for seemingly no good reason gets me too. But they probably do have a good reason sometimes. It's just how much do they weigh the disruption to customers? Think about the grocery store rearranging the products. Why!?! Well, they try different things to see how much more profitable they can make a store. And each store's customer set is different; what works in one place might not work in another. So they tweak the arrangements and infuriate some of us, but they probably don't give enough weight to how annoyed they made us.
 
Last edited:
The golden age was when programmer analysts handled the entire lifecycle themselves. When the first business analyst showed up, followed by dedicated testers, I knew the future was getting less bright, and I was right.
Then came non-technical managers who didn’t really understand the work.
Later, those managers outsourced as much as they could in the name of cost savings. Years afterward, the company realized the savings never materialized. The projects took longer, and I ended up rewriting and fixing much of the outsourced work anyway.
After that, I found easy work retrieving data with SQL per internal company requests, and I didn't care anymore. I retired after that.
 
So I used their app on my phone instead, exact same form to fill out in the same way but now it worked easily.
Conclusion: they're really focused on mobile. I guess this is a trick I'll keep in mind from now on, is if I have any problem to try it via a mobile app alternative.
Definitely agree. Just had that situation today, and reverted to mobile. It's especially true if the process requires a photo to be attached.
So much easier on a real computer, if they would only test their crapware in that environment.
+1
The golden age was when programmer analysts handled the entire lifecycle themselves. When the first business analyst showed up, followed by dedicated testers, I knew the future was getting less bright, and I was right.
Then came non-technical managers who didn’t really understand the work.
Later, those managers outsourced as much as they could in the name of cost savings. Years afterward, the company realized the savings never materialized. The projects took longer, and I ended up rewriting and fixing much of the outsourced work anyway.
You just described my career! We found we got much better code when the programmers/developers supported it also. Then "specialization" happened, combined with outsourcing, which made it impossible.
 
Another problem is that you have to give product teams something to do - both PMs and engineers. Otherwise, how do they justify their existence?

I used to joke that MS Office moves the ribbon from the top of the app to the side every 3 years or so. This way the PM/engineers have something to do and more importantly, have something to write on their performance reviews. Not sure if it’s true anymore, but it was at some point.

Right now, I’m less than impressed with the latest Apple OS updates. The new UI is not great, takes up more space, etc, and in some cases, adds extra steps to get something done (aka, viewing open tabs in Safari on an iPhone).

Why break something that wasn’t broken?
 
Bug fixing is more difficult than changing the user interface. Since current AI generates buggy code, we're on the verge of either even more bugs or finally concentrating human effort on debugging.
 
Sometimes people don't want bugs fixed. Many years ago, I and a couple of other developers were lent to another group to implement something (or fix some problems, I forget). I got the code and implemented the changes, which were small-ish.. While I was testing, I noticed that two fields had the labels swapped, so I fixed that while I was in there, then we released. Well, the excrement hit the air moving device, since all the users were used to hitting the tab key 3 times between fields D and E, and now they had to hit it two times. They were so mad, that I had to go in there and back out that change, so that the fields were incorrectly labeled again (and I was chewed out by management). LOL.
 
Retired software engineer here.

You also need to realize that no piece of software exists on its own.

The simplest scenario might be:
1) Operating System
2) actual program

But now things are so much more complicated, the moving pieces could include some set of the following:

- Operating System
- actual program
- programming language libraries
compiled in or linked in
- virtual machines
- multitude of browsers
- web services or other servers running somewhere on the internet
- ...

You get the idea, there is just a lot of moving parts now to a reasonably sophisticated application or website. Lots of stuff to break.
 
I think something in the Cosmos or maybe just human existence dictates that, no matter how far we've come as a race or how smart we've become or no matter the strides we have made, we are doomed to a certain level of frustration in life. Thank goodness it's no longer a recalcitrant mule that refuses his order to move the wagon forward when it's time to go to town.
 
Sometimes people don't want bugs fixed. Many years ago, I and a couple of other developers were lent to another group to implement something (or fix some problems, I forget). I got the code and implemented the changes, which were small-ish.. While I was testing, I noticed that two fields had the labels swapped, so I fixed that while I was in there, then we released. Well, the excrement hit the air moving device, since all the users were used to hitting the tab key 3 times between fields D and E, and now they had to hit it two times. They were so mad, that I had to go in there and back out that change, so that the fields were incorrectly labeled again (and I was chewed out by management). LOL.
It's not the users' faults that they adapted to a bad interface! That should have been found and corrected before it even shipped and users saw it. It's always worth the time and money to test with a variety of real-life users and not internal 'experts' who've been working on it for months.

Depending on who the users were and how many new customers would also have to 'learn' the mistake I still might have corrected it (was it a customer interface or B2B?).
 
Dear software engineers: WHAT IS THE DEAL? What are the dynamics inside one of these companies that lead to messing with stuff? I get the need to stay current and secure, but unnecessary changes are a true scourge of the digital age. Is it that expensive engineering teams must prove their worth by constantly fiddling and “enhancing” rather than leaving well enough alone? Is it that engineers don’t use the products themselves, so aren’t in touch with customer needs? What’s it like to work on these products? What is the incentive structure to constantly break things and tinker? Why don’t teams fix bugs and problems before they layer on entirely new ones? Why can’t companies stop the torture?

Retired firmware/software engineer, 22 years with most of those at two big name companies you'd recognize and products you've probably used.

It's not the software engineers' fault. They work on whatever the managers tell them to do in order to get rewarded with a paycheck, promotions, bonuses, and a career. Being disrespectful or insubordinate to management and deciding not to implement a feature because some customers don't want change is a good way to get disciplined, up to and including being fired.

It's not the company's fault. They're responding to their investors who own them and want profits. Profits come from revenues, revenues come from sales, and sales, by and large in the technology world, come from new releases.

New releases, by definition, include changes. If a new release was the same as the old release, who would pay the company for that?

Actually, now that I think about it a bit more, sometimes revenues come from maintenance contracts. But that's sort of a similar situation: If I buy and install a stable product, there really isn't any need for a maintenance contract.

A contributing factor to all of this is that the cost of delivery, especially of software, is practically zero. If a company had to ship 13 CDs in a box to each customer for each upgrade, that's expensive. If they just have a cloud install and customers download over the Internet, that's practically free. This economic aspect reduces the company's disincentive from focusing on new product releases.

Both the waterfall and Agile methods approach software development by writing the code first, then fixing bugs second. (There is at least one method, TDD, which does things differently. I like it, but I haven't seen it practiced well at large companies.) Tech projects are invariably behind schedule, so when the pressure comes to ship, the bug fixing gets curtailed because it's the last step. The low cost of shipping a fix (see previous paragraph) makes it easier for companies to ship buggy code because they can just patch and release on the web.

Even though you might be frustrated, the plain truth is that customers are forking over a lot more money to companies with continuous new features and buggy code compared to companies with high quality products that are ship once sell once.

Minor additional comment: It is true that a lot of software engineers are insulated from customer needs. Personally I like talking with customers and learning about their needs, but I was an outlier. It's also true that most companies do a lousy job of funneling in customer feature requests, prioritizing them well, and delivering those in a timely fashion. Agile done properly helps with this issue, but most companies don't do Agile right.
 
Back
Top Bottom