Some games are notoriously addictive. Can software development be, too?
An observationHumans like their time structured. Addictiveness of games seems to stem from a system of tiered goals. A good game sports a full spectrum from split-second through medium-term to the extent of the entire game.
( UFO and Diablo II are two notable examples )The mechanismYou're aware of all kinds of goals. Every short-term action can bring you closer to a long-term goal. If a particular shorter-term goal isn't very enjoyable you're still driven by the bigger goals, you know
why you need to get past it.
To the contrary, Tetris has mostly immediate goals, few short-term goals, and no strategic goals except getting to the high scores table. It's easy to abandon a game if it's getting boring, unless your score is really high.
Comparison to software developmentAt grunt level, a developer has a bugtracker full of immediate goals, maybe a bit of short-term goals like having things ready to the time of the next release, and usually no long-term goals. Longer-term goals are handled by managers and maybe some of team leads. Bigger goals exist, but are
invisible to mere developers.
You can make a longer-term goal from a bug-quashing competition or a race for a feature, but I rarely saw such things set up, and setting up and further handling by a clueful person is required.
The catchThe lack of longer-term goals makes it easier to distract and procrastinate. There's no important medium-term thing to care about. The short-term things are of limited importance, unless it's a rare critical bug. You can't constantly pedal the longest-term issues, too: e.g. an employee which is afraid to be fired any day won't do much good, and is prone to fleeing.
Mitigation strategies* The cherished 'startup spirit' is very much about goal transparency: everyone sees the entire product evolve and cares about a next release or another feature.
* XP's journey from a complete mockup to a completely live system also helps see what's next, and probably even why.
* More?