There's been a big response to a comment Tim Cook said at the recent WWDC2019 event.
He applauded the engineers and other staff who gave up "nights, weekends, and time from their families".
It was a polarizing comment for sure. The response was full of mixed opinions about the way staff are treated and the way they're made to feel obligated to put in extra time.
In Apple's case, there were undoubtedly a whole host of complex reasons that led to people overworking to prepare for this event. Aside from the logistics of staging the event and inviting industry professionals and press, there's the significant pressure of being a company under such scrutiny (read as Wall Street) - that pressure would have been felt exponentially the closer they got to the deadline.
In other industries the pressure comes from clients. In some fields of law, as in the consulting game, the client is largely dictating the timeframe, and you end up with teams of people working days on end without breaks to meet a deadline.
Common sense would dictate that clients should understand that if your consulting team is working working around the clock and not sleeping, they're not going to produce the best work for you. However, the market does not run on common sense. The client also knows a price was negotiated, and if the team does not have enough staff to manage the project without overtime, then hire more staff. It's your problem, not mine.
I actually think the software development industry has done pretty well managing this problem because we enjoy a variety of methodologies that help us track and manage time throughout any given project.
With Agile, we can break a project down into sprints and estimate work fairly accurately. Agile has not only done a lot for making software development visible to the wider audience, but also for helping us avoid the so-called death-march: working all hours to meet some arbitrary deadline and screwing up our routine in the process.
I think building overtime into your culture is fundamentally wrong.
I think someone choosing to put in an extra hour or two to ensure a solid start to the following day or to build in some extra insurance for a future event is fine. As a developer, if I'm working on something and time's getting on, I'll secretly negotiate with myself to get to a certain point because I'll be so much happier tomorrow starting from a cleaner point. In a way that extra effort is locking in my motivation for a later time.
I'm also a fan of overtime being rewarded on a case by case basis. In contrast, you might be paid a premium knowing your consulting job means you'll be at the mercy of a new deadline all the time. You'll always be working overtime.
I much prefer the on-demand model - there might be an important demo and we might need to rally, but after that crunch period the team need to feel that effort is valued on an individual level. They should promptly be rewarded with time off (some multiple of the extra hours they committed) or extra pay (some multiple of their hourly rate).
Overtime is a common occurrence and often unavoidable but it's the relationship between employer and employee that is most important. No employer should take employees for granted and expect overtime as a given. Everyone has different priorities in their lives and you need to give extra when you expect to receive extra.
Let me know your thoughts! I'd love to hear about your experiences - whether you feel like you're taken advantage of or whether you feel suitably compensated when crunch time hits.