Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
Problems in our code are less like “debt” & more like the clutter of unfilled lines that accumulate in Tetris, slowly but surely reducing our maneuvering room.
Source: How to win at Tetris (and code)
Tetris as a metaphor for technical debt.
Here’s part 1 of short animated video describing our engineering culture. This is a journey in progress, not a journey completed, and there’s a lot of variation from squad to squad. So the stuff in the video isn’t all true for all squads all the time, but it appears to be mostly true…
Here’s part 2 of the animated video describing our engineering culture. Check out part 1 first if you haven’t already seen it! This is a journey in progress, not a journey completed, so the video is somewhere between “How Things Are Today” and “How We Want Things To Be”.
Definitely something to aspire to. I’ve done a number of the practices they describe and I can attest that they go a long way towards reducing friction.
Yak Shaving: The process of performing a series of nested tasks to accomplish a goal, each of which seems necessary in context but becomes less and less linked to the original goal.
Technical Debt: The accumulated negative technical results of shortcuts and trade-offs taken in the past on a project, which place a drag on the cost of current and future development on the project.
Bikeshedding: Spending disproportionate time and energy spent over an insignificant or unimportant detail of a larger concern.
Jimmy’s rule of 2: There can be at most two versions of a concept in an application