Live data from Hacker News

The Software Crisis

wryl.tech

31–40 of 201 posts

Re: The Software Crisis

#31
> Very rarely do these models reflect reality.

> It's a nice coincidence when they do.

> It's catastrophic when they don't.

Well, generally, it’s not my experience. Most software out there is not critical. Many bloated crappy webapp might end up badly doing what user is expecting while sucking irrelevantly large amount of resources all day through with erratic bugs showing here and there, yes all true.

But this is not as critical as the software that handle your pacemaker or your space rocket.

Most software can afford to be crap because most projects are related to human whims for which a lake of quality is at worst a bit of frustration that will not cause a feeling of devastation or pure death penalty. All the more, I guess that most software developers out there are neither working on Sillicon-Valley-like money motivation, nor paying their bill with the kind of software project they love to build on passion. So this means most software that hits market are generated through exogenous miserable remunerations. Who will expect anything else than crap to be the output of such a process?

Re: The Software Crisis

#32
post #7

Earlier quoted context omitted.

If only they had unveiled the single unifying abstraction of everything :(

Oh that's a solved problem since 1969. It's called "unix". Everything is a file which can be processed as a byte stream. Composition is a breeze- can't be any more general than that! (I kid, mostly :)).

That's the worse-is-better grand unified abstraction.

The Right Thing, as any Lisp programmer can tell you, is lambda.

Re: The Software Crisis

#33

If you look at the resumes of engineering or automotive company leadership, you'll see people going through stages of ever expanding responsibilities of part, component and product design, or management of production facilities of increasing size and importance. The CEO will still emphasize their technical knowledge, non-technical staff will at least try and fake it. In agile software development on the other hand, t…

> I partly blame Hollywood and their incessant humiliation of software/IT people, while creating endless leading roles for doctors and lawyers, effortlessly weaving their complicated terminologies into fascinating storylines, which is aparently not possible to do for us?

Doctors and lawyers deal with people and everyday problems that are easy to turn into a interesting story. I don't see many contract lawyers or radiologists as protagonists - it's ER docs and criminal law.

Software development is about rigorously talking to a computer all day, either solving mundane solved tasks in a new application, or problems that you can't even grasp without a technical background. I'm a developer who started programming as a teen over 20 years ago for fun - and I'm bored out of my mind with most of the work - I don't even try to talk about it to non-developers because I know it's about as interesting as accounting, more people would get useful info out of their stories.

Re: The Software Crisis

#34
post #3

The “inscrutable layers unapproachable to beginners” of today are the bare metal low level computing of tomorrow. Sure I learned with DOS and Turbo Pascal and it was wonderful, but if you ask my teachers who learned with machine code and microcontrollers, they worried that computers have become too abstract and kids these days have little chance to learn the true details.

If it's done right, by documenting a mature interface and its inputs/outputs, no one needs to know what atoms make up the slice of bread that gets buttered.

Isn't that exactly what the author is complaining about? There is too much complexity to understand all of the layers no matter how well documented.

Re: The Software Crisis

#35
This article presupposes that this software crisis actually exists or is a significant problem. The crisis is all this these things:

    Projects running over-budget
    Projects running over-time
    Software was very inefficient
    Software was of low quality
    Software often did not meet requirements
    Projects were unmanageable and code difficult to maintain
    Software was never delivered
Now take the word "software" out and how many human endeavours have one or all of these things? And then how much software is actually pretty great? We tend only see the failures and the flaws and success is just a baseline that we completely ignore even as it gets continuously better.

When we press the power button on our computer and it gets to a desktop, our computer has already run through hundreds of abstractions. Just at that desktop it is already the most complicated machine we have or will interact with all day. This happens billions of times a day, all across the world, and mostly flawlessly. And that's just one tiny example.

Re: The Software Crisis

#36
post #25

If you look at the resumes of engineering or automotive company leadership, you'll see people going through stages of ever expanding responsibilities of part, component and product design, or management of production facilities of increasing size and importance. The CEO will still emphasize their technical knowledge, non-technical staff will at least try and fake it. In agile software development on the other hand, t…

The perceived misery you describe I feel is self-inflicted. Many devs "below" me have become entirely disconnected from customer needs, instead only focusing on "interesting" dev problems. Why do developers only work on ticket-sized portions of the actual requirements? To put it succinctly: because they are simply too dumb. They cannot wrap their heads around it. They cannot grasp it. Do I sound frustrated? I am. It…

I think categorizing it as "Too dumb" is also doing disservice to many developers who are stuck in feature factories. After a while you realize business is happy with status quo so do your Jira tickets, take your paycheck and go home. My puny stock options are extremely unlikely to be impacted by my work output.

My boss doesn't care about Tech Debt. Get this ticket done, get it done quick and move on. He figures he will be long gone before tech debt racks up to point he would get in trouble for it. Hell, I'm not sure his higher ups even realize the tech debt problem so fact if he is here for 4 years, they wouldn't realize what was cause of the tech debt.

Re: The Software Crisis

#37

> Very rarely do these models reflect reality. > It's a nice coincidence when they do. > It's catastrophic when they don't. Well, generally, it’s not my experience. Most software out there is not critical. Many bloated crappy webapp might end up badly doing what user is expecting while sucking irrelevantly large amount of resources all day through with erratic bugs showing here and there, yes all true. But this is no…

While I sympathize that the stakes don't appear to match up, I am talking about all software, and also taking into account the fact that these frustrations are numerous. It'd be one thing if it was taken in small pieces, small cracks in the stairs, but half of them are missing on average.

I really don't like missing stairs.

We're very removed from the usage of our software, and experience it in short-form (hopefully) actionable signals that we use to inform our development process. We don't get to appreciate the real pain in this "death by a thousand cuts" unless we can somehow switch bodies with a new user.

I see programming as a trade, however, and we do have the power to govern the quality of our software. There are, however, incentives, financial or not, that can get us to look the other way.

Re: The Software Crisis

#38

If you look at the resumes of engineering or automotive company leadership, you'll see people going through stages of ever expanding responsibilities of part, component and product design, or management of production facilities of increasing size and importance. The CEO will still emphasize their technical knowledge, non-technical staff will at least try and fake it. In agile software development on the other hand, t…

I could buy this argument. Had I been a junior during the agile era, I'm not sure I would have developed as fast or as far as I have. The most agile pilled company I worked for just treated juniors & seniors as interchangeable cogs, except seniors should be able to clear more points per sprint. Active discouragement from thinking outside the scope of your ticket, keep your head down and mouth shut.

When I was starting out a bit more than a decade ago, I was on an agile/scrum software team in a hardware company. The team was fine but I found the process painful. I ejected as soon as a new director realized he could do algebra with the story points and began plotting stories quarters out. I've never been on a scrum team since and am happier for it. As a manager now, I would push back on scrum in almost every situation (and have).

Re: The Software Crisis

#39
Complaining about too many abstractions in software is like complaining about too many meetings in a Scrum shop. It's true. Everybody knows it. Or rather, it would be true if efficiency of the software/development process were the thing being optimized for. But it's ultimately a short-sighted perspective because you're not thinking of the people involved.

In the case of Scrum, Scrum is implemented because it gives managers and stakeholders some semblance of observability and control over the software development process. Granted, Scrum shops are merely cosplaying at implementing a rigorous, controlled methodology, but if you take that semblance away you will have angry, frustrated decision makers who resent the software teams for being opaque and unwilling to commit to budgets or schedules.

In the case of abstractions... maybe there are a bunch of junior devs who just can't learn the complexities of SQL and need an ORM layer in order to reckon with the database. (I worked at a software shop where the most senior dev was like this; part of the reason I was brought on board was because I knew how to munge the PL/SQL scripts that formed part of their ETL process.) Maybe one part needs to be completely decoupled from another part in order to allow, for example, easy swapping of storage backends, or the creation of mocks for testing. Maybe some architect or staff SE is just empire-building, but at any rate they're way above your pay grade so the thing will be built their way, with their favorite toolkit of abstractions and advocating for the use of fewer abstractions will get you nowhere.

If you're working on a team of John Carmacks, great! You will be able to design and build a refined jewel of a software system that contains just the right amount of abstraction to enable your team of Carmacks to maintain and extend it easily while still running smoothly on a 386. Unfortunately, most software teams are not like that, most customers are not like that, so the systems they build will develop the abstractions needed to adjust to the peculiarities of that team.

Re: The Software Crisis

#40
post #16

Hi! Author here. I think it's important to address certain aspects of this post that people tend to misunderstand, so I'll just list them here to save myself the effort. * I do not argue against abstractions, but against the unrestricted application of them. * I do not advocate for a reversion to more constrained platforms as a solution. * I do not advocate for users becoming "more technical" in a "suck it up" fashio…

I've been a fan of handmade and seems like a new blog in the same spirit is born. I look forward to reading more of your writings.

I have recently started writing myself and paying more attention to what I read. I really liked your style and enjoyed reading it.

So please keep writing!

Post reply on HN