I'm re-reading parts of the ZX81 BASIC Programming Manual (because of side-side-sidequest), which is the book that came with the ZX81. I had this when i was 10, and i'm time and time again gobsmacked by the amount of educational effort that went into this pack-in provided with the cheapest micro of all time. It's more or less how i learnt trigonometry, but i wanna talk about Chapter 15, which is about software engineering lifecycle management, or, as they put it, "Making your programs work".
It comes with a flowchart (for humans): two absolutely key parts of this chart, still overlooked in many orgs: 1 "Write program with as few bugs as possible"; 2 "fix them introducing as few new ones as possible".
_As few bugs as possible_
![A flow chart illustrating program development. There is a lead-in paragraph: "EVERY PROGRAM STARTS OFF WITH BUGS.
Many programs finish up with bugs as well. There are two corollaries to this; first, you must test all your programs straight away; & second, there's no point in losing your temper every time they don't work. The general plan can be illustrated with a flowchart:"
The flow chart is mostly linear: Write program with as few bugs as possible / Test program / Does it work perfectly? [Yes goes to Finish] / Keep your hair on / Find the bugs / Fix them, introducing as few new ones as possible [it loops back to Test Program].](https://files.mastodon.social/cache/media_attachments/files/115/979/607/882/836/929/small/f30bdae3f060d053.png)

