I've been burning the midnight oil these past few weeks to automate a workflow that had I executed it manually, I would probably be done by now. The compensation for automating this workflow, at least in terms of my time works out to have not been worth my investment -- at least if I'm just counting my time. But...
- Eventually, this will allow me to offload a piece of work that right now, in a manual task, only I (or someone similarly skilled) can do, to enable someone less skilled to do the same thing. Given that there are about 500 people like me with that specific set of skills in healthcare, that's really useful. I don't scale up (something we've all learned by now).
- I now much better understand the task being performed, and so can find ways to improve tasks leading up to it in terms of consistency, so as to make the automation much less complex. That process knowledge is really useful, and I can apply it not to just this process, but to many others like it.
- I now have a written, and repeatable record of what actually has to be done to perform the task, in a way that I can actually exchange with someone else, and they might benefit from that to. And many of the things I've learned how to do can also be applied to other problems.
- The intellectual challenge in automating this workflow is SO much more interesting and intellectually stimulating than the hours of copy and paste work that I would have been otherwise doing. So my boredom level is lower, but job satisfaction is higher, and as a result, my overall quality and outlook on life is much improved.
- My rather accurate, and repeatable description of the process (in software) is something that others can also improve upon. I'm certain (because I don't write code every day -- well, mostly not when, oh, OK, so I do write code every day, but not for production use -- except ...), well anyway, I'm still certain that someone could improve what I've written. Including me a few years later ...
So add all this up, and what I get is a useful piece of code, several hours spent doing something more interesting that stupid and mindless repetition, a better understanding of the process, and most of all, job (or in this case, school) satisfaction. And eventually, this work will amortize itself, just not for me.
This, I think, is what makes developing software so interesting for some people. There is so much intangible value here, over and above what my time investment does for me.
There's a certain satisfaction I also get from teaching, so what is more satisfying that teaching the stupidest thing in the world (a computer) how to do something almost human, and have it do it successfully.
P.S. In case you were wondering WHAT I was writing, it was the metadata indexing algorithm for by Pubmed for Standards project. Embedded in that algorithm is a great deal of knowledge and process I didn't even know existed when I started off on this effort.