Live data from Hacker News

Why does it take so long to build software? (2020)

simplethread.com

51–60 of 180 posts

Re: Why does it take so long to build software? (2020)

#51

Earlier quoted context omitted.

Did Ami Pro let dozens of users around the world edit the same document at the same time? Some of them being on cell phones? Did it automatically store your document somewhere that can be accessed from any computer with internet access? Seems to me like we really do have more features.

I think a problem here might be that those aren't exactly "Ami Pro" (or word processor in general) features, they're just tacked on the word processor even though it has nothing to do with word processing (even the multiple editors at the same time is essentially about having multiple views - not too different than opening two MDI windows in Office 97 or whatever with the same document but different positions - that…

Simultaneous editing of the same document over the Internet is a fundamentally different problem than having multiple views on a local machine: 1) On a local machine, only one view has the input focus, and 2) you don't have to deal with high-latency, unreliable communication and synchronization.

> the underlying system should allow for such uses

That's not possible in the general case. It's a hard enough problem for the specialized case of text editing.

Re: Why does it take so long to build software? (2020)

#52
post #32

Aren't most developers in the world paid a salary or day rate and thus are paid for their time? What incentive is there for them to "hurry up" rather than sandbag?

Agreed. I would go further and say that is true of any salaried employee who has no significant stake in the business

Re: Why does it take so long to build software? (2020)

#53
post #20

One aspect that is not mentioned is that we build software on top of an ever-increasing number of first-to-market, low-quality, building blocks. And by low-quality I mean "worse is better"/MVP/"everyone makes mistakes"/"leaky abstractions"/etc -- pick your favorite. As a result, we spend more and more time dealing with someone else's mistakes rather than making forward progress.

Totally agree.

Move fast and break things? Let’s not. Let’s build carefully and methodically. Teach others how to build quality software. Stop regurgitating what you watch on YouTube 4 hour course. I’ve seen horrific, I mean absolutely bottom of the barrel code being taught to others. Especially in JS community - yes, I’m picking at you guys again.

When teaching goes to shit, you’re breeding and propagating, institutionalizing horrible ways to do something - amplified 100x because YouTubers are chasing viewership. That code camp 8 hour course is better replaced by reading good books and docs. Actually build something by thoroughly reading the docs.

Now you got 100x more developers building foundational blocks that other developers blindly build atop.

Study what Unix did when they were building small composable highly quality building blocks. Still used today after 45 years!

Re: Why does it take so long to build software? (2020)

#54
post #29

Earlier quoted context omitted.

Why is that? It's because we don't learn from the past and keep thinking we're the smartest and have to reinvent everything with every new generation of developers. I've worked at a company where elasticseatch, postgres, message queues, custom microservice platforms, custom cicd platforms were deployed for a load that could fit in ram of one machine. With maybe 10 customers per minute. And you're wrong about accounti…

Its important to distinguish b/w anecdotal experience and industry trends. A lot of great tech was invented to solve very real problems that groups of people faced. Once it gets hyped though, everyone wants it in their stack because they've read about it in blog posts or want to give a conference talk about or . Elasticsearch, postgres, message queues etc. all were invented by people when they faced real problems. As…

You're just proving my point. As a profession we base our decisions on blog posts and potential fun.

I'm all for these technologies, I'm against the fact that regularly as a profession we order multi million dollar digging equipment to dig a small hole. I've literally seen a bored group of devops start building their own cicd solution and give up after a few months of (highly paid) work

Not to mention that all these powerful technologies are super complicated and developers don't take the proper time to learn how to operate it correctly.

Just think of the Hadoop craze 5 or so years ago when people were throwing it at few gig datasets. Or even now what's happening with "data engineering" where we build massive pipelines that could be handled by a competent python script. It's crazy and we don't as a profession have any success criteria on our deliverables and we've just accepted that "things are hard" while getting paid more than most professions can dream about

Re: Why does it take so long to build software? (2020)

#55
post #39

Because we don't dare making bold decisions like: * Throw out all MySQL/MariaDB installations and replaced them with PostgreSQL because it is objectively, provably better. * Stop writing build-systems in untyped languages, because they are less productive when used by a team.

Did you read the article? The author doesn’t mention any specific technologies as the source of the problem but instead the increase in expectations of what software can do, how it is made and the complexity incurred because of that.

Re: Why does it take so long to build software? (2020)

#56
post #39

Because we don't dare making bold decisions like: * Throw out all MySQL/MariaDB installations and replaced them with PostgreSQL because it is objectively, provably better. * Stop writing build-systems in untyped languages, because they are less productive when used by a team.

I've used MySQL/MariaDB for over 10 years (as well as MSSQL, Sybase, PostgreSQL, SQLite and any others I forgot) and I've had minimal problems with them. No more problems than I've had with any other DB system.

Edit: I also used MongoDB and hated it.

Re: Why does it take so long to build software? (2020)

#57
post #30
post #20

One aspect that is not mentioned is that we build software on top of an ever-increasing number of first-to-market, low-quality, building blocks. And by low-quality I mean "worse is better"/MVP/"everyone makes mistakes"/"leaky abstractions"/etc -- pick your favorite. As a result, we spend more and more time dealing with someone else's mistakes rather than making forward progress.

This has not been my experience in backend development (and some dabbling in building small React frontends). Our building blocks are FOSS components who are quite robust and widely tested, and the bugs, mistakes and shortcuts we have to deal with are almost exclusively of our own making.

"There are popular bad libraries out there that people base their software on." "I use good libraries"

Not really relevant.

Re: Why does it take so long to build software? (2020)

#58
Software takes a long time to build because it's always new.

That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identical copies of that product so that it can be physically sold to more than one person.

The insane amounts of repeated effort involved in building any physical product at scale have a silver lining, in that the repetition enables a very good and stable estimate of how long another repetition will take. Software is the opposite situation --- we only need to build anything once, but not having built that thing before, we don't really know how long it will take.

Re: Why does it take so long to build software? (2020)

#59
I think software takes longer to build now than it did before even with all our software advancements. Abstracting the market requirements completely, the new technologies are very slow to create an mvp out of.

For example, a week ago I started a Symfony (php framework) project and let it on default server side rendered setup. I bought a $20 css+html template. I created some entities and then just inserted a form for that entity into an html file using one line of code. It took me less than 1h to do this, with containerization and db setup and figuring out how things work in Symfony.

It blew my mind. I totally forgot how easy it was and I could focus on the things that mattered. To do the same thing in React/Angular would have taken me much longer since I simply had to build 2 things (a frontend and a backend). I think this is why today software takes longer to build: You simply have to build more behind the scenes so that the end customer sees a form/page/button.

Re: Why does it take so long to build software? (2020)

#60

We are asking more and more of our software. Are we, though? This assumption merits deeper scrutiny. It's obviously true sometimes, but does it really generalise? In terms of functional requirements, we use lots of online software today that is far simpler than its traditional desktop equivalents in feature set. Many successful SaaS businesses are providing tools to help businesses organise that are often barely more…

I agree, feels like we've conditioned to accept software playing dumb and being unreliable. A couple decades ago, random glitches attracted much scrutiny, today we just take it for granted.

Is that really true? I remember routine blue screens and system hard-crashes a couple decades ago. They're not commonplace today. We're primed to remember the past rosily.
Post reply on HN