←back to thread

1087 points smartmic | 8 comments | | HN request time: 0.711s | source | bottom
Show context
anthomtb ◴[] No.44303941[source]
So many gems in here but this one about microservices is my favorite:

grug wonder why big brain take hardest problem, factoring system correctly, and introduce network call too

replies(8): >>44304390 #>>44304916 #>>44305299 #>>44305300 #>>44306811 #>>44306862 #>>44306886 #>>44309515 #
jiggawatts ◴[] No.44304390[source]
I keep trying to explain this to tiny dev teams (1-2 people) that will cheerfully take a trivial web app with maybe five forms and split it up into “microservices” that share a database, an API Management layer, a queue for batch jobs to process “huge” volumes (megabytes) of data, an email notification system, an observablity platform (bespoke!) and then… and then… turn the trivial web forms into a SPA app because “that’s easier”.

Now I understand that “architecture” and “patterns” is a jobs program for useless developers. It’s this, or they’d be on the streets holding a sign saying “will write JavaScript for a sandwich”.

replies(4): >>44304502 #>>44304522 #>>44304575 #>>44305470 #
1. mattmanser ◴[] No.44304575[source]
It's all they've seen. They don't get why they're doing it, because they're junior devs masquerading as architects. There's so many 'senior' or 'architect' level devs in our industry who are utterly useless.

One app I got brought in late on the architect had done some complicated mediator pattern for saving data with a micro service architecture. They'd also semi-implemented DDD.

It was a ten page form. Literally that was what it was supposed to replace. An existing paper, 10 page, form. One of those "domains" was a list of the 1,000 schools in the country. That needed to be updated once a year.

A government spent millions on this thing.

I could have done it on my todd in 3 months. It just needed to use simple forms, with some simple client side logic for hiding sections, and save the data with an ORM.

The funniest bit was when I said that it couldn't handle the load because the architecture had obvious bottlenecks. The load was known and fairly trivial (100k form submissions in one month).

The architect claimed that it wasn't possible as the architecture was all checked and approved by one of the big 5.

So I brought the test server down during the call by making 10 requests at once.

replies(4): >>44304896 #>>44305621 #>>44307288 #>>44308446 #
2. jiggawatts ◴[] No.44304896[source]
> So I brought the test server down during the call by making 10 requests at once.

Back in the very early 2000s I got sent to "tune IIS performance" at a 100-developer ISV working on a huge government project.

They showed me that pressing the form submit button on just two PCs at once had "bad performance".

No, not it didn't. One was fast[1], the other took 60 seconds almost exactly. "That's a timeout on a lock or something similar", I told them.

They then showed me their 16-socket database server that must have cost them millions and with a straight face asked me if I thought that they needed to upgrade it to get more capacity. Upgrade to what!? That was the biggest machine I have ever seen! I've never in the quarter century since then seen anything that size with my own two eyes. I don't believe bigger Wintel boxes have ever been made.

I then asked their database developers how they're doing transactions and whether they're using stored procedures or not.

One "senior" database developer asked me what a stored procedure is.

The other "senior" database developer asked me what a transaction is.

"Oh boy..."

[1] Well no, not really, it took about a second, which was long enough for a human button press to to "overlap" the two transactions in time. That was a whole other horror story of ODBC connection pooling left off and one-second sleeps in loops to "fix" concurrency issues.

3. nyarlathotep_ ◴[] No.44305621[source]
> It's all they've seen. They don't get why they're doing it, because they're junior devs masquerading as architects. There's so many 'senior' or 'architect' level devs in our industry who are utterly useless.

This is the real, actual conversation to be had about "AI taking jobs."

I've seen similar things a lot in the private sector.

There's just loads of people just flailing around doing stuff without really having any expertise other than some vague proxy of years of experience.

It's really not even exactly their fault (people have lives that don't revolve around messing about with software systems design, sure, and there's no good exposure to anything outside of these messes in their workplaces).

But, outside of major software firms (think banks, and other non-"tech" F500s; speaking from experience here) there's loads of people that are "Enterprise Architects" or something that basically spend 5 hours a day in meetings and write 11 lines of C# or something a quarter and then just adopt ideas they heard from someone else a few years back.

Software is really an utterly bizarre field where there's really nothing that even acts as valuable credentials or experience without complete understanding of what that "experience" is actually comprised of. I think about this a lot.

replies(3): >>44307340 #>>44307703 #>>44309048 #
4. arkh ◴[] No.44307288[source]
> They'd also semi-implemented DDD.

One of my pet-peeves. "We're doing DDD, hexagonal architecture, CQRS". So, when was the last time your dev team had a conversation with your domain experts? You have access to domain experts don't you? What does your ubiquitous language look like?

So no, some "senior" read a blog post (and usually just diagonally) and ran with it and now monkey see monkey does is in full effect.

And you get the same shit with everything. How many "manager" read one of the books about the method they tell you they're implementing (or any book about management) ? How many TDD shop where QA and dev are still separate silos? How many CI/CD with no test suite at all? Kanban with no physical board, no agreed upon WIP limits, no queue replenishing system but we use the Kanban board in JIRA.

replies(1): >>44308526 #
5. rcxdude ◴[] No.44307340[source]
>Software is really an utterly bizarre field where there's really nothing that even acts as valuable credentials or experience without complete understanding of what that "experience" is actually comprised of. I think about this a lot.

Most other fields are similar, frankly.

6. IsTom ◴[] No.44308446[source]
On the other side of the coin, once some part of government contacted us about a project they wanted done. I don't even remember what it was, but it was something very simple that we estimated (with huge margins) to be 3 months of work end-to-end. What we heard back was that they need it to take at least two years to make. I suspect some shady incentives are in play and that exceedingly inefficient solutions are a plus for someone up the chain.
7. roryirvine ◴[] No.44308526[source]
Yeah, exactly, and you see it all over the place. It's not even cargo-culting, it's more half-arsed than that.

"We're all-in on using Kanban here"

"Ah, great. What's your current WIP limit?"

"Um, what's a whip limit?"

As a consultant, I don't actually mind finding myself in the midst of that sort of situation - at the very least, it means I'm going to be able to have a positive impact on the team just by putting in a bit of thought and consistent effort.

8. jeltz ◴[] No.44309048[source]
This is in no way unique to software. Virtually all fields I have insight in are the same and managment is one of the worst.