#principles
Explores ideas that guide effective decision-making both in in software development as well as in life.
2024
Depth-first development ð
Follow the original task for as long as it takes to complete it. Keep a list of everything else.
As little as possible ðŠķ
I believe smaller solutions lead to faster completion and higher quality.
Intrinsic motivation ðĨ
Is customer satisfaction or commercial success the ultimate measurement of the outcome of my work? Not for me.
My pre-commit routine â
Check code committed to version control for quality, and the code base will thank you.
Same level of abstraction âïļ
To make something easy to understand, its parts should be at the same level of abstraction.
Focused commits ð
If you don’t know what message to write, it was too long since you last committed.
Just close all issues ðïļ
Has the backlog become longer than you can finish within a reasonable time frame?
Don't forget to play ð
Developers sometimes underestimate the importance of doing things just for fun.
Put uncertainty in a box ðĶ
I put stuff with too much uncertainty in a box and don’t think about it until I know more.
Local rules give global results âĄ
It’s easy to think that large results require large changes. That is not necessarily true.
Does this scale down? ð
How come people never worry about whether technology scales down to a low number?
I can be wrong ðĪ·
Even though you feel completely confident, there is always a slight chance you are wrong.
Will it be harder tomorrow? âģ
A question which can help you both prioritize more effectively and design better systems.
Constraints are good ð
While it may sound counter-intuitive, creativity often benefits from constraints.
If you can't explain it, you don't understand it ðĄ
Teaching is a great way to determine if you truly understand a subject.
2023
Death by a thousand inconsistencies ð
When you make an exception from a rule, you make the whole system harder to learn.
Use boring technology ðĨą
In technology choices, sometimes “boring” can be better than “interesting”.
2012
Find each bug once
For every bug you fix there should be an automated test which will fail if the bug reappears.