Habits of Expert Software Designers (2019)
Hi, my notes:1) Experts involve the user.Also, experts do not let the user design the software. The user will frequently want to tell you what the software "must" be doing. An expert will disregard this and will want to first understand the domain and then work with the user to find a good mapping to a useful interface.2) Experts design elegant abstractionsI don't agree on this. Oftentimes, I have seen "experts" use solutions because they seemed elegant, intelligent, "nifty". I did that myself.An expert will design simple abstractions that let the job done with little fuss. The software needs to be as simple as possible but not simpler than is needed.Replace "elegant" with "simple", and it sounds about right.An expert software looks dumb and simple, not necessarily super elegant and intelligent. Also, bad software can look dumb and simple.3) Experts focus on the essenceExperts start by focusing on the essence. Then verify by testing how the distilled essence is useful at solving entirety of the problem.