2021-09-20T21:23:15.000Z

Linearly hard

A key to good engineering is doing things linearly hard.

The problem arises when doing stuff and taking the easy route. It is easy at the start but what happens is that major work needs to be done later.

What are the easy stuff to avoid?

Duplication

Manual work

Memorization

All these can be avoided by doing it linearly hard. Respecting that the line between effort and value should at least be linear.

Duplicating is easy at the start, and for every time something is duplicated it pushes work down the road either to future self or more likely somebody else.

Manuel work is easy at the start, but not automating it after it has been shown that automating it will make sense just pushes a pile of a lot of manual work into the future.

Memorizing is easy at the start, the problem space is small at the start, but not writing anything down pushes the problem down the road and sharing information makes it more difficult in the future.

Tools like Terraform is clear example of linear hard. It is 100% easier to set up stuff by clicking with the mouse, running commands manually, and suddenly you have a environment that nobody can control and it takes a awful amount of work and coordination automating it.