An issue I am facing at work at the moment is determining how much of my time I should spend developing internal tools (automation etc) that allow me to be more efficient in my job versus developing client-facing software.
How do you make a determination of how much investment you should make in this area? I need to keep value flowing to the customers in the short term but obviously internal tools allow me to do this better in the long term.
Rule of thumb: do it manually three times before automating it. That way, you'll have a fair idea of what it is supposed to do (which is the hardest part); you know whether it's predictable enough to be automated; and an how often it will come up.
A programmer is someone who takes 5 hours to automate something that takes 5 minutes