In my mind, the definition of well-made software is this:Â The absolute minimum required to get the job done.
There’s a little agile in there, relating to software design minimalism.Â That’s not what I’m getting at.Â Whether you are developing something new, or fixing something broken, deliver the very least you must for the desired outcome.
I did not say to do the least amount of work required, I said deliver the very least required; go quickly and completely in the direction you must move.Â Destroy that bug, hack that web page, do something terrible and glorious.Â After getting it working, though, take that next step, and wash all the mud off what you just did.Â That is, minimize the actual changes you’re about to apply.Â Make sure every change makes sense and is required.Â Don’t lump another change or some code reformatting in just for “because it needs to be done eventually”.Â Focus on only what you are doing.
It is a massive accomplishment to delete code from a working system and still have a working system.Â It is thrilling, and you’ve saved yourself and “the next guy” a lot of trouble in the future.Â This applies whether you are fixing a bug or making something completely new.
You said it, brother!