15

I'm a recent (1.5 years ago) graduate, and I joined a new company about 6 months ago in an in-house tech position. Shortly after joining, I was asked to spend some time to deploy a new release on the weekend. This involves spending about an hour if all goes well, and many more hours if things go wrong. I was told there would only be a few such instances of this, and was told I'd be on a new project soon anyway which didn't have such requirements to deploy on weekends. I didn't argue with this as it seemed to be a one-off, and I'm OK with helping out every now and then when I can.

However, there turned out to be more instances of deployments than planned (releases got split up into smaller releases, and so deployments became more frequent). Again, I was told I'd be on a new project soon, so I was happy to do it a few more times. However, the new project I was moving to got scrapped, and I was stuck on the original project.

Now so far, these deployments have gone relatively smoothly, only requiring me to work for 1-3 hours on a weekend. However, I still feel this is unfair as a) this type of weekend work was not discussed with me before I joined and b) the deployments are unpredictable, so I may already have plans on the weekend, yet I'm expected to work. Fortunately, I have been free for all of the times requested (except one, where I just said I was busy and fortunately my colleague was able to cover me instead), but I don't want this to be the reason I stay silent. I'm also not asked if I'm free, it's just assumed and there's not really any moment for me to say "I'm not free" unless I approach my boss and tell him. However I feel it should be my boss coming to ME and asking if I'm free, am I wrong?

Before joining, there was no mention of working on weekends. There was a bonus discussed, however, but I figured this would be for performing well, not working extra. I'm not paid for the weekend work and I don't receive time off in lieu.

I would like some advice on how to proceed. The way I see it, I have 3 options (feel free to suggest more):

1) Discuss a new way of deploying. I may only be a recent graduate but even I know that deploying to the only production server each time a release is made is a disaster waiting to happen. A better way would be to have 2 production servers, but keep one as "staging" then swap them out when deployment and testing is complete. Either way, there are many more ways to do it. Downside of this is that this is a large corporation and so will likely resist changes like this (given all the infrastructure is designed to work this way), and even if the idea is accepted, it will take many months before it comes into effect.

2) Speak to my boss about getting compensation/time off in lieu for working on the weekends.

3) Flatly refuse to work on the weekends (this is probably not really an option as it's not exactly diplomatic or mature)

Many thanks in advance for any advice.

3 Answers 3

16

Wow, it makes me wonder if you work for the same company where I worked...

First, decide what you really want here.

You mentioned a bonus. You mentioned being asked if you are free rather than being expected that you are free. You mentioned compensation. You mentioned time off. You mentioned fairness.

Figure out what is important and what is not. Then discuss the coverage situation for some weekends, and talk about what you would like to happen.

Your thoughts about deploying to staging and swapping it out to production make sense. Your company may or may not go along with that idea. My shop did just that, but we were still contractually obligated with many of our customers to perform even that "safe" level of maintenance on Sunday evenings. The deployments were safer and quicker and easier to roll back, but not really any faster normally and still had to occur on weekends.

You might want to ask your boss why the deployments must occur on weekends. Perhaps they could be moved to a morning or evening during the week, or even during lunchtime. That might be viable with multiple servers. A load-balancer on the front end could route traffic from one set of servers to another efficiently. Depending on your applications use of "state", users may not even be able to tell that such a switch occurred. We had one application like that.

Consider talking about "comp time" but in a less formal way. "If I do a release on a weekend, would it be okay to come in a bit later than usual on Monday?" is an example. (Change the specifics to suit your needs - perhaps leaving early on Friday would be preferable.) In my experience, many shops who aren't willing to promise a formal, hour-for-hour comp time swap are willing to let you tailor your workweek on a more informal basis. That's how my company worked.

Refusing all weekend work doesn't sound viable, unless you are ready to leave and find a new job. But you could ask to be part of the release planning process. And in the planning meetings you should feel free to say "Sorry, I'm busy that day." if you really are. Some shops have a coverage rotation, so that any one tech person only has to cover every 4th weekend, or such. That's what we did.

If this situation bothers you that much, leaving might be your only solution, but hopefully not. If you do leave over this, ask specifically up front about weekend release work as you interview for your next job. Don't expect them to mention it - in many shops covering releases no matter when they occur is just part of the standard routine.

I've worked in several companies that required my team's support during releases. And most of those releases happened off-hours. Some happened at 2:00 in the morning, and required that everyone be physically present in the office (no from-home work)! Many happened on Sunday evening but permitted everyone to work from home. I went through a several-year stretch where we released changes at least 2 nights per week, and sometimes as much as 4 nights per week. This sort of thing sometimes just comes with the territory.

4
  • 3
    "You might want to ask your boss why the deployments must occur on weekends." Totally agree. We deploy client websites, and we have a rule that Production Deploys must happen no later than mid afternoon Thursday each week; we never deploy on Fridays unless in emergency. That way, issues are handled by staff during normal working hours.
    – PeteCon
    Commented Apr 10, 2017 at 3:41
  • 1
    @PeteCon [I'm not related to this question in any way] deployment where I work requires down time. There are far less users at midnight or over the weekend to experience down time than at normal working hours. Commented Apr 10, 2017 at 7:19
  • 1
    it depends, if there are no users until Monday morning after the devs get into work weekends are pretty good. Otherwise it's bad if no one is around for bugs.
    – Snowlockk
    Commented Apr 10, 2017 at 15:42
  • Personally I would really insist on better deployment planning. Considering that know they're less big deployments, this should be doable. I wouldn't want to work for a company that can think it can throw away my weekend plans whenever it wants because of their lack of organization.
    – Walfrat
    Commented Jun 7, 2017 at 8:14
4

You're right that refusing to do it is a bad plan You'd risk getting fired on the spot or as soon as your boss can hire and minimally train a replacement. Even if nothing that dramatic happened you'd still be burning bridges.

Of the other two options I'd suggest leading with the first. Good managers always prefer when subordinates bring solutions, not problems. A deployment system which only requires a few minutes to make sure nothing went wrong, has far fewer potential failure mechanisms, and which can be losslessly rolled back to investigate any problems on Monday is much better than what you have now.

While there's nothing wrong with asking for comp time in general; if the current situation has been the case for long before you started it might be a good idea to sound out some of your peers first. It's one thing to be asking if you're just the 1st person bothered enough to do so, it's something else if your boss is strongly opposed to the idea and has repeatedly shot it down in the past.

2
  • Even better would be a deployment system that can be run automatically early on a Tuesday morning (with rollbacks if necessary), for example, so any issues can be caught almost right away when all staff are available to help.
    – HorusKol
    Commented Apr 9, 2017 at 23:40
  • "You'd risk getting fired on the spot" - note that the question is tagged "UK" Commented Jun 8, 2017 at 9:13
3

This is pretty standard on a lot of technology teams that are growing their release and deployment process. They should have brought it up in the interview, but they might have assumed you knew, or, you know, 'forgot to mention it.' In future interviews you can ask about the deployment process.

For now, what you can do is say to your project manager or whomever is planning these deployments that you have some weekend commitments coming up, and you're considering some travel, so you want to be able to communicate that and/or be able to plan around these deployments. If they are reasonable, they should realize that they need to be asking the team members about availability before scheduling these releases.

You can also ask if there are plans for deployment improvement and if there's 'anything you can do to help'. This will make you seem willing to work toward the betterment of everyone's weekend rather then asking when you can get out of this work.

Finally, when you have a deployment, ask your manager if you can take an hour off during the week if you have a deployment, provided your work is on schedule. If you're working at least 35 hours a week, a late-night deployment during the week should merit a late start the following morning, and a weekend deploy should merit an early Friday dismissal the following week. You will want to have this conversation with your manager directly. This is typical on tech teams, but most technology managers try to not advertise that information to other employees that might not understand.

If your work environment is too burdened with tasks to accommodate any of this, you should weigh the benefits of staying in this job against the costs of finding a different one.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .