Sometimes, you just have to accomodate work when things don't go according to plan. Software is particularly harsh in this realm and I've had to work through lunches and work after the working day has ended before. Thankfully some companies nowadays are adopting the ethos of "If work is being completed, then nothing else matters", so it's no longer beneficial to use your free time to get more of your employers work done. If you're working in a company where no-one leaves at five, six, or whatever time your work is meant to end at, you might want to reconsider who you work for. Below you'll find a list of advantages and disadvantages to working overtime and through lunches (Caveat: being on-call isn't what I'm talking about here):
As you can see, my opinion is that overtime should be avoided if possible. I recently worked quite a bit of overtime. It started with me pushing back on my lunch so I could stay "in the zone" for longer in the morning and. overall, get more work done. It ended with me working a good bit over the weekend, then up until midnight of the deadline, after skipping my lunch breaks for weeks. Co-workers were a bit concerned over why I was doing this. I had only worked at companies where if the work wasn't done, you just had to do overtime. It was made clear to me that not all companies operate this way, and that me being new essentially meant "Don't crucify yourself over a deadline", which I was doing up until that point. The deadline could be moved and my productivity/motivation levels returned to normal after a few days. I definitely appreciated this after working so hard for so long. If I'd mentioned what I was doing sooner, I would have avoided the mini-burnouts I had. Find a company that treats you like this, then stick to them like glue!