At what point do you actually fire people? For instance, if they go like 18 months without vacation, do you literally fire them? Wouldn't it be easier to just grab them and say "hey, next two weeks are on the house, go have some fun and I don't want to see you come into the office or make any commits"?
Our feedback cycles are much much shorter than 18 months. It would never go that long. We have semi-annual reviews. We also have weekly 1-on-1s and one of the best portions is "what sucks?"
This portion of the 1-on-1 is a time to vent about anything and everything no matter how small or seemingly insignificant. Don't like the flavor of free yogurt? Bring it up. Desirous of different snacks? Mention it. Feeling overwhelmed or burnt out? Say so.
All of the what sucks from all developers is compiled into one email and sent out along with action items on each issue is being addressed. Being conscious of what is less than ideal on all levels helps us improve our working environment and our processes.
We've set two large goals at our company, developer happiness and client happiness. Everyone's job is to fulfill those two goals and part of being happy is not being burnt out!
By making vacation mandatory, but with no set limits, and saying you can literally be fired we're signaling to each other the relative importance of being aware of our limits and addressing the importance of moderation.
Someone working 60 hours a week is indicative of a severe problem in process, planning, or execution. The same applies for someone going six months without a day off.