A couple days back I saw a wonderful opportunity to rewrite an existing page, make it a base webpage class, then with inheritance extend it for an add-on feature for a new app I was working on. I began working in this direction for about an hour when I realized I had to focus on the primary objective: getting the app out the door meeting its defined scope.
This post is not about application scope, but about using company time on Code Pursuits which do not lead to immediate productivity. I could have spent a day or two on company time digging into a re-write which was not really necessary at the time. I have the luxury (and responsibility) to decide how my working hours are best spent for my company's benefit. We each have those decisions to make. Like you, my company expects me to be as productive as possible and to provide them with highest quality applications in the shortest time possible. While my ultimate priority is to my own career and my skillset, my immediate priority from 9-to-5 is to my employer. I've been strictly a teleworker for over 3 years now, but there is still a clear distinction between company coding time and personal coding time.
There have been articulate and passionate posts by Eric Sink and others which state that it is the developer's sole responsibility to learn and to grow, not their employers' responsibility. I cannot improve on what has been said. I am using this incident as an example of where my thinking would follow these principles. On my company's dime, I get the app out the door and move on to my next task. If I'm going to pursue an approach which I know will take extra hours but pay back dividends (for me and, yes, for my company), that work is done at night or weekends, on my own time. The decision is not based solely on the prospect of extra hours, but on other factors as well:
- Will I learn a lot in doing this? (yes)
- Will I spend time googling and reading in the course of completing this task? (probably)
- Have I used this technique before? (no or only rarely)
- Would the result be something I would wish to record in a blog post? (usually)
During weekday working hours I ask “How can I be most productive for my employer?” At night and weekends, I ask, “How can I be most productive?”
Lots of grey area in this post. Very subjective stuff. Time for a post to describe a technical process. Yeah.