I'm going through the Rocky and Bullwinkle complete first season on DVD so I'm thinking every title needs to have two options...
As I mentioned a couple of times, I've been a full-time teleworker for over 3 years now. One of the affects of being a telecoder is that the line between coding work stuff and coding personally gratifying stuff is blurred and dang near non-existent. That's not a problem if the work stuff is gratifying and an ongoing learning process.
But I learned a long time ago that no matter how much “work stuff” you do after-hours that there is always more of it to do and that you need an acknowledged differentiation between work and personal coding time. One way to do that is to spend after-hours on non-work projects, like for non-profits or something. I did that for a while, but am back to focusing on work projects after hours. Another way to acheive that differentiation when the focus is on work projects is to move into new .NET territory which, while it may add time to the app's completion, the differentiation is achieved because of the newness of the territory explored during those after-hour sessions. Plus, the company benefits from the expanded skillset for future projects, so everybody wins.
Last weekend was more “differentiated” than this weekend now past, as I was spending time in getting a handle on and applying inheritance to a base set of existing app classes for a modified version of the app. This weekend was more output-focused, which is never a good starting point for differentiated after-hours coding. But I was able to build on my past week's foray into inheritance. In so doing, I recognized the need to employ inheritance in an initial (i.e. base) object rather than after-the-fact for a modified version later. With this in mind a control which used a commonly used dropdownlist with an OnSelectedIndexChanged to do something (with that something being different based on its context), became a base control class. An inherited class essentially started where the base control left off, with the method called from the OnSelectedIndexChanged (not the OnSelectedIndexChanged method itself.) Any future controls using this common dropdownlist and OnSelectedIndexChanged approach will get a similarly inherited boost.
So the output-focused weekend of work stuff turned out alright because I knew I was moving forward, doing it better than last weekend.