How I write apps
This is a response to an email..
I start with basic functionality. It doesn't need a GUI unless it really does. I make the app default to best human defaults as I see them, yet always remembering things a user chooses when decisions need to be made.
I aim for Newton, distributing energy along a line; CPU cycles the heavy-lifters, like pyramid builders marching inclined planes; yet remembering my Einstein; knowing that time is always to be had. I tend towards intelligence over efficiency and test and revisit important code compulsively, seeking ever more efficient means.
I want my computers to "know me" and so I code programs to run with as little human input as possible, having gotten to know me already, see! No requested function is too trivial, if I can add it without disturbing the efficiency of existing code and can find the time, I add it! I want my apps to know all the human variations!
But of course, apps can't pop a hundred, even a dozen dialogs. Where there is serious question, I lean towards doing a thing the best way, offering the user a chance to see how I, after decades of continual consideration, consider some way to be the best way of doing a particular thing, be it data verification or picking colors. If they don't agree, fine; set so-and-so preference. There is always a preference! From that point, the app works your way.
And so they build up that way. Everything added carefully, mindfully. My test suites grow with each release, each bug report. I run them joyfully!