News for hackers. Stuff that matters.
Re:System design and the cost of architectural complexity by nerpderp82 on Thursday April 06, 2023 @02:02PM (#35472009)
Engineers that make simple systems are not rewarded is most organizations. In a ten person company, sure thing! In a large corporate org, no way.
Re:System design and the cost of architectural complexity by dustymcp on Thursday April 06, 2023 @02:07PM (#35472062)
Man the dead weight around development in corporations are mind numbing..
Re:System design and the cost of architectural complexity by nerpderp82 on Thursday April 06, 2023 @02:13PM (#35472177)
The institutionalized brain damage is real, I see bright new hires coming in, within 3 months they are towing all the lines, spouting tautologies, seeking alignment with corporate velocity vectors to gain momentum, generate impulse. Talking in non-specific platitudes that could literally mean anything and thus mean nothing.

The biggest problem with a simple architecture and often why someone would complexify it up, is as a protection mechanism so you don't get some performance review motivated yokel doing a drive by to add in a feature and look like a rock star because it was so damn easy. NSS, that was the next step. You see this in open-source as well. Someone builds a beautiful foundation, and Steve rolls up with a submarine pull request to slam that cherry on top.

A complex architecture ensures that you can adequately gate keep.

The next aspect is you have to relentlessly say no to feature requests that literally destroy the system to add some new feature, the pressure to smash it to bits and make it a no longer simple system is such a perverse incentive that unless you have support from on high, every simple system will decay into a total mess, then the finger-painters will have moved on to some other system to predate on.

Re:System design and the cost of architectural complexity by babyshake on Thursday April 06, 2023 @02:21PM (#35472289)
> non-specific platitudes

Anything specific that tends to be used often?

Re:System design and the cost of architectural complexity by nerpderp82 on Thursday April 06, 2023 @02:24PM (#35472349)
It is org specific, I have already triggered myself and need to find a safe space.
Re:System design and the cost of architectural complexity by damiankennedy on Thursday April 06, 2023 @03:20PM (#35473104)
"Move fast and break things".

At 48 I've stopped fixing other people's things.

Re:System design and the cost of architectural complexity by runlaszlorun on Saturday April 08, 2023 @11:23AM (#35494134)
Prob OT but ‘break things’ old Zuck sure did. A bit sad given the billions folks made in the meantime.

I almost said that I’m surprised they weren’t held accountable… but we all know better.

Re:System design and the cost of architectural complexity by bradstewart on Thursday April 06, 2023 @03:44PM (#35473386)
Appealing to "best practice" without concrete, specific reasoning is a big one.
Re:System design and the cost of architectural complexity by whstl on Thursday April 06, 2023 @05:06PM (#35474450)
"We need to build something that scales" to justify virtually every single source of complexity.
Re:System design and the cost of architectural complexity by dahauns on Friday April 07, 2023 @09:21AM (#35481304)
Especially when then understanding of scaling only distinguishes between "unmaintainable monolith" and "full-blown web scale".
Re:System design and the cost of architectural complexity by waynesonfire on Thursday April 06, 2023 @02:46PM (#35472638)
I don't think it has to be so nefarious. What I've experienced is developers taking the path of least resistance and failing to perform proper analysis to arrive at a less complex architecture.

Why are folks taking the path of least resistance becomes an interesting question.

Re:System design and the cost of architectural complexity by a4isms on Thursday April 06, 2023 @02:54PM (#35472754)
FYI, it's "toeing" the line. It's an expression from track and field, where at the start of each race the competitors place the tip ("toe") of their foot on the start line when they're ready to run.

Similar to the expression "Up to scratch." In a boxing ring, there is a line in the ring that boxers must come to to begin the fight. To be "up to scratch" is to be ready and worthy of the fight, and from that, to be of acceptable quality or capability.

Re:System design and the cost of architectural complexity by pksebben on Thursday April 06, 2023 @03:14PM (#35473028)
Minor correction for your correction:

"Toe the line" most likely has it's roots in military tradition [1]. To toe the line is to stand at the line for inspection - it's still used that way today (I had to do it myself in boot camp).

Relevant, as in this context, it means being obedient to the hierarchy.

1 - https://en.wikipedia.org/wiki/Toe_the_line#:~:text=The%20mos....

Re:System design and the cost of architectural complexity by a4isms on Thursday April 06, 2023 @03:26PM (#35473187)
Most interesting, I do believe you're right!
Re:System design and the cost of architectural complexity by piotr-yuxuan on Thursday April 06, 2023 @04:29PM (#35473964)
Interesting, I hadn't seen #:~:text=abc before. It does nothing on my browser (Firefox 109.0b9 on macOS) but is it inteded to highlight text?
Re:System design and the cost of architectural complexity by aidos on Thursday April 06, 2023 @05:52PM (#35475034)
It does on Chrome. I believe it’s used from Google search results to link you to the relevant place in the page.
Re:System design and the cost of architectural complexity by johnmaguire on Thursday April 06, 2023 @02:57PM (#35472797)
> The next aspect is you have to relentlessly say no to feature requests that literally destroy the system to add some new feature, the pressure to smash it to bits and make it a no longer simple system is such a perverse incentive that unless you have support from on high, every simple system will decay into a total mess, then the finger-painters will have moved on to some other system to predate on.

Would you rather have a simple system that does nothing, or a complex / difficult-to-work with system that solves customer needs? It's easy to go too far in either direction.

Re:System design and the cost of architectural complexity by hbrn on Thursday April 06, 2023 @04:15PM (#35473761)
In my experience, most of the software complexity is accidental, i.e. it doesn't directly emerge from customer needs.

And even if your framework is to use customer needs as justification for complexity, people will still use something like Kubernetes for an app with 10 monthly users, because it "helps us deliver features faster, have zero-downtime deployments and be scalable".

Most (non-product) engineers have a natural inclination to introduce more complexity, and will use mental gymnastics to justify it.

Re:System design and the cost of architectural complexity by nerpderp82 on Thursday April 06, 2023 @08:35PM (#35476548)
The majority of human intellect is used to justify actions they have already taken.
Re:System design and the cost of architectural complexity by PaulStatezny on Thursday April 06, 2023 @04:33PM (#35474004)
> Would you rather have a simple system that does nothing, or a complex / difficult-to-work with system that solves customer needs?

With respect, this is clearly a false dichotomy.

Creating the "simplest possible system" that solves customer needs is the entire point of this discussion. Avoiding as much complexity as possible brings enormous benefits. (Less bugs, less employee turnover, higher productivity, etc.)

Never accept the notion that systems must be "difficult-to-work with" in order to solve customer needs.

Re:System design and the cost of architectural complexity by johnmaguire on Friday April 07, 2023 @03:48PM (#35486175)
It would be a false dichotomy, if I meant to say that you must choose one of these paths. I suppose "it's easy to go too far in either direction" was not clear enough. The argument I'm making is that the OP is creating a false dichotomy: that you must reject feature requests, or ruin the system.

My point is that there are many, many developers who "relentlessly say no to feature requests that literally destroy the system to add some new feature" when the reality is that they do not want to put in the effort required to add the (meaningful) feature to the system.

They are choosing system purity and laziness over delivering customer value, which requires more work in order to keep things simple.

Re:System design and the cost of architectural complexity by whstl on Thursday April 06, 2023 @05:05PM (#35474434)
I never really had to make this choice. But I often had to choose between a system that is reasonable and actually solves the needs of customers, versus a system that is complex, made in a hurry and full of badly made features that only some project manager cares about. I know which one I prefer.

Just today, for example, I removed several thousand lines of code from a very complex form that no customer ever really used other than for testing. My boss told me "just nuke it". Life goes on.

Re:System design and the cost of architectural complexity by WakoMan12 on Thursday April 06, 2023 @05:15PM (#35474574)
i want to die
Re:System design and the cost of architectural complexity by zaphar on Thursday April 06, 2023 @07:35PM (#35476017)
On the chance that this is a real cry for help and you are in a really bad place, please seek help.
Re:System design and the cost of architectural complexity by pixl97 on Thursday April 06, 2023 @02:10PM (#35472141)
This is why small organizations produce stuff, then large organizations buy it and sell it as a product.

As an engineer you just have to ensure you have equity in the small company before it's purchased and/or hope the big company buys your company rather than just copying it and fighting you in court for a decade.

Re:System design and the cost of architectural complexity by travisgriggs on Thursday April 06, 2023 @03:10PM (#35472983)
Is this because as groups grow in size, high level decision making power tends to move up to less informed management individuals?

You'll end up with a "I programmed a little bit back in the day" person who makes decisions based on how to currently keep their staff best utilized. Tools choices, boundary points, stacks, become chosen based on goals that are not rooted in design simplicity.

I've watched this story play out again and again and again at companies. Upper management will promote these types of individuals into lower/middle management because

a) they're deemed actually reassignable whereas a really talented Ux designer is obviously adding the most value doing that

b) people buried/invested in tech stack/design details are harder for owner/operators to relate to than individuals more like themselves.

Re:System design and the cost of architectural complexity by api on Thursday April 06, 2023 @04:43PM (#35474125)
As groups grow in size it becomes increasingly hard to be informed as management. Eventually it becomes near impossible.
Re:System design and the cost of architectural complexity by travisgriggs on Thursday April 06, 2023 @08:27PM (#35476480)
And yet, somehow open source projects manage to have some degree of success with very little of anything representing “management”.
Re:System design and the cost of architectural complexity by api on Thursday April 06, 2023 @09:02PM (#35476744)
How many do, and how many of those see success outside their core highly technical user bases?
Re:System design and the cost of architectural complexity by code_biologist on Friday April 07, 2023 @02:17AM (#35478663)
How many of the extremely successful open source projects have clear strong management that's one dude(ette)? Linux, Python, Ruby, Blender...

Great delegation and engaging with community feedback productively are of course part of that strong management.

Re:System design and the cost of architectural complexity by kps on Thursday April 06, 2023 @03:31PM (#35473248)
At a place I worked, they explicitly rewarded ‘solving complex problems’. It's actually surprising there weren't more cobra farms.