There's a Difference Between "Team Player" and "Sucker"
You definitely shouldn't "feel obligated".
You could be a nice team-player and agree to do some occasional extra work (as you did), under some specific circumstances. But you should never let that become a habit.
Follow the "Man with the Plan". Beware of the Prophet.
Personally, I'm willing to participate in the occasional rush if it's clear-cut and you know where you're going: management has a plan in place, you know how much will be expected, for how long, and, most importantly, WHY you need to do this and HOW these extra hours will translate to added-value and help the project.
If all you hear is "it's just one time" or "just a few week-ends" and that becomes a motto, or if you see people working on week-ends but that it doesn't translate to actual value on Mondays, it's a gigantic red flag. A good example: people staying late to finish a build on Friday evenings, or to build or run smoke tests or UATs on Saturday mornings, or do a migration from DEV to QA or whatever. Most of the time I've seen extra-time for these, they translate to very little added value: the build will generally take longer than expected, or fail, or critical tests will fail but the right person won't be here to fix them. So, in effect, some poor souls showed up for almost nothing, and the problem that was there on Friday is still there to fix on Mondays. Don't bother.
In fact, Dilbert says it better than me:
Same as fixing some stuff at the last minute on a Friday evening if there's no launch or if the critical person to check it won't be there. Just show up maybe a bit earlier on Monday. They'll likely be busy too anyways and you'll have just the same time to do the work, except you'll have the support you need, and you won't be exhausted.
Plus, you know, your kids won't call you "dude" or "lady" instead of "dad" or "mom", and your friends won't ask you where you've disappeared the past few weeks/months and if you enjoyed your travel through a space-time rift.
Still, Some Business are More Prone to Rushes
Keep in mind that in some industries there are specific "rush" times because of deadlines that can't be missed (e.g. eCommerce for sales periods, big sporting events, etc...). Not that it means there should be such rush times, but software being what it is, it's likely there'll be a few. It's still a big red-flag that some people screwed up, but it might be acceptable. Plus sometimes business "go-lives" will be done at odd hours so that legitimizes the overtime as well.
Beware of Peer Pressure and Emotional Blackmail
In any case, if you hear this, it means your workplace is really getting a bit toxic: "you know, everybody's been pitching in a little, so make an effort. We need you this week-end! It'll be just one time!"
Run for the emergency exit. Because:
- It won't be just one time, the manager just told you it already happened a few times!
- Managers should not use guilt as a pressure point.
- Everybody is obviously getting screwed.
But if the project is just clearly going nutty and mismanaged, just say NO. Otherwise it will be a disservice to everybody.
Everybody needs a break at some point, or quality will go down, and the deadline will likely keep extending. Most likely, it's the management processes that need rework and they need to face the fact that they screwed up and re-negotiate a new realistic deadline.
(Generally) Don't Work For Free
Also, never do the extra hours for free. Well, almost never. One hour here and there, but 15... hell no!
There are cases where contracts for higher-ups include clauses covering extra hours, but in some other cases it's just a no-no. It's illegal in some countries and jurisdictions, though it's quite dependent on location, labor laws and of course your actual contract. So get some info on your local labor laws for a definite answer on that front.
And management shouldn't be surprised if half of their team walks out the door at the end of the project (or before it) anyways if they try to abuse unpaid over time.
In fact, I've seen that happen quite a few times. Luckily, generally people have a sense of team-spirit and pride, and they won't let their team down until the project is finally done (be it launched or dead...). Which is nice, though maybe that prevents management from seeing the real issue. And then suddenly, you see 15 of your best engineers flock the hell out of the place to greener pastures, with good reason.
And keep an eye out for "hidden" over-time as well.
It's Rarely Rewarding and Rewarded
Keep in mind as well that perception of work and performance are very often quite disconnected of actual performance:
So, it's not really worth it to work all that extra time if:
- you're not rewarded for it,
- you're actually being nagged about slacking off on other fronts.
If You Really HAVE TO, Keep it FUN!
Maybe that bit will be on you and not your management, and it's not really part of your question, but if you can't get them to let go of the crazy extra-time, make sure to keep it fun with your teammates.
A few suggestions:
- show up with casual clothing (if allowed),
- show up with your kids (if allowed, and if agreed upon with your teammates),
- bring breakfast or even organize a team breakfast (if NOT allowed, whatever, do it anyway, seriously...),
- make sure to have some time for drinks or another activity with teammates after work,
- maybe try to do some sports together, or something like that.
Though it's easy to think "I see these people way too often lately", it's very beneficial to share more than just work in those times. It will be therapeutic (and give you the opportunity to frankly b#tch and moan about the project/management) but will also ensure bonding is OK. So if you can just say "hey let's go for a run Saturday morning before launch" or "let's grab a beer after that build is done before lunch", do it.
Regarding kids at the workplace... They can be great mood-supressant, but only:
- if the environment is NOT too stressful. Because you don't want them to feel it, and you don't want them to potentially make it worse;
- if it's in accordance with your local laws;
- if your employer allows it;
- if your teammates are OK with it (not everybody is so keen to have kids running around, yelling, touching things, etc...).
So make sure to check everybody's stance on it. If you get green lights, it's a nice thing to do once in a while: they help to keep the ambiance "family-friendly" and low-key during that dreaded Saturday morning smoke-test run, and it gives your kids an opportunity to see what you're up to. Plus you'll have them nag you to get out of there, so you'll definitely keep on your task and get it done and GTFO ASAP.
This is all fun and nice, but what do you actually tell your manager so they can see the light and realize they've been working everybody to the bone and something's gotta give?
There's actual academic research on the topic and heaps of not-so-academic texts as well (this place probably being a good source as well), showing that stress and overtime have negative effects on your health and private life (duh!) and on your work performance:
Comic strips courtesy of Dilbert and CommitStrip.