I prefer semi-automation
I really try to automate part of my work. But I do not always strive to automate the task at hand entirely. I have come to realize, at least for my usual duties, that automation is a balance between the productivity and consistency gains you would get from not doing it by hand versus the time it would take to cover all edge cases.
Earlier in my small career, I was advocating for automating everything. Now, I understand this was not really for the sake of gaining time to work on something else, but rather that I was felling in love with the solution. Designing the solution, coding it, testing for all edge cases and... Debugging. A lot. It felt to me like I was really contributing to making an impact on the organization. At least, more than if I had done that testing by hand, so I thought. And, you may have guessed it already, most of the times I was eventually testing it by hand, maybe using my tool to help me but still performing most of the work with my bare hands (and eyes actually).
Does it mean that this whole automation initiative was useless? Definitely not! It helped me grow my skills, better understand the boundaries of the issues at hand and help me connect with other team members. It could even have become a business on one occasion but I was lacking the courage to take the bet.I don't blame my self of the past for getting into this, nor do I have given up on automation. I just feel today that there are multiple sides to a task and that uncovering every facet of it to fully automate it may not be worth it. Instead, what I rather practice now is semi-automation: whatever dull or repetitive task, I try to automate, with only the information and context I have at the moment. I try to resist going out of those limits, especially to avoid getting carried away by my will to design a cover-every-potential-cases-even-unprobable-ones. And I really try to prioritize what will benefit from automation now. All the rest I manage to still do by hands or semi-automate through helpers functions that I can call.
One last thing is that I try to work on this only when I need to use it. With the deadlines of the task, that allows me to stay within the limits described above while also making use of the tool and assessing how much time and efforts it makes me really gain.
I should provide examples of current automation flows/tools I have built and for what purpose, maybe in another post.
HN link with insightful comments