Today I LearnedRSS

February 2024

2024-02-23
Lecture Friday: Intro to Empirical Software Engineering: What We Know We Don't Know

Here's a link to the talk webpage. This talk also apparently has a newer version but there's no video online.

I love calling out the logical fallacy, "Because we don't know how to do something, it can't be done."

This presentation has some useful results, but the real takeaway is how science actually works. You don't learn how the world works by reading a single paper. A paper is just one data point. The gold is in convergence: many studies, different designs and methodologies, all pointing to the same conclusion. Plenty of papers show contradictory results or suggest more complicated contextual factors. That's normal. You weigh the whole body of evidence.

Another critical point: a replication crisis doesn't mean the original findings are false. It means we no longer have strong evidence for them. This isn't pedantry. It's the difference between empiricism and theology. You never know something. You have a preponderance of evidence for or against it. A body of study that suggests something strongly or weakly. Non-replication is common. The original research wasn't necessarily bad, it was human research in a noisy universe. More study always improves confidence.

Beyond that, the big takeaways are that code reviews work, and sleep and stress have been shown to have tremendous impact on your abilities.

2024-02-19
The Performance Inequality Gap, 2024

I keep talking about performance, this is exactly what I'm talking about.

2024-02-16
Lecture Friday: Barely succeed! It's easier!

I really like this mental model. It's not that hard to succeed if your idea of success is reasonable.

2024-02-15
Don't Do This

Huge list of great tidbits.

2024-02-14
PostgreSQL Subtransactions Considered Harmful

Great explanation on why carelessly wrapping and rewrapping things with transactions in your ORM will cause you problems.

2024-02-12
Common DB Schema Change Mistakes

Know your tools.

2024-02-09
Lecture Friday: BEST WAY To Read And Understand Code

The trick to reading code is to stop trying to play computer in your head. It's also how you debug code, modify other's code, etc.. You're sitting in front of a computer. Let it compute things for you. Said another way, don't think when you should compute and don't compute when you should think.

2024-02-06
The Influence Of Organizational Structure On Software Quality: An Empirical Case Study

Design for Conway's Law, not against it. Seriously, what this shows is that software that has multiple people working on it who's lowest common manager is high up in the org (i.e.. they don't share direct manager but only a director or worse vice president) have the highest number of bugs in them.

2024-02-05
Squeeze The Hell Out Of The System You Have

Getting performance right is important. Deciding to change everything and rewrite it all because you can't be bothered to measure and try and fix things is an all too common hubris.

2024-02-02
Lecture Friday: Writing Beyond the Academy

Very simple concept, if your writing isn't obviously valuable to the reader it's worthless. Acting on this is much harder, but at least with the right direction you can aim to improve.