I have worked with several developers who are very "hot and cold" in terms of their motivation. Sometimes they will slack off for weeks on a project and make zero progress, and other times they go overboard by pulling caffeine-fueled all-nighters and producing brilliant code. (Usually these binges are motivated by deadlines.)
That would be fine, except that I really want to keep these developers around and happy for the long term, and I am worried that they will burn out. I really want to instill a culture of long-term sustainability and life/work balance, and not just burn through Mountain-Dew-swilling, 20-something programmers and spit them out, as I've seen happen at many shops which are in a constant state of deadline-driven chaos. I also want to dial down the wild swings and keep things on more of an even, steady keel for the sake of project management.
What can I do to motivate these developers to be more even-keeled with their output? Are there ways that I can motivate them without terrorizing them with deadlines?
Or, should I just let them establish whatever work habits they want, erratic-as-hell as they may be?
EDIT: To clarify, these are all remote developers. I do keep in contact with them via email, but I can't exactly just stop by their cubicles to have a chat.