Running your own shop and being thee programmer is a good way to go out of business. Ask me how I know.
Congrats on finding a working formula.
I've been doing it for years with no problems, and know many others that do it as well.
Programming is the easy part of my day, most the time my machines can't keep up, I'm always ahead on programming. I've built my TechDB in CAMWorks to work for me, and make programming incredibly efficient. I've built in many default settings based on material and operations created that I rarely have to select a tool, change feeds or speeds, DOC, step overs. Over the years I have defined the TechDB to how I program. It doesn't work on every part, but one of my biggest customer a majority of their parts, I don't even have to select any features. Create the stock, Extract Machinable Features, and Generate Toolpaths, less than 5 clicks I can have I'd say I can have 50% of my parts programmed. I do greatly benefit from this particular customer designing in SolidWorks and sending me SW native files, CAMWorks recognizes and sorts the threaded, reamed, counterbore holes, etc. and again will pull out the correct spot drill, drill, tap or reamer, etc. and depending on the size I have it pull in a chamfer tool and chamfer the hole prior to threading or reaming if the spot drill isn't big enough to do it.
As a one man shop, you have to find ways to make things work for yourself, this goes for my machine set ups as well. I created my own tool pre setter that the length offsets are universal from machine to machine, and based on my vise bed being Z0 in the machine. I don't have to ever jog down a tool to touch it off, I don't ever have to pick up a Z height in my machine based on above and how I program. I know where my vises are, and if I set a part on parallels my Z machine height is the parallel size.
Like I said, you have to find ways to make things work for you and be efficient. If your business failed, I highly doubt it was solely due to being the programmer.