11 hours ago · Tech · 0 comments

Let's loosely define a greedy algorithm as one that always takes the locally best step. In surprisingly many algorithms, this turns out to be optimal. The idea of a greedy algorithm makes for a useful informal mental model. I try to keep it in mind when prototyping: as soon as I'm done with a chunk of work, find the subsystem that is farthest from being respectable, and do the next chunk of work on that subsystem. There is no reason why this should always be a good way to prototype, and indeed it's sometimes not. (Perhaps, e.g., the system has one lynchpin that needs to be very good before anything else can work at all.) But I've found this rule to be far more useful than it has a right to be. A few notes: The standard agile advice to race to the MVP is a sort of special case of this development algorithm, at least if you grant that non-existing subsystems are least respectable. It's nice to have habits that check our lazy, rationalizing impulses. Both individually and in team…

No comments yet. Log in to reply on the Fediverse. Comments will appear here.