←back to thread

Software Friction

(www.hillelwayne.com)
141 points saikatsg | 1 comments | | HN request time: 0.501s | source
1. pcwelder ◴[] No.40716835[source]
This is nothing but the second law of thermodynamics.

Viewing friction as the principle of increasing entropy helps.

You can think of a graph with nodes being the states of various systems including humans, software services, database, etc., and edges being dependencies between them. Reducing the states directly reduces the entropy. Reducing the dependencies reduce the rate of increase of the entropy in the system.

This directly leads to various software principles like separation of concern, parse not validate, denormalisation, state reduction, narrow interface deep implementation, KISS, readability etc. All of these reduce friction.

As such I find the "Addressing friction" section in the article lacking, but it does highlight some useful points.