The title is a bit vague so let me elaborate: I develop both hardware and software, and I'm in a position where I get a list of 'large' tasks/projects to do but not on a regular basis. Sometimes there's 10 new things to do in one month, other times months pass by without any real deadlines. This gets combined with 'small' tasks/projects/bugs that are extremely urgent. Basically no one but me is in a good position to decide how much time I spend on what, and when I do that: the basic philosophy is 'you do whatever you want, whenever you want, just make sure the things that are urgent or have a deadline are done in time'.
Firstly I'd like to hear from others if they are working in a similar environment? The reason I'm asking is that I do not know many other programmers in person, and the ones I do talk to are more in a typical '9 to 5' job and their time is rather managed by, erm, managers.
Secondly, for those that are in a such a situation, did you ever find yourself spending huge amounts of time on something that was not really necessary, hereby kind of abusing your freedom? I'll give some examples: about a year ago I spent at least a month on writing a build server application, only to abandon it last month in favour of Hudson. Which again took several days to setup. Sometimes I find myself losing huge amounts of time refactoring a core library for the xth time although it's not really needed. Once I spent weeks studying the ins and outs of digital filters, while the actual task was making a basic bandpass filter that anyone could probably do in a day or so. Then I changed my mind and went with an analog implementation after all. Please share similar stories.