News for hackers. Stuff that matters.
Re:Manifesto for Minimalist Software Engineers by gyulai on Monday November 07, 2022 @05:41AM (#33504147)
Pareto's law really isn't a law. For every situation where 80% of the payoff comes from 20% of the work/complexity/whatever, there's a situation where you get 0% of the payoff unless you've done 100% of the work. -- Pareto's "law" just has so much better PR than that second "law", whatever you may call it.
Re:Manifesto for Minimalist Software Engineers by musingsole on Monday November 07, 2022 @07:13AM (#33504822)
But I only enjoy 20% of the work...so there must be a way to make that the only part I have to do and still get a promotion!
Re:Manifesto for Minimalist Software Engineers by Cthulhu_ on Monday November 07, 2022 @09:24AM (#33506119)
This is a Problem with a lot of software developers, leading to interesting developments like microservices.
Re:Manifesto for Minimalist Software Engineers by jrochkind1 on Monday November 07, 2022 @10:00AM (#33506630)
Oh, optimizing for promotions (or $$ generally) and optimizing for doing a good job are frequently not the same optimization. Beginning with your choice of where to work and going on from there.
Re:Manifesto for Minimalist Software Engineers by mkl95 on Monday November 07, 2022 @08:02AM (#33505248)
A better made up law is that, given a complex enough product, simplicity is inversely proportional to the underlying complexity. An Airbus A380 is a long shaft with windows and wings, etc. This only applies to non brutalist design though.
Re:Manifesto for Minimalist Software Engineers by Yujf on Monday November 07, 2022 @08:17AM (#33505387)
Also you can make software that does what you need it to do, but feels bad to use because it is not polished because that 20% was not deemed important.
Re:Manifesto for Minimalist Software Engineers by tresil on Monday November 07, 2022 @08:17AM (#33505395)
> …the world is full of situations where you get 0% of the payoff unless you've done 100% of the work.

Well stated. Deep down I’ve known this to be true, but since Pareto’s law is often over used, it’s easy to lose sight of other aspects of reality. This one is often overlooked.

Judgement must be used to understand how these two concepts can apply to a given situation or decision.

Re:Manifesto for Minimalist Software Engineers by gw98 on Monday November 07, 2022 @08:26AM (#33505508)
I think it's more that 80% of the work is unnecessary. There is so much waste in software engineering it's embarrassing.
Re:Manifesto for Minimalist Software Engineers by temporallobe on Monday November 07, 2022 @10:31AM (#33507068)
Every time I do `npm install` I am reminded of this. Why do I need 32,127 libraries again?
Re:Manifesto for Minimalist Software Engineers by gw98 on Monday November 07, 2022 @12:38PM (#33509172)
I have solved this by refusing to use anything involving node or npm. We had one project kick off with that and it was a lesson in supply chain attacks within a week.
Re:Manifesto for Minimalist Software Engineers by yamtaddle on Monday November 07, 2022 @06:26PM (#33514006)
Because if you "waste" a week writing something yourself, nice & lean, you'll be told you've fallen for NIH and probably YAGNI as well, and get your hand slapped. But if you introduce a 3,500-strong dependency tree that'll waste a person-month spread across the team, over a year, plus make the product perform worse and waste god-knows how many person years for your users, to do the same thing... nobody complains as long as whatever you imported has lots of github stars and (ideally) looks good on a résumé.

Repeat for several decisions and soon you have tens of thousands of deps.

Re:Manifesto for Minimalist Software Engineers by orangepurple on Monday November 07, 2022 @08:29AM (#33505545)
Pareto is generally framed as a principle not a law

Difference between principle and law: https://philosophy.stackexchange.com/a/94475

Re:Manifesto for Minimalist Software Engineers by samatman on Monday November 07, 2022 @08:31AM (#33505556)
The Pareto principle is a principle, not a law, agreed:

https://en.wikipedia.org/wiki/Pareto_principle

The conflation being at the root of most of what you said is unfortunate: Pareto's law would indeed be a bad law, if it existed.

Yes, I think the world is full of situations where 80% of the payoff comes from 20% of the work.

I'd even be cheeky and say that the Pareto principle applies to about 80% of situations.

Re:Manifesto for Minimalist Software Engineers by xcambar on Monday November 07, 2022 @09:38AM (#33506297)
So for 20% of the situations, you have to do more than 20% of the work to get 80% or less of the payoff?
Re:Manifesto for Minimalist Software Engineers by dahart on Monday November 07, 2022 @09:27AM (#33506156)
The Pareto Principle is just a kind of byproduct of variation in distributions, it may fall naturally out of a normal distribution and/or a Parte distribution (https://en.wikipedia.org/wiki/Pareto_distribution) and/or Zipf’s law (https://en.wikipedia.org/wiki/Zipf%27s_law), which are all in fact very common in reality, and why the Pareto thing is frequently approximately correct has been observed by many.

Distributions of behavior that are perfectly flat like you suggest might exist, but are less common in large populations or samples. Do we have any names/principles/laws relating to flat distributions in nature or human behavior? I’m curious if you could give some examples of what you’re thinking of, the situations where there’s 0 payoff until all the work is done, and what basis there is for claiming this is equally true and common as varied distributions?

Re:Manifesto for Minimalist Software Engineers by rogersnm on Monday November 07, 2022 @09:34AM (#33506245)
> I’m curious if you could give some examples of what you’re thinking of, the situations where there’s 0 payoff until all the work is done

Not op, but surgery strikes me as an example where there's effectively 0 pay-off until you finish everything. I personally wouldn't want the surgeon to sack it off without sewing me back up.

Re:Manifesto for Minimalist Software Engineers by dahart on Monday November 07, 2022 @09:43AM (#33506366)
It surely depends on exactly what surgery we’re talking about, but surgery has lots and lots of known variation. Open brain and heart surgery might be good examples of what you’re talking about, but surgery in general is one of the best examples of non-flat distributions with non-binary outcomes. Some surgeries can be abandoned in the middle without stitching the patient, and some people will survive even if most die. Heard a fun podcast just yesterday about fistulated stomachs and the stories of a couple of different people who’ve had them. Surgeons can do a mediocre job stitching and fail to clean everything and there will be a mix of outcomes. They can do a perfect job, and most people will live, but still a few will die anyway.
Re:Manifesto for Minimalist Software Engineers by aGHz on Monday November 07, 2022 @11:08AM (#33507665)
The minimum viable product concept comes to mind. You don't have a product until you invest the effort required to pass the minimum threshold.

Another example I can think of is escape velocity. I'd venture that the principle you're asking for is "phase change", where a threshold gates a drastic change in behavior.

Re:Manifesto for Minimalist Software Engineers by dahart on Monday November 07, 2022 @11:40AM (#33508195)
Isn’t MVP the canonical example of attempting to get some payout while specifically not doing all the work? It is by definition unfinished, and so not doing all the work yet. And the idea is to hit the threshold yeah, but what makes a product minimally viable is notoriously murky and difficult to pin down. “Viable” is pretty much always a subjective metric, it depends on your financial situation and runway. From experience with my own startup, there absolutely was a distribution of behaviors for different MVP effort levels, and the product was never 100% done, but we had paying customers, and doing more of the right kind of work increased the number of paying customers.

Phase change in physics certainly is an example of a narrow peaky distribution, I’m just not sure how often that kind of distribution is a reality for human behavior, which is what the top comment was reacting and referring to. I can think of a few and was just arguing they exist in another thread elsewhere when it comes to pricing and consumption for scarce-resource high-demand economics. So they’re out there, but I’d be pretty hard-pressed to agree that these are common enough to make claims that they’re equal to distributions with lots of variation. It feels like the top comment was making an assumption, arguing that the Pareto principle is a made-up idea that’s just as common as other made-up ideas, but that’s not really true.

Re:Manifesto for Minimalist Software Engineers by nuancebydefault on Monday November 07, 2022 @02:39PM (#33511196)
Thing is, the Pareto principle is not so very useful for a SW engineer. It's merely a mathematical fact. If we focus on the 80 percent that only takes an easy peasy 20 percent of effort, there's no product to deliver. The devil is in the details, details we need.
Re:Manifesto for Minimalist Software Engineers by dkarl on Monday November 07, 2022 @09:45AM (#33506387)
> I tell you that, equally, the world is full of situations where you get 0% of the payoff unless you've done 100% of the work.

It depends on your perspective. For a lot of those 100% situations, you could think up some high-effort, low-payoff bells and whistles to turn it into a 80%/20% situation.

Re:Manifesto for Minimalist Software Engineers by softwarebeware on Monday November 07, 2022 @01:21PM (#33509832)
> Pareto's law really isn't a law.

No "law" of software or business is technically a law in the same rigorous sense that a scientific law is. But that's not why we call them laws and it would be nitpicking to call that out, besides entirely missing the point.

Also, it's actually the Pareto Principle (https://en.wikipedia.org/wiki/Pareto_principle) not "Pareto's Law" but that's also nitpicking.