logoalt Hacker News

jerftoday at 1:19 PM5 repliesview on HN

This is a really important concept for developers.

One aspect for developers that I see quite often is the assertion that "We can't have X without giving up more Y", most commonly "we can't have more security without giving up on user experience". With the Pareto idea in mind, we can see that that statement is true, if and only if you are in fact on the Pareto frontier of security and user experience already.

However, many times these confident pronouncements are being made when the system under question is quite evidently not on the Pareto frontier in the first place and indeed you can get more of one without giving up the other.

Making it more tricky is that in business, you can never discard "money" as a dimension, so unless you're taking "money" as one of the dimensions in the original comparison you want to do, it sneaks its way in. Or, a composite time/money, or "cost to business", or some other similar concept, time & money aren't orthogonal and don't need to be treated as two separate dimensions in general, though you can if you want. Which puts you into the 3D case, and as the page says, that grows the frontier quite a lot, which is good in some ways and bad in others. Nevertheless, in my opinion it is still often the case that even in that space we are often making "tradeoffs" without checking that we're on the Pareto frontier in the first place.


Replies

whateveraccttoday at 6:11 PM

"making tradeoffs" is an excuse for management to cut corners to get their feature faster at the cost of future developer pain and suffering

you know how japanese oni would roll human souls into soba noodles? [1]

that's what modern corporate software company management does :)

[1] i learned about this from the very funny gintama funeral episode

munchbunnytoday at 4:10 PM

Agreed with what you said, when you're only considering security and usability you're often not at a Pareto optimal state, but once you add cost into the picture you see a lot more cases of being on the Pareto optimal boundary, or at least in case where the next improvement only comes with significant effort (by re-platforming, for example).

show 2 replies
_davide_today at 5:06 PM

this is a silly oversimplification

voidhorsetoday at 1:48 PM

Yes, the difference between coding (writing software) and engineering (making informed trade offs about system design) is effectively bound up in analyses like those supported by concepts like pareto efficiency.

One should keep in mind though that not all problems have a neat solution. Many spaces have multiple efficient points that still need to be chosen from, and many pareto optimization problems actually become NP hard computationally when the problem is large enough.

dzongatoday at 3:46 PM

there's something equivalent in the business world - mostly used by businesses not run by psychopaths - where you optimize inside 2 triangles with the points on the triangle being cost, profit, & user utility/happiness.

show 1 reply