Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The 80% Abstraction (gusto.com)
45 points by kiyanwang on July 3, 2023 | hide | past | favorite | 6 comments


> Just “doing something” isn’t necessarily valuable: just like scribbling a few words might not communicate that much.

I always bristle at this. Nobody does something without some semblance of a plan. It's what connects each action to the next. Especially in an organization, momentum is a thing. The tendency to contribute critically instead of originating (applied game theory), is a thing^. Edison, Ford, et al didn't wait to figure out the right thing. They did something with a vision. Often times waiting around for something that feels right instead of brainstorming wireframes, is the wrong choice.

^Is there a term for this yet?


Maybe "Management by perkele"?

> Management by perkele is originally a Swedish expression for a Finnish leadership approach that, according to its proponents, takes required actions in a quick and swift way, instead of a prolonged pondering of all possible alternative approaches and points of view before actually getting anything done.

[1] https://en-academic.com/dic.nsf/enwiki/2016571


That `run=true` was just bad API: "boolean trap", yada, yada. The rest of "80% abstraction" idea is not well supported, and I don't buy it.

The abstraction is either good or it isn't. Some stuff just does not abstract well. A function or an API is not necessarily "an abstraction".


A function and API is always an abstraction as it hides the details of the implementation.

Since there are many ways to abstract the same concepts, splitting them into two categories (good, bad) where all the good abstractions are equally good and all the bad abstractions are equally bad seems an unrealistic and impractical way of looking at things.


> A function and API is always an abstraction

To a degree, yes. But they're not always introduced for that reason. There are cases, where the caller is expected to fully understand the implementation of a function, yet it may still provide value, for example, by:

- ...reducing the mental demand for understanding the calling code by making it easier to visually scan.

- ...reducing the mental demand for understanding the called code by narrowing the scope of the logic through parameters / encapsulation / etc...

- ...preventing repetition by being callable from multiple places


As I understand the article, knowing which tasks to include in the 80% that you do, and the 20% that you ignore requires some active analysis.

So the active analysis is effort you have to expend until you know which part to do major effort.

This means to me the analysis can be helped by specialized processing, indexing, and filtering to minimize analysis done during all the runs. The trade-off of these specialized steps must be over-all more efficient than just doing the active analysis every time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: