The summary.
COMMIT THE LOCK FILE, ALWAYS
It guarantees identical versions everywhere, and prevents a dependency changing behaviour without you doing anything.
A BUILD SHOULD BE ONE COMMAND, AND REPRODUCIBLE
Pin the language version, dependency versions and tool versions. A build with undocumented manual steps cannot be reproduced.
TEST BEHAVIOUR, NOT IMPLEMENTATION
Tests coupled to implementation break on every refactor. Substitute time and randomness, or tests fail intermittently — and intermittent tests get ignored.
Coverage measures what ran, not whether the tests verify anything.
PROFILE BEFORE OPTIMISING
People consistently guess wrongly about where time goes, and small test data hides the problems that appear at scale.
Learn conditional breakpoints — they solve pausing inside a loop running thousands of times.
CODE EXPLAINS WHAT; COMMENTS EXPLAIN WHY
Comments restating the code become wrong when it changes, and then mislead.
NEVER ALLOW A PERMANENTLY FAILING PIPELINE
It trains everyone to ignore failures, as do lint rules that are matters of taste.
EVERY DEPENDENCY IS SOMETHING TO INSTALL, UPDATE, AUDIT AND TRUST
Prefer the standard library where it suffices, and plan replacement of anything unmaintained before it blocks an upgrade.