I'm still not convinced by those examples. My reasoning is opportunity cost.
If you have to learn to code to write some software, and then write it yourself, you will generally be less efficient at it than contracting someone else to do so. Furthermore, the contractor has a chance of potentially reselling the software to other clients (thus increasing efficiency even more), which you do not.
If it was cheaper for your father to write his own software in this case, then to me this indicates one of several things:
1. That he had already learned to code for some other reason (possibly a hobby).
2. That there was no opportunity cost because his business was operating way below capacity. If this is the case, his time is best spent fixing that problem first.
3. That there is an under-developed market for software services.
Your fathers' example also ignores some potential problems. A novice rolling their own DB code is likely to make novice mistakes, increasing the chance of (expensive) data loss or corruption.
I remain unconvinced that for a busy non-software specialist (such as a physical therapist, a welder, and many other professions) writing any software more complicated than a spreadsheet formula or macro is worth the opportunity cost. That doesn't mean that these people will never configure existing software, or write small scripts in DSLs, but I don't consider that 'knowing how to code' any more than I consider being able to remove one of my own teeth 'knowing how to dentist'.