Keeping a software developer/engineer motivated is a difficult task for managers, directors, all the way up to the VP. One of the common issues that comes up, that leaves an engineer unhappy with their lot in a company is conflicting tasks. Engineers often, especially senior engineers, can handle multiple tasks at a particular time. But nothing ruffles the feather of an engineer, a logical thinker, like an illogical task.
I recently discussed one of these conflicting tasks with someone at a user group meeting. Names are changed to protect the innocent.
So Toklinian, a solid and well rounded engineer, comes in to a new job. The primary motives behind his position is to build new software prototypes with the latest software and also to provide HTTP tracking & security on a machine.
The new software includes all sorts beta goodies & other packages and suites. Some of the things, rather unstable, but for the most part all bits that clients are asking for.
On the other hand, the HTTP tracking & security requires tons of specific tools. Each of these takes a few minutes to setup on a machine, and require a key and other various time consuming configuration settings. In addition to that, the day to day scanning, filtering, and other network related security and tracking all require tons of lists of IPs and domains. These lists are created in the various tools and packages, again in a very time consuming manner, for use during the course of a day.
The boss determines that Toklinian can do all of these things on one machine, without Virtual Machines. Toklinian is up to the challange, but makes it known that when the machine needs reloaded, or if the beta software crashes the machine that there could be hours, if not days of downtime that Tolinian would not be able to work on most of his primary tasks as defined by the job.