logoalt Hacker News

ebiester • today at 6:45 PM • 3 replies • view on HN

I think I need to write a full blog post on this.

While I think there are better introductions to "first principles thinking" than this post, the idea of "...When I step back and ask what we’re actually trying to do, why it matters, and how the pieces connect, I usually find more ways forward than I expected."

That's an important skill to have.

However, I think sometimes we overvalue thinking from first principles when it isn't warranted. I've seen times in my career where first principles thinking led to a solution that ignored key non-technical constraints. (For example, it would require a full re-architecture of the system and require deferring all feature work for a year. Another example: the proposed solution breaks Conways law in a way that would require a reorg that would break other organizational constraints.)

Sometimes, we need to recognize our constraints. Spend the time to question them when appropriate, but realize that there are other tools that are more appropriate in some cases -- such as anthropological thinking.


Replies

itsalwaysgood • today at 9:03 PM

You apply first principles thinking, but also be mindful of your role in the team.

When you say something isn't warranted because it takes too much time, it isn't valuable: you're still thinking about what it is you're doing (working), what tools you have (your team, people), to create value (your product or service).

It's the measurement of value part that's tricky. Who determines value? Sometimes it's the customer, sometimes it's just you.

It's about perspective, and seeing where you fit in the picture. Apply the principles from there. Nobody says you have to be a jerk about it, that's up to you and how you wish to apply the output of the first principled thinking.

hypfer • today at 6:49 PM

> However, I think sometimes we overvalue thinking from first principles

The problem isn't the thinking though, but the lack of grounding.

You don't have a problem with people coming up with a technically better solution. Your problem is with the people not realizing that they exist in reality and not in a vacuum.

Please don't question the act of thinking itself. It is the wrong target.

hiddenvulkcan • today at 8:18 PM

I mean that's always been the paradox that good devs need to live in, and I often go backwards and forwards on the scale between technically pure, and straight up problem solving.

Fundamentally software we create exists to solve problems, if bad code solves the problem is it bad code? Counter to that is we are engineers and it's our job to design systems that mean problems can be solved safely and effectively.

Like most things in life the truth lies in the middle