Live data from Hacker News

Does the software industry learn?

tomrenner.com

81–90 of 102 posts

Re: Does the software industry learn?

#81

I think there's a myth that rewriting software is bad, or at least a symptom of badness, and "reusing" software is ideal. But writing software is really like creating plans: plans for what the machine should do. Of course there is much room for reusing old plans as components of your new plan. But still every plan must be about what is needed at the moment, not about reusing existing plan-components. In human communi…

> But those are more like idioms of the language, not "subroutines".

Actually a lot of mechanical manual work we do are subroutines.

Examples

1. Make an omlette (params like: which kitchen or ingredients are derived from context)

2. Change engine oil

3. Take blood sample

Re: Does the software industry learn?

#82

Earlier quoted context omitted.

Not only that, but we're now creating devices that depend on remote servers. It's completely obvious what the downsides to this are, yet we embrace it without question. And why are moving to apps that only work online? Networks are slow compared to desktops. Programming seems to be the art of doing the worst thing possible. Our computers are getting faster and faster, but we're relying on communications that are vast…

I think it's preposterous to expect that software that has millions of line of code (like Windows or Firefox) is perfect. Software Engineers are humans as well and we do make mistakes. You could argue that we should adopt the same testing strategy of mission critical pieces of logics where 1 LOC has 1+ LOCs of test code, aim for 100% coverage, ... . But then your windows license would cost 1000s of $. And about your…

> The space of possibilities is much greater and we somehow need to write software that still works.

But the cost of failure is much lower, and that's why we as an industry can be so mediocre.

Physical engineering organizations have profit margins in the single digits to low tens. Software has margins in the 50s to 80s and marginal unit costs of zero. If any physical engineering organization had employees of the skill of our current SaaS software market, they'd be out of business immediately because no other industry but software can absorb such frequent and dramatic failures.

Re: Does the software industry learn?

#83
post #62

Earlier quoted context omitted.

The NPM colors fiasco was something we should have learned not to allow to repeat -- after the left-pad fiasco. The fact that we keep stepping on rakes and getting smacked in the face like that is the problem here.

I dunno what you mean, unmoderated repositories was the deign goal of NPM. When NPM launched, and to this day, I was among the people voicing preference for the philosophy that goes into maintaining (e.g.) the Debian repositories. But some people want a package source with no gating mechanisms. Of course there are many options for how and when to gate that lay somewhere between debian's approach and a fully unmoderat…

I'm saying, we should have learned that was a shitty design goal, and put more stringent checks in place to ensure a single upstream developer can't ratfuck literally everyone's Node app, especially since Node has moved beyond being a startup toy and is now critical IT infrastructure for major corporations.

The Go ecosystem is still fucking clownshoes in so many ways, but even they managed to pivot away from "depend directly on whatever random developers barf onto GitHub". The Node ecosystem, by comparison, evinced all the problem awareness of the "this is fine" dog.

Re: Does the software industry learn?

#84
post #53

Earlier quoted context omitted.

From what I remember of the times, it was the PC that killed COBOL. COBOL was considered a "serious" language, for "serious" business problems running on "serious" hardware that lived in a server room. PC's were not "serious", and lived on people's desks, running Lotus123 and other such trivial tools. Then VB/Delphi/etc came along, and a generation of developers writing "little" applications directly for the desktop…

> Writing an application in VB was several orders of magnitude cheaper Order of magnitude is big deal, can you be more specific, did you mean 2 or 3 orders of magnitude? Or what exactly did you mean. By this logic if writing an app in VB costs 20$ then COBOL equivalent cost 2000$ or 20 000$ ? Ok, 20$ seems a bit too cheap, let's see, if developing VB app cost 400$. So COBOL equivalent would have cost either 40 000$ o…

> So COBOL equivalent would have cost either 40 000$ or 400 000$ ? Is that what you mean?

If he didn't mean that, I will say, yes, that is correct. You could do things in VB in a day that teams of people in COBOL would take months to do. Many things in VB are basically impossible to do in COBOL.

For some perspective, the reason why many Medicare reforms in the U.S. are not able to be implemented is because the government is unable to actually modify the software. The code that figures out how to bill Medicare is 50 years old, has 8 million lines of code and 1.5 million lines of assembly [1].

Another high profile failure was when CA couldn't furlough state employees because they couldn't figure out how to update the software (a feature, not a bug, for many).

[1] https://www.programmableweb.com/news/how-usds-modernizing-me...

Re: Does the software industry learn?

#85
post #21

> As a result of how young the profession is, there are few universally accepted practices and standards. I wish the meme of "software engineering is young" would die. This profession is not younger than any other technical profession, in the modern sense. It was born out of prior practice and is still taught using the same techniques and philosophy. We are not special. Furthermore, modern engineering is a mid to lat…

The software industry is young, if not in a literal sense then certainly in a figurative sense. Other crafts define their professionalism according to a standard baseline defined by governance and credentials. Examples of credentials are licenses and certifications. Examples of other crafts that require credentials: medicine, law, engineering, flying, driving, real estate, information security, networking, food prepa…

What exactly do you think licensing would provide that a formal quality system couldn't?

Software has a deliverable that can be tested prior to delivery. And there are domains where software has to be developed within a QMS, those domains have quietly built elaborate process and systems dedicated to quality of their software.

Using licensing to ensure quality results is an easier sell in scenarios where such a system can't exist, like when the practitioner doesn't get (m)any retries.

Are we worried something is falling through the cracks of the quality system approach? Are there properties of a deliverable that those systems can't ensure?

Some product domains are so inconsequential to life that it would be a laughable non-starter to write bars for their quality into law. Is a blanket licensing requirement a way to get at practitioners operating in those fields anyway? Because the individuals will be more of a pushover and easier to wage a public campaign against than the company they hypothetically work for?

Re: Does the software industry learn?

#86

I think there's a myth that rewriting software is bad, or at least a symptom of badness, and "reusing" software is ideal. But writing software is really like creating plans: plans for what the machine should do. Of course there is much room for reusing old plans as components of your new plan. But still every plan must be about what is needed at the moment, not about reusing existing plan-components. In human communi…

> I think there's a myth that rewriting software is bad, or at least a symptom of badness, and "reusing" software is ideal. There's also a weird opposite myth that old software is bad, and urgently needs to be rewritten with newer paradigms. I'm currently hired to replace a piece of extremely stable '90s software with hundreds of janky eventually consistent microservices because for some reason. That's how software m…

> There's also a weird opposite myth that old software is bad, and urgently needs to be rewritten with newer paradigms.

Some of the challenges with old software is the ecosystem around it. Is the language it's written in still supported on modern OS? (Visual FoxPro for example). Is the database it's using still around? What about the libraries? Are they tied to a certain runtime version with no update path? Do you even have access to the source code for these dependencies? Or the application itself? Can it build on a recent machine?

I've seen projects where some infrastructure around an old piece of code was re-written to make it run on modern platforms, but that takes good engineering (some assembly required) that companies often simply can't afford.

Re: Does the software industry learn?

#87

I think there's a myth that rewriting software is bad, or at least a symptom of badness, and "reusing" software is ideal. But writing software is really like creating plans: plans for what the machine should do. Of course there is much room for reusing old plans as components of your new plan. But still every plan must be about what is needed at the moment, not about reusing existing plan-components. In human communi…

My feeling is that rewriting is used as blunt weapon when the developer lacks the inclination or skill to learn what was written before. I’m been guilty of this.

I've advised engineers to rewrite code before, mostly for resume building to help jumping ship to somewhere better.

If a company doesn't have a stock-based comp and sticks to prevailing wages/CoL there's no incentive to help the company succeed. Especially with non-technical management, the best thing to do for ICs is often to aggressively rewrite (in the language that's trendy right now and that better companies use) and get promoted by showing off a significant output. Then jump to a better company having spent a year training on their stack at the previous company's expenses.

Re: Does the software industry learn?

#88

Earlier quoted context omitted.

The software industry is young, if not in a literal sense then certainly in a figurative sense. Other crafts define their professionalism according to a standard baseline defined by governance and credentials. Examples of credentials are licenses and certifications. Examples of other crafts that require credentials: medicine, law, engineering, flying, driving, real estate, information security, networking, food prepa…

What exactly do you think licensing would provide that a formal quality system couldn't? Software has a deliverable that can be tested prior to delivery. And there are domains where software has to be developed within a QMS, those domains have quietly built elaborate process and systems dedicated to quality of their software. Using licensing to ensure quality results is an easier sell in scenarios where such a system…

> What exactly do you think licensing would provide that a formal quality system couldn't?

A uniform minimal accepted standard and ethics. Excuses against licensing generally arise from people who don’t understand it from a lack of experience, an argument from ignorance.

https://www.logicallyfallacious.com/cgi-bin/uy/webpages.cgi?...

Re: Does the software industry learn?

#89

Earlier quoted context omitted.

What exactly do you think licensing would provide that a formal quality system couldn't? Software has a deliverable that can be tested prior to delivery. And there are domains where software has to be developed within a QMS, those domains have quietly built elaborate process and systems dedicated to quality of their software. Using licensing to ensure quality results is an easier sell in scenarios where such a system…

> What exactly do you think licensing would provide that a formal quality system couldn't? A uniform minimal accepted standard and ethics. Excuses against licensing generally arise from people who don’t understand it from a lack of experience, an argument from ignorance. https://www.logicallyfallacious.com/cgi-bin/uy/webpages.cgi?...

[deleted]

Re: Does the software industry learn?

#90
post #72

Part of me says "of course we learn, look at how many bad practices are at least significantly less common than they were in the olden days". It's quite rare you come across a decently run tech company or team that doesn't use version control, or makes changes live in production without a testing environment, or doesn't use automated tests at all, or doesn't have a deploy process at all beyond 'use FTP'. 10-20 years…

In the 1980s, GIT didn't exist, and CVS was a complicated thing that Unix people used, so I didn't have "proper" version control. I did, however, have a stash of ZIP files of increasing sequence number on floppy disks.

In the 1990s, We used FTP to send files to web servers because we didn't have WebDAV or any more secure protocols at the time. We used tables because that is what we had.

We had fewer tools than today, it really doesn't amount to any learning, just better tool availability. Knowledge itself seems to have stayed about the same.

Post reply on HN