News for hackers. Stuff that matters.
Re:Imaginary Problems Are the Root of Bad Software by lewisjoe on Sunday June 18, 2023 @01:02PM (#36382057)
If anything it's the incentive system in software industry, which is at fault.

1. No designer is given promotion for sticking to conventional designs. It's their creative & clever designs that get them attention and career incentives.

2. No engineer is paid extra for keeping the codebase without growing too much. It's re-writes and the effort he puts in to churn out more solutions (than there are problems) that offers him a chance to climb the ladder.

3. No product manager can put "Made the product more stable and usable" in their resume. It's all the new extra features that they thought out, which will earn them reputation.

Our industry thrives on producing more solutions than needed. Efforts are rewarded based on conventional measurements, without thinking through- in what directions were the efforts pointed at.

Unless the incentives of everyone involved are aligned with what's actually needed, we'll continue solving imaginary problems, I guess.

Re:Imaginary Problems Are the Root of Bad Software by pavlov on Sunday June 18, 2023 @01:15PM (#36382179)
> “No designer is given promotion for sticking to conventional designs. It's their creative & clever designs that get them attention and career incentives.”

This is a massive change from my first software industry job in 1997.

I was essentially a “design intern who knows HTML” on a team that built a shrinkwrap Windows application for enterprises. The core of the design team was a graphic designer, a cognitive scientist, an industrial designer, and a product manager with industry experience in the customer domain.

The application was Windows native. User research was conducted on site with scientific rigor. Adhering to platform guidelines and conventions was a priority. I think I spent a few weeks redrawing hundreds of toolbar icons so they’d be in line with the Office 97 look (the kind of boring job you give to the junior). If the app stood out on the Windows desktop, that would have been considered problematic.

Today a similar design team would only have a graphic designer and a PM, and neither of them would care the slightest about platform guidelines or customer domain. The UI is primarily an extension of the corporate brand. Hiring a cognitive scientist? Forget about it…

Everything certainly wasn’t perfect in the Windows/Mac desktop golden era. But the rise of the web wiped out a lot of good industry practices too.

Re:Imaginary Problems Are the Root of Bad Software by lewisjoe on Sunday June 18, 2023 @01:30PM (#36382328)
From a person who started using computers from the early 2000s era:

THANK YOU!

None of the current SaaS apps I use can come close to the experience of using softwares from that era.

Take a simple list view of a typical Windows/Mac software?

1. Command clicking selected multiple objects

2. Shift clicking selected a range.

3. Right clicking brought up selection actions.

4. Double clicking opened an object.

This pattern was followed in almost list views and there was no re-learning and surprises.

Now can you say the same about the list views of modern web apps?

Can you apply the same list selection experience across Google Drive and Microsoft OneDrive and Apple iCloud? Nope.

That's were we failed as an industry. We let a lot of designers run too wild with their ideas, to put it bluntly.

Re:Imaginary Problems Are the Root of Bad Software by lfowles on Sunday June 18, 2023 @01:33PM (#36382359)
Those four actions worked for me on the Google Drive web interface
Re:Imaginary Problems Are the Root of Bad Software by lewisjoe on Sunday June 18, 2023 @01:39PM (#36382414)
Great! Now try it in any other list view in any other app.

Maybe the list of docs in https://docs.google.com?

Re:Imaginary Problems Are the Root of Bad Software by evandale on Sunday June 18, 2023 @03:35PM (#36383592)
On my phone so it's hard to check, but Gmail's ctrl and shift clicks work really well and is intuitive to me. I'm shocked they wouldn't use the same mechanics everywhere.

Best example: Gmail is one of the only webapps I'll ctrl click a few items at the top of the list, ctrl click a few in the middle, and then shift click to the bottom and it works exactly how I'd expect - everything stays selected and the shift+click selects from your previous click to the next item. I think it gets wonky if you change directions but I can't imagine how I'd expect ctrl+click item 1, 2, 9, 10, then shift click on 4 would work.

Re:Imaginary Problems Are the Root of Bad Software by cwillu on Monday June 19, 2023 @12:32AM (#36387356)
For myself, I'd expect the items between 4 and 10 to be added to the selection: everything but 3 would be selected.

Having just checked, this is indeed what the file explorer on my desktop does, and I'm pretty sure windows file explorer does the same.

Re:Imaginary Problems Are the Root of Bad Software by ilyt on Sunday June 18, 2023 @01:57PM (#36382597)
And everything had a keybind so if you worked in software every day you could be as fast as cli nerds.
Re:Imaginary Problems Are the Root of Bad Software by someweirdperson on Sunday June 18, 2023 @05:46PM (#36384845)
And not even be slowed down by animations.
Re:Imaginary Problems Are the Root of Bad Software by MonkeyClub on Monday June 19, 2023 @01:10AM (#36387520)
I read "even" as "ever" - still made complete sense.

Animations may seem fine and fun the first time you encounter one, but when you think you'll have to suffer through it every time an action is taken, it becomes a whole different story.

Re:Imaginary Problems Are the Root of Bad Software by tuhriel on Friday June 30, 2023 @12:10PM (#36537544)
Absolutely...closing a popup with 'esc'? Naah, wasn't requested so tha message stays up
Re:Imaginary Problems Are the Root of Bad Software by bombolo on Sunday June 18, 2023 @01:59PM (#36382612)
The problem with the controls is mostly because they don't want to pay for Qt (multiplatform toolkit), so instead every company (badly) implements their own controls in HTML to save money. I suspect ultimately they waste much more money than they save.
Re:Imaginary Problems Are the Root of Bad Software by whstl on Sunday June 18, 2023 @05:03PM (#36384437)
Qt isn't even in the radar of most companies currently building multi-platform applications in HTML. And it won't be soon, for two main reasons: developers able to use it are expensive, and Qt applications have the "uncanny valley" look and feel about them on every OS but Linux.

Not to mention that with SaaS being more profitable than selling, a lot of apps also have backends, and webapp versions, which can share a lot of HTML/CSS/JS code with the desktop version. Sure: Qt, Flutter, etc have web versions, but they just don't look/feel good.

If you want a "Premium" native look and feel, people gotta go directly to the source and Qt won't cut without a lot of work. Lots of companies have separate Android and iOS teams. Or they go directly to HTML (or things like Flutter, which look ok in mobile). High-quality macOS apps, like those made by Panic, Rogue Amoeba, etc, use Cocoa directly.

Standardized controls and shortcuts are a secondary concern to all this.

Re:Imaginary Problems Are the Root of Bad Software by throwaway2037 on Sunday June 18, 2023 @09:04PM (#36386138)
All this sounds great from the perspective of retail shrink wrap software. Today, the major use cases for Qt on the desktop are in-house corporate software. And, no one cares about "uncanny valley". Only HN and online nerds care about that stuff. Average, non-technical, corporate users care about functions, not form. Hell, they are happy with a VBA app! Also, lots of in-car and in-seat (aeroplane) entertainment systems are built in Qt.

    If you want a "Premium" native look and feel
Who is doing this in 2023? No one outside my examples above.
Re:Imaginary Problems Are the Root of Bad Software by whstl on Monday June 19, 2023 @02:22AM (#36387892)
There's a reason in-house corporate software started becoming web based 15-or-so years ago: web is cheaper, easier to hire for, faster to develop and deploy, doesn't require installation or updates, easier to troubleshoot, doesn't need special pipes for communicating with the server (yeah I remember the days of DCOM, CORBA, WCF and other weird protocols instead of HTTP).

It is things like Qt that only HN and online nerds care about.

Don't get me wrong: I really like well made native apps and I think they're great. But Qt isn't as great as software made with native toolkits directly.

Re:Imaginary Problems Are the Root of Bad Software by throwaway2037 on Monday June 19, 2023 @08:44PM (#36398317)
No, long term, web apps are more expensive because the front end needs to be completely re-written ever few years. A desktop app written in Qt can be kept running for a decade with very little work. (This assumes no Qt library upgrades, which for in-house apps, are most unnecessary.)

The primary advantage of web apps is "zero install", which is a major point of friction at large corps.

Re:Imaginary Problems Are the Root of Bad Software by whstl on Wednesday June 21, 2023 @06:32AM (#36416770)
“because the front end needs to be completely re-written ever few years”

Citation needed. Currently working in a jQuery+Coffeescript app that still works like a charm.

Re:Imaginary Problems Are the Root of Bad Software by jpc0 on Wednesday June 21, 2023 @06:34AM (#36416790)
> ...needs to be completely re-written ever few years.

No it doesn't, the HTML spec hasn't changed, whereas QT has. The issue is how the webapps were built in the first place. You don't need Nextjs and all it's friends to post a form to a backend once an hour but somehow that is becoming the standard approach...

Re:Imaginary Problems Are the Root of Bad Software by whstl on Monday June 19, 2023 @06:41AM (#36389486)
> Who is doing this in 2023? No one outside my examples above.

For macOS check apps made by Apple (Logic, Final Cut), Panic, Rogue Amoeba, or apps like Pixelmator, Affinity, Pixelmator, TablePlus, Tower, Dash... there's more.

There's even open source ones like IINA providing a premium look+feel.

Re:Imaginary Problems Are the Root of Bad Software by bombolo on Sunday June 18, 2023 @11:55PM (#36387155)
Qt has uncanney valley... do you think people using HTML care to make things look native then?
Re:Imaginary Problems Are the Root of Bad Software by whstl on Monday June 19, 2023 @02:14AM (#36387849)
HTML doesn't suffer from the uncanny valley problem because it doesn't look native at all, it's just something totally different. Yeah, sometimes it sucks, but it's not because it looks "almost but not quite there".

Perhaps Cordova/Ionic, when it tried to imitate the look iOS/Android's native controls.

Re:Imaginary Problems Are the Root of Bad Software by jstimpfle on Monday June 19, 2023 @04:22AM (#36388608)
> If you want a "Premium" native look and feel, people gotta go directly to the source: native APIs.

I've seen this regurgitated a hundred times, but I don't really know any more what that "native look and feel" is. On Windows, it might be the old Windows 95 controls, but those are quite limited. What system today is made of dropdowns, checkboxes and OK buttons?

Re:Imaginary Problems Are the Root of Bad Software by whstl on Monday June 19, 2023 @06:33AM (#36389450)
Well, yeah. Windows is... special. Even Microsoft stopped using the normal controls. But the problem is that Qt looks like an uncanny valley version of this.

But by Premium yeah, I'm talking more about macOS, iOS and Android here.

For macOS apps made by Apple, Panic, Rogue Amoeba, or apps like Pixelmator, Affinity, Pixelmator, TablePlus, Tower, Dash.

Re:Imaginary Problems Are the Root of Bad Software by mavhc on Monday June 19, 2023 @05:39AM (#36389095)
According to Microsoft, native look and feel includes tiny tiny dialog boxes with even smaller panes inside that can't be resized, so yeah, not going to bother with that
Re:Imaginary Problems Are the Root of Bad Software by chii on Sunday June 18, 2023 @11:16PM (#36386944)
The problem isn't really with designers per se (tho they played a role). The problem is with the web as an application delivery platform - it was never designed for this.

Windows, or MacOS, both have design guidelines that was produced, and they expected native apps to follow. Most native apps do (the few that doesn't have either good reason, or were unique enough that their customers don't care - think photoshop).

With the advent of the web, such a guideline for software no longer mattered, because the controls and UI elements are all custom - since html is not an application GUI library!

So every man and their dog has a different UX and UI interaction built for their own app, because the web encourages it. The designers are also at fault for not standardizing on a set of common UI widgets, but i cannot blame them as this isn't the easiest path.

Re:Imaginary Problems Are the Root of Bad Software by heresie-dabord on Monday June 19, 2023 @05:54AM (#36389195)
> design guidelines that was produced, and they expected native apps to follow.

It almost sounds old-fashioned in 2023 to talk about usability, affordance, and user-experience.

Part of being a native application was/is for the application to look and behave like the rest of the user interface. Standards are important because learning how to use a tool is important. Users are important.

Software has become a way to make users miserable. Oh, and while confusing them, throw some advertising at them too. ^_^

Re:Imaginary Problems Are the Root of Bad Software by montjoy on Monday June 19, 2023 @12:24AM (#36387324)
I can’t help but feel that Agile is at least partly to blame for this. Things like you are describing usually don’t come under the “minimum viable product” purview and thus get pushed out indefinitely until the product is at the “very mature” stage. At that point there’s the risk that the product will be re-written and the cycle reset again.
Re:Imaginary Problems Are the Root of Bad Software by lmm on Monday June 19, 2023 @02:18AM (#36387864)
Nah. If anything a lot of these trends are directly anti-agile, e.g. avoiding labels and using icons so that it's easier to translate your app, even though the icons take longer initially and you're never actually going to translate your app.
Re:Imaginary Problems Are the Root of Bad Software by montjoy on Monday June 19, 2023 @03:05AM (#36388147)
I’m not really arguing that. I’m saying there is a trade-off between having the common OS feature set described above (Ctrl/Cmd-select, etc) and implementing/iterating a web/mobile product quickly. Often standard UI paradigms are never implemented or implemented inconsistently. AWS, widely known for their Agile practices, might be the epitome of this with their web console. Sometimes I can sort columns by clicking on them, sometimes I can’t. Some products allow shift or control click and some do not. Etc etc. I can only assume the product teams are doing their best within their constraints but as an end user it’s a piece of suck.
Re:Imaginary Problems Are the Root of Bad Software by bambax on Monday June 19, 2023 @01:17AM (#36387550)
Also:

CTRL+A selects all

CTRL+Shift+End selects all from where you are to the end

CTRL+Shift+Home selects all from where you are to the top

One of the (many) problems of web UIs is they often ignore the keyboard completely.

Re:Imaginary Problems Are the Root of Bad Software by bostik on Monday June 19, 2023 @03:01AM (#36388115)
Or as is increasingly the case: they actively hijack what should be system-wide keybindings - making it even worse.
Re:Imaginary Problems Are the Root of Bad Software by Dalewyn on Monday June 19, 2023 @04:39AM (#36388725)
>CTRL+Shift+End selects all from where you are to the end

>CTRL+Shift+Home selects all from where you are to the top

Those two don't need CTRL, just so you know.

>One of the (many) problems of web UIs is they often ignore the keyboard completely.

They are also starting to ignore the mouse.

Re:Imaginary Problems Are the Root of Bad Software by bambax on Monday June 19, 2023 @07:55AM (#36389998)
> Those two don't need CTRL, just so you know

Well, yes they do, only it's different with and without CTRL. For example in a text editor (or a normal webpage without any fancy JS):

- Shift+End goes to the end of the line

- CTRL+Shift+End goes to the end of the document

and the same is true for Home (substitute "end" with "beginning").

I have seen people, even "technical" people, select a text with the mouse from the middle of a large Word document to the end, because they didn't know this.

They also had to do it often (several times a day) and it had become a significant part of their workload...

Re:Imaginary Problems Are the Root of Bad Software by andsoitis on Monday June 19, 2023 @10:04AM (#36391224)
Emacs would like to have a word.
Re:Imaginary Problems Are the Root of Bad Software by skydhash on Monday June 19, 2023 @10:17AM (#36391358)
Emacs is a text ecosystem. And it's trivial to add these shortcuts. Evil[0] basically rewires everything to be Vim.

[0]: https://github.com/emacs-evil/evil

Re:Imaginary Problems Are the Root of Bad Software by andsoitis on Monday June 19, 2023 @10:34AM (#36391493)
It is a desktop application that doesn't adhere to the user experience guidelines of the OS it runs on. I'm an emacs user and fan.
Re:Imaginary Problems Are the Root of Bad Software by rewmie on Monday June 19, 2023 @05:11PM (#36396516)
> None of the current SaaS apps I use can come close to the experience of using softwares from that era.

I'm afraid you're looking at the past with rose-tinted glasses. In general software back then sucked hard. User experience did not existed at all. Developers bundled stuff around, and users were expected to learn how to use software. Books were sold to guide desperate users through simple user flows. Forms forms forms forms everywhere, and they all sucked, no exception. Forget about localization or internationalization. Forget about accessibility. Developers tweaked fonts to be smaller to shove more controls into the same screen real estate, and you either picked up a magnifying glass to read what they said or you just risked it and clicked on it anyway.

Software back then sucked, and sucked hard. Atrocities like Gimp were sold as usability champions. That's how bad things were.

Re:Imaginary Problems Are the Root of Bad Software by aldanor on Sunday June 18, 2023 @01:21PM (#36382250)
Today they might have a psychologist on the team to research which buttons may serve as dopamine triggers so you're a lot more likely to upgrade to Premium before thinking it over
Re:Imaginary Problems Are the Root of Bad Software by pavlov on Sunday June 18, 2023 @01:35PM (#36382369)
Right. Making people click on things they didn’t mean to and buy things they didn’t want — those goals were not even a part of the 1990s UI paradigm.
Re:Imaginary Problems Are the Root of Bad Software by hnlmorg on Sunday June 18, 2023 @02:08PM (#36382693)
1990s design was all about preventing people from accidentally doing actions they might not have wanted to. Even down to the “Are you sure you want to quit” dialogues that were all the rage.

It’s sad just where we are now compared to the design goals of old.

Re:Imaginary Problems Are the Root of Bad Software by ilyt on Sunday June 18, 2023 @01:56PM (#36382593)
Remember times where you could change the theme and all of the apps followed suit ?

Even in Linux there were tools to sync gnome with QT look so you could have one theme applied to every app for nice and consistent look, all the way to how the common icons look.

Nowadays ? Every fucking app gotta have their own different styling. Will the setting icon be three dots, gear, or honey badger ? WHO FUCKING KNOWS. You'd be lucky if you even get a choice between light and dark theme

But hey, we can write same code to work on windows, mac and mobile ! It will work shit in all of them and be slow but we don't care!

Re:Imaginary Problems Are the Root of Bad Software by thwarted on Sunday June 18, 2023 @03:17PM (#36383398)
And it got worse with client side decorations. Now even window interactions are app-specific and don't adhere to global settings.
Re:Imaginary Problems Are the Root of Bad Software by nicoco on Sunday June 18, 2023 @04:05PM (#36383908)
> Even in Linux there were tools to sync gnome with QT look

There are still such tools, you don't have to use the past tense here.

Re:Imaginary Problems Are the Root of Bad Software by pdntspa on Sunday June 18, 2023 @04:11PM (#36383964)
Even better, every app is doing their own styling so they can all look like Discord
Re:Imaginary Problems Are the Root of Bad Software by noisy_boy on Sunday June 18, 2023 @11:20PM (#36386958)
Is it just me or there are others who find discords handling of threads terrible?! I mean Slack is far from my favourite but at least they treat a thread like a thread where I can see the entire conversation in one place instead of visually parsing questions and replies while frantically scrolling up and down.
Re:Imaginary Problems Are the Root of Bad Software by farhanhubble on Sunday June 18, 2023 @11:28PM (#36387004)
Discord and Teams both have terrible UX. Discord has the look and feel of a poorly designed game and Teams can't even get highlight and focus right.
Re:Imaginary Problems Are the Root of Bad Software by mavhc on Monday June 19, 2023 @05:36AM (#36389080)
Threads in Discord appear in the sidebar usually. Are you thinking of replies?
Re:Imaginary Problems Are the Root of Bad Software by noisy_boy on Monday June 19, 2023 @12:36PM (#36393066)
I was thinking more like seeing all the replies to a comment as a thread without the explicit "create thread" which mostly people don't. E.g. I right-click on a comment that has replies and I see the root comment along with the replies in the sidebar.
Re:Imaginary Problems Are the Root of Bad Software by AndrewKemendo on Sunday June 18, 2023 @05:18PM (#36384588)
Oh man I totally forgot about that. Thank you for the reminder.

Total flashbacks to windows 95 and every so often changing the windows color, text font etc. for the entire system

Good times

Re:Imaginary Problems Are the Root of Bad Software by balder1991 on Sunday June 18, 2023 @07:34PM (#36385643)
A lot of native apps on iOS still at least follow the light/dark theme and global font sizes. But I’m not sure if that works by default with Flutter or React Native etc. or if they’d have to implement it explicitly.
Re:Imaginary Problems Are the Root of Bad Software by wheybags on Sunday June 18, 2023 @06:25PM (#36385165)
I remember that theory. I also remember the reality that if you changed your background colour to anything but white, some app, somewhere, was going to become an unreadable black text on black background mess.
Re:Imaginary Problems Are the Root of Bad Software by hnzix on Sunday June 18, 2023 @07:14PM (#36385519)
> Will the setting icon be three dots?

Multiple hamburger menus with a scattering of cryptic icons stuck at arbitrary places on the screen. What does the swirly icon with up arrow do? No text label for you!

Oh and let's move the next button to the top left of the screen and not highlight it. Mmmm that's some good UI design.

Re:Imaginary Problems Are the Root of Bad Software by foobarbecue on Monday June 19, 2023 @01:08AM (#36387500)
Might be a coincidence, but that's a weirdly accurate description of MS Teams.
Re:Imaginary Problems Are the Root of Bad Software by n3storm on Monday June 19, 2023 @01:54AM (#36387739)
Not mentioning about the wording (at least in spanish) is awful too.
Re:Imaginary Problems Are the Root of Bad Software by eitland on Monday June 19, 2023 @07:03AM (#36389630)
It is also a good description of Mac applications last I used Mac back in 2012. Only it wasn't hamburger or three dots but one or two gear icons.
Re:Imaginary Problems Are the Root of Bad Software by sublinear on Monday June 19, 2023 @12:03AM (#36387210)
> Every fucking app gotta have their own different styling

Have you considered that the average user never cared and never will?

Having ultra consistent styling across all apps ruins the ability to... you know... sell the software. It gives far too much power to some group of annoying elitist nerds in denial of their opinions preaching UI/UX pseudoscience.

> But hey, we can write same code to work on windows, mac and mobile ! It will work shit in all of them and be slow but we don't care!

Ain't nobody got time for reading even shittier documentation for badly written OS APIs.

Re:Imaginary Problems Are the Root of Bad Software by rewmie on Monday June 19, 2023 @05:03PM (#36396431)
> Nowadays ? Every fucking app gotta have their own different styling.

This has more to do with the current state of GUI frameworks than with developer mindset. Microsoft is between GUI frameworks and rumoured to have deprecated everything between win32 and WPF, and in the meantime they are pushing React Native. Apple doesn't seem to know what to do with desktop environments and is stuck between their legacy objective C frameworks which they seem to purposely hide any form of documentation and swift-based frameworks which are broken out of the box. Linux has a couple of options which are ugly as sin since ever. There's Qt, but their licensing scares away anyone with two brain cells to rub together.

So where are we left?

Well, with webview-based frameworks, which is the worst of both worlds but at least they don't look half bad.

Except that webview-based frameworks are a far lower-level abstraction than any native widget-based framework. Developers are forced to reinvent the wheel, and this means dropping any standard look-and-feel because that's already ugly to start with but takes even more work to get into a working state.

And all you want to do is to provide a GUI for users to click around.

Re:Imaginary Problems Are the Root of Bad Software by WinLychee on Sunday June 18, 2023 @03:11PM (#36383337)
There's been a large influx of people chasing dollars and status, they could not care less about the product or who uses it. You can still find orgs that do care, but they're swiftly pushed out by the VC-funded "growth at any cost" model or are acquired into oblivion.

The indie scene is looking excellent however, a lot of programmers who have already made their money seem to be pushing excellent hobby projects out.

Re:Imaginary Problems Are the Root of Bad Software by jakubmazanec on Sunday June 18, 2023 @04:56PM (#36384369)
I have another theory: it's all about the screen size. When you had only 320x240—1014x768, you simply MUST have thought about UX (in the sense of "How can I fit all this info in this little space?"

Now you don't have to. So no one does.

Re:Imaginary Problems Are the Root of Bad Software by selcuka on Sunday June 18, 2023 @10:05PM (#36386537)
This is true in a sense, but we now have a different restriction, called a mobile view.
Re:Imaginary Problems Are the Root of Bad Software by SanderNL on Monday June 19, 2023 @01:00AM (#36387463)
That sounds expensive AF though. Was that really necessary?

I’m all for craftsmanship, but having four top guys fiddling with design.. it all depends on the domain I guess.

Re:Imaginary Problems Are the Root of Bad Software by Dalewyn on Monday June 19, 2023 @04:41AM (#36388731)
Considering most of us here are ready to murder a few designers for wasting so much of our time now?

Yes, absolutely necessary cost.

Re:Imaginary Problems Are the Root of Bad Software by Sakos on Monday June 19, 2023 @04:54AM (#36388807)
Uh ... plenty of companies have a UX team. They're mostly all graphic designers. "four guys fiddling with design" is nothing. Either you care about having a well-designed UI or you just want a pretty one with a high conversion rate, and who you hire reflects what you really value.
Re:Imaginary Problems Are the Root of Bad Software by PeterStuer on Monday June 19, 2023 @02:22AM (#36387891)
There is a fundamental difference between working on software products vs bespoke software development:

In the former you make money from selling the result, in the latter you make money from selling the hours spent creating the thing.

If the former is unusable it will lead to bad sales. In the latter it might even lead to additional hours sold in change requests.

The former is bought often after evaluation and comparison by the user of the software. The latter is sold to an executive that will never have to use the software as a project.

Re:Imaginary Problems Are the Root of Bad Software by Sakos on Monday June 19, 2023 @04:32AM (#36388667)
Microsoft basically used to do this too. We can see that they clearly don't anymore.
Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Sunday June 18, 2023 @01:21PM (#36382254)
> No engineer is paid extra for keeping the codebase without growing too much.

I am. I'm paid more than most developers to run a team doing just this. We make minimal change, have an absolutely non-negotiable focus on stability and minimalism and reject any change that isn't absolutely driven by validated majority user need. Even then, the bar is high.

I'm not saying this is a common situation, but it certainly isn't rare in my experience. Software is a vastly wide scope of software types and requirements. I'm paid to be ruthless, and to know what ruthless looks like in terms of delivering consistently without downtime/data loss/critical issues.

Re:Imaginary Problems Are the Root of Bad Software by chubot on Sunday June 18, 2023 @01:47PM (#36382488)
What kind of software do you work on? At what company?

I have seen low level parts that are managed well, because employees have skin in the game

But I’ve also seen a lot of what this post is talking about

Re:Imaginary Problems Are the Root of Bad Software by bombolo on Sunday June 18, 2023 @02:01PM (#36382633)
Until you have the star developer that starts promising the product manager he can do all the extra features in a week. And then of course none of them actually work decently or at all. But at that point it must be maintained by the whole team anyway.
Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Sunday June 18, 2023 @07:00PM (#36385423)
Well yes, but I have veto power for that reason, as lead engineer.

I am the lead because I know, from experience, not to allow this kind of nonsense to happen.

Re:Imaginary Problems Are the Root of Bad Software by whstl on Sunday June 18, 2023 @05:09PM (#36384511)
I'm in the same boat as GP. I work in finance. CTO said he wanted to keep things simple and stable, so I do it.

It is only possible because I'm a technical manager myself and I have a very competent (and technical) product manager working with me.

But for every person like me, there are 10 other devs trying to cram every pattern from the GoF book in their corner of the codebase, so I have to spend my scarce time reviewing PRs.

Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Sunday June 18, 2023 @07:04PM (#36385451)
Am GP, it is finance based, but not commercial finance.

Most of the systems handle complex calculations. The system is a monolith that has been around for 15 years or so.

It isn't cool. It isn't pretty. Lots of it would be better for a refactor, but absolute stability is the goal. Refactoring things may result in long-term cost savings, but with risk. The business has no risk appetite, so it doesn't make sense. If it works, it stays, however ugly and costly.

That isn't to say some things don't get refactored, but there's a strict business case that needs to be met. Usually if the system is under performing, error-prone or end-users want features/performance that can't be accommodated without a refactor.

It's nice. The latest framework isn't being integrated year after year, there's no microservices, nothing fancy.

It's java. It's tested. It works. It makes money. It pays.

Re:Imaginary Problems Are the Root of Bad Software by wruza on Sunday June 18, 2023 @09:27PM (#36386287)
Interesting, I believe there is something to finance that allows or forces things this way. There’s much less fidget spinning and much more business in it for some reason.
Re:Imaginary Problems Are the Root of Bad Software by lazyasciiart on Sunday June 18, 2023 @10:44PM (#36386770)
Regulations, I’m guessing.
Re:Imaginary Problems Are the Root of Bad Software by whstl on Monday June 19, 2023 @03:06AM (#36388156)
Regulations are a good excuse, but there is still a lot of fuckery in Finance apps, especially in the Fintech space.

Stability is something that must be culturally hammered and enforced by leadership.

Re:Imaginary Problems Are the Root of Bad Software by SgtBastard on Monday June 19, 2023 @01:44AM (#36387701)
Regulations (as sibling comment mentioned) is one aspect, but also the cost of screwing up is real-world. A status quo system that isn’t screwing up has a much higher bar to replace where the risk that the replacement system will screw up.

Much of the same reasoning and even more extremely applied, is medtech - hence why you see many medical imaging setups still obviously running a version of Windows XP.

Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Monday June 19, 2023 @05:29AM (#36389048)
Regulation and risk. The same applied to government too.

The cost (financial, legal, reputation) of certain classes of bugs is so high that avoiding those risks becomes top concern.

One calculation issue, one buggy float operation means millions or billions in damage and the loss of your clients ... never to return ... because your name is tarnished.

I actually think this is _wrong_ and we need better resiliency in finance to being able to roll-back transactions and rewind and replay with adjustments.

Re:Imaginary Problems Are the Root of Bad Software by abhibeckert on Monday June 19, 2023 @01:30AM (#36387623)
I work at a consulting firm.

Our salary is loosely linked to what percentage of our work is billable (with leniency for inexperienced staff, who aren't expected to be profitable while they're learning their craft).

If you spend three hours figuring out why things fall apart on the 31st of the month... that generally can't be billed to the client, and therefore it's bad for your salary.

On the other hand, if you spend three hundred hours writing tests and implementing an awesome multi-stage deployment process that avoids one production bug a month? Your manager can totally bill that work (with the right client).

Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Monday June 19, 2023 @05:26AM (#36389024)
I would argue the billing model, client relationship and everything else commercial isn't running effectively at that firm.

If I were a client, I wouldn't want these perverse incentives to exist. I would want a razor sharp focus on _my_ needs, and assurance that _my_ needs are modelled in the billing.

And for that, I would pay more.

Re:Imaginary Problems Are the Root of Bad Software by MSFT_Edging on Monday June 19, 2023 @12:02PM (#36392621)
Why is the bug fix not billable, but the test writing is?
Re:Imaginary Problems Are the Root of Bad Software by jtriangle on Sunday June 18, 2023 @02:48PM (#36383110)
Bless you man, you're doing the lords work
Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Sunday June 18, 2023 @07:08PM (#36385474)
It ain't much, but it is honest work ...

... and well paid.

Re:Imaginary Problems Are the Root of Bad Software by kylelahnakoski on Sunday June 18, 2023 @06:24PM (#36385155)
Minimal change, or minimal code? Refactoring code can make code smaller but depends on good testing. Applying minimal changes results in redundant and complicated code, but less likely to break existing functionality.
Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Sunday June 18, 2023 @07:07PM (#36385469)
In the first instance, both. However, i'd take more code that was better reasoned and easily understood over less verbose code that was smaller for smaller sake.

In terms of minimal change, we refactor when there's a clear business case to permit taking on the risk. Otherwise, we make the most minimal, most stable, least risk change to the existing code even if that code isn't optimal/pretty/well-structured/has-errors/...

Like most other engineering in the world really.

Re:Imaginary Problems Are the Root of Bad Software by paulryanrogers on Sunday June 18, 2023 @09:38PM (#36386348)
IME this can be hard if built on a platform or dependencies one doesn't control, which is common at early stage companies.

Because often the dependencies require surfing latest, or close enough, versions to maintain a secure system or avoid stalls for jumping major versions. Sometimes even core languages and standard libraries may require staying at least near latest versions.

Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Monday June 19, 2023 @04:44AM (#36388749)
This is true, but in our case all dependencies are vendored and frozen.

We _do_ have instances where target systems for deployment become ABI/API incompatible with the libraries, which is rare and happens roughly every 5 years.

The project was structured to put stability at the core, rather than being cutting edge.

Re:Imaginary Problems Are the Root of Bad Software by wruza on Sunday June 18, 2023 @09:22PM (#36386254)
For that to happen, two things must match: a product guy who knows your job and you who know how to make products. It doesn’t even have to be stable/featureless, in my experience. New developers tend to worship some new paradigm that focuses on “how” instead of “what”, which is all paradigms can do. And once they’re in, it goes downhill because the how dominates the what. Add a clueless product guy into the mix and it loses all limits, including budget. In the end they proclaim “software is hard” and move on.
Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Monday June 19, 2023 @05:25AM (#36389013)
I'm fortunate enough to be both the lead engineer and the person making product/design/feature decisions with the engineering team.
Re:Imaginary Problems Are the Root of Bad Software by whstl on Monday June 19, 2023 @09:33AM (#36390910)
I'm not GP but I'm in a similar situation, and yeah, this is how I do it.

My Product Manager is competent both in technical and product/design matters and is also able to call BS on complexity for complexity sake. I ensure that the development part is focused.

New developers have to prove with technical arguments any new paradigm or random refactoring they want to do. I'm pretty chill, though.

Re:Imaginary Problems Are the Root of Bad Software by Aeolun on Sunday June 18, 2023 @09:25PM (#36386280)
> I'm not saying this is a common situation, but it certainly isn't rare in my experience.

I think your experiences may be skewed by the position you find yourself in?

Re:Imaginary Problems Are the Root of Bad Software by siilikuin on Monday June 19, 2023 @04:25AM (#36388624)
Confirming a hypothesis I put forth in a different comment: Would you say you and your team have ownership of the product?

That is to say, there isn't one team doing what you're doing and then another separate team trying to graft new features on all the time, is there? Maybe there is, and maybe that causes issues down the line.

Re:Imaginary Problems Are the Root of Bad Software by sirsinsalot on Monday June 19, 2023 @05:23AM (#36389006)
We do have ownership, and I try and structure the development such that every engineer has ownership, decision making power and accountability. I aim for a flat responsibility structure as much as possible. We have lots of work to do, lots of changes in process and despite the constraints we have a steady stream of features we do add.

The trick is to ensure the culture of solid engineering goes right through the organisation and informs everything from commercial/financial through to QA.

Re:Imaginary Problems Are the Root of Bad Software by solomonthewise on Tuesday June 20, 2023 @12:05PM (#36406100)
Are you guys hiring. I pride myself on writing short, simple and readable code.
Re:Imaginary Problems Are the Root of Bad Software by thirdusername on Friday June 23, 2023 @08:24AM (#36445877)
I’m also I’m a similar situation, but I get the call when the thing has been on fire for a while so it’s a lot easier.

I can’t imagine a software engineer developing an interest defensive software engineering will be very visible until after there has already been a crisis to screw people’s heads on straight.

A lot of people seem to see “Do things that don’t scale” and think that’s a phrase meant for engineering.

Re:Imaginary Problems Are the Root of Bad Software by voz_ on Sunday June 18, 2023 @01:20PM (#36382243)
Uber was a massive example of this. The best engineers kept their head down and just tried to keep things afloat, fixing bugs, etc.

However, a large and insidious cadre of B tier engineers was constantly writing docs proposing meaningless arbitrary system changes and new designs for the sake the changes themselves. These new projects were the only way to get promoted. The entire e4->5->6->7 track was written in such a way that it only ever encouraged “TL”/“architect”types to grow.

This led to constant churn, horrible codebases, and utter bullshit self made problems which could only be solved by digging a deeper hole.

There are companies who handle this well. Ultimately it comes down to engineering culture.

Re:Imaginary Problems Are the Root of Bad Software by nine_zeros on Sunday June 18, 2023 @06:02PM (#36384976)
The career ladder is among the biggest fuck ups of the tech industry. They incentivize bullshittery more than actual innovation. There are more rewards for BS RFCs than in keeping the ship running.
Re:Imaginary Problems Are the Root of Bad Software by gtirloni on Sunday June 18, 2023 @10:27PM (#36386668)
I had a completely different view of RFCs before coming into contact with some peers that followed this approach to the letter. RFCs for such small issues would take 10 pages and barely mean anything. Of course they would be praised by upper management (it didn't matter the RFCs would be ignored most of the time).
Re:Imaginary Problems Are the Root of Bad Software by morning-coffee on Sunday June 18, 2023 @01:14PM (#36382164)
^ this ^

Until we figure out a nice metric for "removing complexity" and then rewarding for it, it's not likely to change, IMO.

Re:Imaginary Problems Are the Root of Bad Software by marcus0x62 on Sunday June 18, 2023 @01:29PM (#36382321)
And at least at the “enterprise” level for B2B software, there is intense customer demand for more features and, simultaneously, more stability.

From my view, that and pressure from the analyst racket are the main drivers behind feature bloat with self promotion a distant third.

Re:Imaginary Problems Are the Root of Bad Software by chillbill on Sunday June 18, 2023 @01:16PM (#36382191)
I don’t think it’s as easy as you’re making it to seem. The issue is that there are unintended consequences to each one of those points you mentioned. I’m pretty sure a substantial amount of thinking goes into software design from all aspects and it’s a bit reductive to say that it’s just lack of incentive. Humans doing software are not some machine learning algorithm to train with reinforcement learning techniques.
Re:Imaginary Problems Are the Root of Bad Software by ronnier on Sunday June 18, 2023 @01:13PM (#36382162)
I really think we have too many people working at most companies. It pushes people to the extremes and edges just to have something to work on. Managers need more people under them to get promotions. And managers want to manage managers to keep moving up. They fill teams of people on products that could really be ran by a fraction of the engineers. But that’s not where we are, we are on large teams working on small areas of the product inventing areas to build in and often ruining the product as a result.

We also get slower with so many people. The coordination overhead is killer and losing context as the product is sliced up into small parts that move on without you

Re:Imaginary Problems Are the Root of Bad Software by CBLT on Sunday June 18, 2023 @04:41PM (#36384242)
> we have too many people working at most companies.

I half-disagree with this. My take is significantly more top-down: senior management has a deficient concept of how product development works. They believe Manpower is to be spent to achieve revenue, either by directly selling the result as a product (e.g. airplanes selling wifi to passengers) or by it being a differentiating feature for the sales department. This causes every allocation decision (like hiring) to fundamentally be biased around getting a tangible return: by creating new projects, new features, and new buggy microservices.

Further, since management only has two knobs (manpower and timeline) to play with, they like to move them to feel like they're optimizing the project. It's always the same fallacies, too: "we hired more people so we can create explosive growth", "we created ambitious timelines, now we're striving to fill them" etc.

I don't have a solution for this, except to note that it can be mitigated by managing up. Construct your own narrative, and take advantage of the fact that the non-technical people above you govern almost entirely by gut feeling.

Re:Imaginary Problems Are the Root of Bad Software by sanderjd on Sunday June 18, 2023 @09:16PM (#36386209)
Yeah I dunno, I hear this a lot, but there has universally been way more work to do than people to do it at every company I've worked for. But that doesn't mean the right things are being prioritized.
Re:Imaginary Problems Are the Root of Bad Software by Aeolun on Sunday June 18, 2023 @09:30PM (#36386299)
There is a lot of work, but a lot of that work is generated by people doing the wrong thing too often.

If we had a smaller and more competent team, the initial build might have been marginally slower, but we wouldn’t have to spend a permanent 50% to just keeping down the technical debt.

Re:Imaginary Problems Are the Root of Bad Software by Denzel on Monday June 19, 2023 @10:15AM (#36391332)
You’re working from a cost-efficiency / cost optimization perspective. That’s a great perspective in some contexts, for example, mature late-stage products, fully saturated markets, etc.

Is cost efficiency an effective perspective for innovation or revenue growth? Mostly, no. As long as your risk-of-ruin is low, then you want to fail. Sometimes people misinterpret this as “doing the wrong thing”. But it takes doing a lot of wrong things to do the right thing.

The difference between right and wrong, if there ever was such a simple dichotomy, is so marginal and only understood in hindsight.

Re:Imaginary Problems Are the Root of Bad Software by Aeolun on Monday June 19, 2023 @12:40PM (#36393135)
You ask the executive if he wants to get to his goal with a team of 200 after lighting on fire 20M, or with a team of 20 after paying 2M.

Ultimately you end up in the same spot, but one choice is fairly suboptimal there.

Re:Imaginary Problems Are the Root of Bad Software by sanderjd on Monday June 19, 2023 @01:17PM (#36393736)
The whole point of the comment you replied to is that, if the "goal" is something innovative rather than just sustaining, then no, you don't end up in the same spot in those two scenarios.

But this is why some executives are better for some kinds of businesses and others are better for other kinds. Some executives don't understand your parent comment's point (or just don't find it comfortable), and will be very allergic to the "waste" necessary to experiment and iterate on poorly understood projects. Other executives will be uncomfortable just constantly figuring out how to optimize costs without damaging revenues.

A very tricky part of the lifecycle of many companies that get gigantic is to figure out when to flip this and start switching out the executive team to focus on a different model.

Re:Imaginary Problems Are the Root of Bad Software by wildekek on Sunday June 18, 2023 @01:20PM (#36382239)
All of those are absolutely real. There is a lack of economics and a surplus of optics in the game for all players.
Re:Imaginary Problems Are the Root of Bad Software by x86x87 on Sunday June 18, 2023 @01:17PM (#36382210)
I call this "the tragedy of software development"
Re:Imaginary Problems Are the Root of Bad Software by yieldcrv on Sunday June 18, 2023 @01:36PM (#36382379)
and the re-writes have to be in a trendy language that other companies are using, just for the engineer to stay relevant.

everything about engineering group decisions are about creating a reason to use a newer framework in a way other people can vouch for.

Re:Imaginary Problems Are the Root of Bad Software by bluGill on Sunday June 18, 2023 @01:51PM (#36382534)
There are exceptions to all the above, but only after the worst case burns from failure to do those things. If you are losing customers to competition that doesn't crash, then suddenly you can be the hero by making yours more stable. Of course only if you can do this before the company dies.
Re:Imaginary Problems Are the Root of Bad Software by bombolo on Sunday June 18, 2023 @01:56PM (#36382586)
Coworker of mine wrote a thing in java… it was too slow (intensive locking between threads)… so he rewrote it in C… it was crashing all the time (because he sucks), then he rewrote it in go. Got promoted for this feat.
Re:Imaginary Problems Are the Root of Bad Software by ilyt on Sunday June 18, 2023 @02:00PM (#36382621)
That's kinda what initally Go was made for IIRC. They noticed people which job is not programming but had to write some code (say some analytics or sth) often did it in Python, and if it was too slow they moved to C or Java and were predictably terrible at it, so that's why Go was made simple and with builtin concurrency primitives.
Re:Imaginary Problems Are the Root of Bad Software by bombolo on Sunday June 18, 2023 @03:30PM (#36383542)
But his job is programming. He is very proud of his C skills. If you listen to him, it crashed because C is intrinsically bad (it is difficult yes), but I guess it was also such a bad codebase that rewriting it made sense.

He also holds a grudge against me for having dared to rewrite a sacred C library he wrote (that was a constant source of segfault and I rewrote in 1 afternoon).

Re:Imaginary Problems Are the Root of Bad Software by ilyt on Sunday June 18, 2023 @04:54PM (#36384355)
Sounds more like his job is producing tech debt. I saw few people like that, basically none of their code was left as most of that needed to be eventually replaced coz it was shit.
Re:Imaginary Problems Are the Root of Bad Software by joshlemer on Sunday June 18, 2023 @02:28PM (#36382901)
I don't know, the more I advance in my career, the more I see it as the opposite. Wide eyed developers with big designs, who are obsessed with the technical aspects of a solution, who disregard the practicalities, long term implications at the social level (who is going to maintain this, do we have people that have that skillset, is this worth the effort, does it really matter to be this elegant, or is it more important to ship quickly and economically) come off as a bit immature and the more effective engineers who understand these priorities are given more respect and authority.
Re:Imaginary Problems Are the Root of Bad Software by stuckinhell on Sunday June 18, 2023 @02:33PM (#36382946)
The problem for a lot of the social level issues is that it is pure pure politics.
Re:Imaginary Problems Are the Root of Bad Software by gopalv on Sunday June 18, 2023 @03:19PM (#36383418)
> the more effective engineers who understand these priorities are given more respect and authority.

The problem with "given more authority" I see is that management plucks these engineers out to make their day job basically "sit in meetings" if you're even slightly effective at simplifying life for everyone else.

Because that is the place of most leverage to place those people, but then those people are in a constant tug-of-war with the first group of "fresh ideas".

Eventually, the people who are in charge of the "prevention of bad architecture" become the bad guys because they (or me, I'm projecting) get jaded into just finding out what's wrong with something as fast as possible to be able to keep up with that workload.

You go from a creative role to a fundamentally sieve role with destructive tendencies, where you are filtering out the good from the bad as fast as possible, be.

First of all, not all new ideas are bad and "there's something bad about X" is not a "let's not do X".

Secondly, going from making things to shooting down things is intellectual suffering if you have a bit of empathy.

Some people on the "committee" with you don't have empathy & literally enjoy it - you're either trying to damage control on a case-by-case or building a "these assholes need to be fired" doc out of the meetings.

I realized what I would become if I conflated authority and respect ("respect my authoritah!").

Quitting was really the only way out of it. But it wasn't hard to explain to my spouse that i needed to leave for a job a level down and which paid half as much, because she could see me bringing my "why the hell do we have to do this" attitude home & to family decisions.

Re:Imaginary Problems Are the Root of Bad Software by tacitusarc on Sunday June 18, 2023 @04:39PM (#36384220)
As a team lead, I’ve found it really difficult to keep curious, smart, young engineers on track. Everyone wants to go off and build shiny things instead of solving real problems. I have to find enough shiny problems that actually need solving to balance out the daily grind. Interestingly, I also find it difficult to instill a sense of meticulousness, and how important it is to write code in a way that reduces bugs. Clever engineers come up with clever, complicated solutions that are written quickly and rely on coincidence to function. Life experience is the best teacher for this, but I often need to step in. I’m still not sure what the balance is there.
Re:Imaginary Problems Are the Root of Bad Software by Aeolun on Sunday June 18, 2023 @09:34PM (#36386326)
> I’ve found it really difficult to keep curious, smart, young engineers on track

I’ve found the opposite. The young engineers are generally willing to listen to reason. The older Enterprise Architects are the ones that want to keep making things more complicated, or want to keep using suboptimal solutions because we’ve been using them for years.

Now that I write it down it’s kind of curious how on one hand it’s complicating things with stuff they already know, and on the other hand it’s absolute rejection of stuff they don’t.

Maybe I’m the same?

Re:Imaginary Problems Are the Root of Bad Software by Xen9 on Sunday June 18, 2023 @02:41PM (#36383039)
This kind of problem surfaces in a large amount of systems involving humans and roles.
Re:Imaginary Problems Are the Root of Bad Software by hinkley on Sunday June 18, 2023 @02:43PM (#36383060)
There’s a couple of woodworking hand tool companies who among other things make replicas of old school Stanley tools, the way Stanley used to make them (materials and tolerances). They also fuse the best elements of several eras or manufacturers to make slightly better versions. Surfaces from this one, handles from that one, adjustment mechanism from a third.

I hope that I live to see a time when software applies modern algorithms to classic designs and produce “hand tools” in software.

Re:Imaginary Problems Are the Root of Bad Software by Aerbil313 on Sunday June 18, 2023 @04:03PM (#36383879)
The field of software is maturing as we’re reaching the end of Moore’s Law and time passes. Times of constant innovation is very slowly coming to an end, the curve is slowly flattening. You can already see it with general trends like type-safety, DX features universal in all languages (linting etc.), browsers finally becoming the universal OS (Wasm, WebUSB, GPU), more and more things being standardized every day.
Re:Imaginary Problems Are the Root of Bad Software by hinkley on Sunday June 18, 2023 @07:39PM (#36385668)
Proebsting's Law says compilers double code efficiency every 18 years. I wonder what the doubling interval is for algorithmic performance. I expect it would be tough to calculate, like the cost of living, because algorithmic improvements rarely anymore affect all aspects of code performance. Incremental improvements in sorting efficiency likely have one of the broadest reaches, followed by concurrency improvements and object lifetime analysis. Then there's a long tail of niche applications that only apply to certain domains.
Re:Imaginary Problems Are the Root of Bad Software by segh on Sunday June 18, 2023 @02:44PM (#36383083)
I'm not sure it's just incentives. Inexperienced early stage founders often end up solving imaginary problems, despite having a real incentive to get it right. The Y Combinator moto is "make something people want" because so many people don't.
Re:Imaginary Problems Are the Root of Bad Software by sh34r on Sunday June 18, 2023 @03:39PM (#36383626)
I agree with just about everything you've said, except that bit about rewrites. Rewrite projects typically go down in flames, and on the rare occasions that they don't, the business stakeholders are still mad because their precious feature factory was down for maintenance for months.
Re:Imaginary Problems Are the Root of Bad Software by Hackbraten on Sunday June 18, 2023 @05:21PM (#36384626)
> months

Please.

Re:Imaginary Problems Are the Root of Bad Software by whstl on Sunday June 18, 2023 @07:03PM (#36385440)
I don't think you two disagree, GP is just saying that large-scale rewrites are rewarded, regardless of the result. I've seen that happening even when stakeholders were unsatisfied.
Re:Imaginary Problems Are the Root of Bad Software by analog31 on Sunday June 18, 2023 @04:03PM (#36383878)
You can still get away with these things if your only user is yourself or maybe a small handful of non-enterprise folks. This could be why the so called "scientific" programmer feels like they can be as productive as a team of 10+ software developers.

And also why the most frequent request from the users is: Please don't change anything.

The principal-agent problem looms large in software.

Re:Imaginary Problems Are the Root of Bad Software by hutzlibu on Sunday June 18, 2023 @07:12PM (#36385510)
"And also why the most frequent request from the users is: Please don't change anything."

I think it is: "Please don't change anything I did not request"

(who does not hate updates that break your workflow?)

But they usually very much like changes, that makes life easier for them. Best way to find out, is to watch them using your tool and talk with them.

Re:Imaginary Problems Are the Root of Bad Software by rapht on Sunday June 18, 2023 @04:06PM (#36383923)
You can think of it in even broader terms: being/staying lean, re-using tried and tested things, adapting your requirements to widely available solutions rather than developing custom solutions to fit your requirements, making everything work more efficiently, etc -- all those resource-minimization issues are "less" problems: not good problems to be working on when your raison d'être is "more" -- and that's the only raison d'être for a lot of people and actually for all businesses. (Obviously there are also specialists for doing "less" "more": unsurprisingly, they are generally paid a cut of savings.)
Re:Imaginary Problems Are the Root of Bad Software by throw10920 on Sunday June 18, 2023 @04:47PM (#36384291)
They're not mutually exclusive.

FOSS software has vastly different incentives than commercial software, yet suffers from many of the same problems: bugginess, poor performance, lack of documentation, feature misprioritization, bad UI.

That alone indicates that the problem is not merely "misaligned incentives".

Actually, you can reduce most problems down to "misaligned incentives" if you're overly reductive enough. That doesn't mean that it's a useful way to think about the world.

Re:Imaginary Problems Are the Root of Bad Software by jrockway on Sunday June 18, 2023 @08:25PM (#36385923)
I think Free Software suffers from the misaligned incentives. Take documentation for example. Why would I write it? I already know how the system works. I designed it! If I forget in a few years, a quick glance at the code will refresh my memory. One would argue that you should write documentation so that people will use your thing. That's true! But there is almost no incentive to have users; you pay a cost, but they pay nothing in return. (Someone will send a bugfix now and again, of course, but it's very very rare.)

Some other incentives are balanced, though. Persistent low performance or bugginess affects the author and end users equally; the more the author uses their own software, the more this will hurt. Sometimes the low performance is a design trade off; Python isn't Rust, and the users seem to be okay with that. It was done on purpose. Sometimes low performance is a factor of the author's needs; you're trying to run the thing on 1 billion machines, they only have 1; something has got to give. But that's not misaligned incentives so much as it is lack of suitability for a particular purpose. A screwdriver is terrible for hammering in nails. That's not the screwdriver's fault.

Re:Imaginary Problems Are the Root of Bad Software by indymike on Monday June 19, 2023 @12:49AM (#36387417)
> I think Free Software suffers from the misaligned incentives.

It's really hard to tell what the motivation of any given free software author is. That makes it really hard to even know what incentives matter to any give author, team or community. It's just really diverse.

> That's true! But there is almost no incentive to have users; you pay a cost, but they pay nothing in return.

It's fascinating to see free software with huge user bases getting on with a tiny number of contributors. It seems like good code + near zero support cost + near zero support expectation seems to work.

Re:Imaginary Problems Are the Root of Bad Software by TheOtherHobbes on Monday June 19, 2023 @04:45AM (#36388755)
Many, likely most, FS projects seem to fall under "likes tinkering." So it's often a different spin on "add shiny tech", except without any PM at all.
Re:Imaginary Problems Are the Root of Bad Software by xyzelement on Sunday June 18, 2023 @05:13PM (#36384550)
Maybe I am biased by my background in finance tech but I saw a ton of guys get rewarded for what (at the time) seemed like boring maintenance of systems.

In retrospect - it was recognized that they built or took good care of money making systems with little drama and that was well appreciated by the companies.

In FAANGs I see now more of "what will get me promoted" versus "what is gonna make the company money" ethos.

Re:Imaginary Problems Are the Root of Bad Software by sanderjd on Sunday June 18, 2023 @08:58PM (#36386086)
Promotion driven features are definitely not entirely a myth IMO, but on the other hand, anecdotally I saw quite a few people get promoted at Google for doing make-things-work-better work. The trick was figuring out which were the important things to maintain and make small improvements to, rather than just which were the things that seemed fun to tinker with, but weren't as impactful.
Re:Imaginary Problems Are the Root of Bad Software by throwaway2037 on Sunday June 18, 2023 @09:12PM (#36386186)
"finance tech" -- those people maintaining those systems are middle-aged, comfortable, and well-paid. If you were junior under them, you would never want to stay. Fifteen years ago, there were large fresh hire classes each year. Tons of juniors around the office. Plenty of young ones dreaming up unnecessary "upgrades". Most of that is gone as the industry has matured. If anything, the hoards of junior hires have moved from finance to Big Tech.
Re:Imaginary Problems Are the Root of Bad Software by AndrewKemendo on Sunday June 18, 2023 @05:16PM (#36384576)
I’m going to reference this comment in the future when I build my next software product. Thanks
Re:Imaginary Problems Are the Root of Bad Software by llanowarelves on Sunday June 18, 2023 @05:30PM (#36384713)
I like that it's this way so we can easily compete with these dysfunctional companies. Don't fix them :)
Re:Imaginary Problems Are the Root of Bad Software by tzhenghao on Sunday June 18, 2023 @05:41PM (#36384802)
"Show me the incentive, I'll show you the outcome." - Charlie Munger
Re:Imaginary Problems Are the Root of Bad Software by woah on Sunday June 18, 2023 @11:31PM (#36387019)
Isn’t he the guy who tried to get a university to build a giant windowless dormitory cube?
Re:Imaginary Problems Are the Root of Bad Software by zimpenfish on Monday June 19, 2023 @04:33AM (#36388684)
I mean, he's not wrong though - the incentive was "University gets a large amount of cash" and the outcome, predictably, was "University bends over backwards to accommodate insane requests of donor".

(The correct solution, obviously, is that universities should be sustainably state-funded and not require mega-donors with their associated insanities, etc. to survive.)

Re:Imaginary Problems Are the Root of Bad Software by pphysch on Monday June 19, 2023 @02:14PM (#36394609)
Still don't understand the opposition to that. Students get affordable, safe, private housing on campus, where there's a million places to hang out beyond your windowless bedroom. Libraries, open spaces, study halls, cafes.

The alternative is often paying $1K for some barely maintained triplex basement shared bedroom off of campus, from a negligent landlord.

Re:Imaginary Problems Are the Root of Bad Software by mattgreenrocks on Sunday June 18, 2023 @07:20PM (#36385560)
Definitely.

I’ll say one thing though: all of those skills you mentioned as not being valued are extremely useful for indie dev/taking ownership. Shipping simple + correct code frequently is extremely possible with sufficient practice and discipline.

More to your point, this is why I switched toward being a research engineer. There is a higher barrier of entry, projects are quite technically challenging, and constraints often force thinking of a world of computing beyond the tiny sphere of the web browser.

It’s hard work, but I love it.

If this resonates, you are in the US, and looking for a change, drop me a note (see profile).

Re:Imaginary Problems Are the Root of Bad Software by sanderjd on Sunday June 18, 2023 @08:53PM (#36386060)
I don't think these "No"s are entirely right, though they are directionally right. But there are actually healthy businesses (and healthy divisions within less healthy businesses) out there that do incentive those behaviors, and it's a huge competitive advantage for them.
Re:Imaginary Problems Are the Root of Bad Software by sheepscreek on Sunday June 18, 2023 @11:35PM (#36387038)
How do companies keep pushing their quarterly numbers higher and higher? By manufacturing innovations! Welcome to 21st century capitalism.
Re:Imaginary Problems Are the Root of Bad Software by bbor on Monday June 19, 2023 @12:14AM (#36387267)
Just want to throw out a way we could align everyone’s incentives: a robust universal economic safety net. If people were working to make a good product rather than stop their children from starving, our natural inclination to take pride in our work would be allowed to flourish.

Not gonna convince anyone but hopefully someone reads this and starts thinking about such options. They are not as impossible as those in power would have us believe.

Re:Imaginary Problems Are the Root of Bad Software by jongjong on Monday June 19, 2023 @12:31AM (#36387349)
With developers, incentive misalignment is just insane at all levels.

- There is bias towards rewarding more lines of code or more code commits (which is often the exact opposite of what characterizes good software design).

- There is bias towards rewarding speed of initial implementation (which often goes against medium-term and long term maintainability and ability to handle requirement changes which is usually far more important). The costs of this tends to fall on other developers who come in later and act as scapegoats for the 'apparent 10x developer'.

- The industry keeps dismantling narratives which would otherwise help to reward talent. For example, many companies dismiss the idea of a '10x developer' - Probably because they are aware of the previous point about the fast developer who cuts corners and creates technical debt for others. 10x developers do exist, but they're not what most people expect because paradoxically, they may be slow coders when it comes to LOC metrics and speed of implementation for new features; their code really only shines in the medium and long run and it improves the productivity of their colleagues too so it's hard to properly allocate credit to 10x devs and they only really matter on greenfield projects.

Re:Imaginary Problems Are the Root of Bad Software by zerbinxx on Monday June 19, 2023 @01:39AM (#36387674)
Mega agree with this. It was really bad for my personal/career growth to get a ton of praise for doing things fast: granted, a lot of people doing the praising had precious little experience in tech themselves. I probably have 2-3 whole dead years where I could have been learning/improving a lot more but got put in “10x developer” expectation projects where I’d churn something out, get a big shiny star sticker for it, and then 2 years later it would be abandoned because there was no incentive for anyone but me to maintain it, and who would want to because it was shitty code with hacks and tech-debt, and anything that isn’t writing a fucking mountain of new garbage code gets in the way of shiny star collection.
Re:Imaginary Problems Are the Root of Bad Software by testacct22 on Monday June 19, 2023 @04:50AM (#36388782)
> but got put in “10x developer” expectation projects where I’d churn something out, get a big shiny star sticker for it, and then 2 years later it would be abandoned

I feel like I've fallen into this hole at my current gig, where I just churn shit out to solve a problem as quickly as possible

I get away with it just bc general code quality was already not good to begin with

Biggest mistake was going fast the first time, now I'm getting assigned way more shit

Word of advice to readers: don't make the same mistake I made. You'll just get taken advantage of

Re:Imaginary Problems Are the Root of Bad Software by viraptor on Monday June 19, 2023 @12:43AM (#36387393)
Just for context for others: This is an extreme description that doesn't match many of the actual jobs. My team/environment is the exact opposite of this, for example. I think parent projected their experience way too far on the whole industry.
Re:Imaginary Problems Are the Root of Bad Software by siilikuin on Monday June 19, 2023 @04:22AM (#36388609)
Reminds me of one of my favorite papers ever: "Nobody Ever Gets Credit for Fixing Problems that Never Happened". https://web.mit.edu/nelsonr/www/Repenning%3DSterman_CMR_su01...

Unfortunately, for my money, I think the only real way you can create an incentive structure which emphasizes stability and change is by offering some kind of form of insurance.

My father was an electrician who often complained about how he never got paid adequately for the stellar, stable work he did, and one day I asked him whether he ever thought of raising his rates but providing a kind of service guarantee, where if a problem occurred that could be traced back to his own work, he would step in and perform the additional work at a reduced fee. Naturally he laughed out loud, because that's not how business works.

Ownership of an already-mature product is sort of like providing an insurance policy by default, of course. And sticking with conventional designs can be a solid business strategy if you use their slow-changing nature to e.g. build the thing faster than you could otherwise. That's the strategy I'm using for my consulting: Stick with what we know best (Hugo+Bootstrap for a napkin sketch UI demo as fast as possible, then SQLite+Django+React to build out the main functionality ASAP too). Emphasize solving the _business_ problem over the shiny tech.

Re:Imaginary Problems Are the Root of Bad Software by mablopoule on Monday June 19, 2023 @11:59AM (#36392583)
I don't know if there is a name for it, but this is a plague for every security-related thing, or any jobs where the more skilled you are, the more people forget you (like a sound engineer for a movie production).

An ex-director of a French national security agency complained about exactly that during an interview, that you get more budget after a terrorist attack, or after you stop one that was well under way, but never if you avoided the condition to create a terrorist cell altogether, or nipped it in the bud.

Re:Imaginary Problems Are the Root of Bad Software by atoav on Monday June 19, 2023 @04:34AM (#36388692)
* * *
Re:Imaginary Problems Are the Root of Bad Software by Cthulhu_ on Monday June 19, 2023 @06:57AM (#36389592)
I've been working in consultancy for most of my career and have been in so many projects by now that seemed to be bullshit rewrites in $tech of the month; at least two projects where microservices were pushed through. The last one I was in was funny because while they had a small army of consultants and self-employed engineers vying for influence and carving out their own slice of the pie, the existing team of running, working, earning .NET software was just going about their day.

It was quite telling that after 1.5 years of that project, where all staff had already been replaced once, all they had to show for was a fancy product name and a presentation. And that the manager that led the project for ~2 years left right before or right when it went live - and he did that in a previous project too, where a working .NET backend for ecommerce was replaced with a Scala microservices on AWS system.

I did hear about the latter; I heard they went back to .NET, but the Scala services are still up and running and a maintenance nightmare.

But the lead developer got to play with his favorite tool and landed a job at lightbend because of it. Career-driven development, and I don't even believe he did it for his own career, but for self-gratification. Ecommerce is boring; REST APIs and a front-end are boring. But Scala, distributed systems, AWS, that's all cool and new.

I'm so tired.

Re:Imaginary Problems Are the Root of Bad Software by liftsh on Monday June 19, 2023 @09:08AM (#36390644)
New is not always better, but many times it is. We see this for example in programming languages, where newer ones incorporate the best features of their predecessors.

I think there are two things to be wary of: 1) Selecting a new technology just because it's hot, and 2) Refusing to consider new technology because the old stuff "just works." A good engineer looks at the requirements and selects the best tool to solve the problem while weighing the costs and benefits. Sometimes that's microservices. Sometimes it's monoliths. Granted, I don't know anything about the developers or business problems at that company, but to say that Scala microservices are just bad without justification doesn't sit right with me. It's all situational.

If an engineer comes to me and asks to use something like Scala, he'd better know all the upsides AND downsides (e.g. effect and streaming abstractions, ease of long-term maintenance, referential transparency, vs learning curve, hire-ability, 100 different ways of doing things, etc).

Re:Imaginary Problems Are the Root of Bad Software by strulovich on Monday June 19, 2023 @09:23AM (#36390802)
If new is not always better, then you’re stuck with the really hard job of knowing when it’s worth moving to the new thing.

Worse, you’ll be blinded by survivability bias. One easily notices the good rewrites and can easily ignore the bad ones.

Even worse, bad rewrites may be noticed in a place that a year or two ago was deemed a success story. I’ve seen many such cases due to misunderstandings or just political dynamics.

And lastly, don’t let that Engineer do Scala, they’ll brush off the compilation time regression and make all developers lives slightly worse (assuming the project is big enough)

Re:Imaginary Problems Are the Root of Bad Software by liftsh on Tuesday June 20, 2023 @06:02AM (#36401841)
Yeah, good point--when I said new wasn't always better, I was just talking about the case where the new tech solves a problem, but it's not the one you have.

Like choosing GraphQL just because it's new, even if your data doesn't have the structure for it.

Will have to disagree with you on Scala for several reasons I won't go into here--but the point was just that, in order to make these arguments in the first place, you need to do your research. Seems commonsense, but surprisingly many people don't do it (including younger me).

Re:Imaginary Problems Are the Root of Bad Software by rewmie on Monday June 19, 2023 @04:57PM (#36396358)
> No designer is given promotion for sticking to conventional designs. It's their creative & clever designs that get them attention and career incentives.

This. I recall the case of a couple of FANGs who on one hand expect their engineers to deliver simple, maintainable and robust systems to minimize operational costs, but on the other hand they demand engineers operate at the next level to be considered for a promotion, which means they are expected to design non-trivial systems which have a certain degree of complexity and require significant amounts of work to pull off. Therefore, as an unintended consequence, the pressure inexperienced engineers to push needlessly complex projects where they are required to design solutions well above their level of expertise, and put them in a position where their career is personally threatened if anything gets between them and their promotion-driven project.

Re:Imaginary Problems Are the Root of Bad Software by brianmcc on Wednesday June 21, 2023 @08:50AM (#36417804)
Not universally true. Just find a manager who values successful delivery of project goals and is fine with "boring" i.e. tried-and-tested technology.

I blame Career-Driven Development for a lot of "shiny toy" (i.e. failed and complicated) projects.

Whether that's wrong is a deeper question - if it leads to better salary through job-hopping and promotions, despite a catalog of failures, is it actually the wrong approach from an individual engineer perspective?

I still say yes, FWIW; I enjoy seeing my projects succeed and thrive. But I know others may disagree.