I'm thinking about implementing "office hours" where I'd be open to interrupts. The rest of the day I'd like a "no admittance except on ~~party~~ urgent business" sign.
What are some tips to go about this, or maybe some pitfalls to avoid? Thanks.
Note: not in any way involved with Luxafor. Was given their product by a friend.
1) Coworkers needing help with their thing (rubber duck, for example)
2) Coworkers needing help with your thing where you are the expert
3) Bosses asking questions about the future
etc.
Different strategies can be helpful for these things. For long term planning, make a meeting. Say you'll think about all those things and have some great ideas for the meeting. This takes you off the spot, and hopefully will start some recurring thing where you get interrupted less.
Coworkers working on things is a bit harder, since you don't want them blocked, but you don't want them interrupting your either. I've done a lot of different things for this:
1) Is it something you can document that you are asked constantly by lots of people? Document it!
2) Is it something you can't document or schedule? Sometimes before getting started on something big, or before lunch, before scrum time, (when I am not in deep work) I will proactively ask some of the people who are likely to need me that day if they need me. Definitely ask and get a feeling at your standup if you have one if you need to help people out.
3) Sometimes I've adjusted my hours, where I will work from home for a few extra hours a day, where I'm harder to interrupt. Turns out if you're not in your office, and it takes a little more effort to bother you, that people might not, or they wait.
One of the tricky things to watch out for is when people come to you first after having a problem, rather than trying to solve it on their own. Try to not get in the habit of being the line of first defense. Teach them how to fish.
The problem I've had with trying to establish signals that I am heads down (e.g. putting up a sign, headphones are on, hoodie is up, etc etc) is that I will inevitably still get interrupted, and I will be angrier than usual when it happens. An interruption can be small as folks popping their heads over your cubicle wall to "see if you are busy". This drove me crazy, so I stopped doing it.
Another thing I've tried with little to no success: blocking off times on your calendar. People will figure it out and book over it.
Requesting days to work from home or a coffee shop (if possible with your job) is a great option, and I've found that I am way less irritated at interruptions when I regularly take days at home. People are way less likely to pick up a phone and call you.
Another good option, if your office has the available space, is to take over a small conference room every now and then. For this to work, you can't do it every day. Otherwise, folks will start to treat it like an office, and knock or peek through windows to see if you're busy.
But the best advice is to have honest and regular discussions with the offenders. Try not to be angry about it, and try to understand their point of view. If it works, the effect will wear off, and you'll have to remind them every now and then, but I've found this to be the most effective strategy. I usually ask people to Slack me, and promise them that I'll check Slack and respond to them in at least 30 mins. Those incoming messages may break up your heads down time, but you can at least silence them until you finish your current code :)
Hope this helps!
In one team with 8 team members at a midsize company consisting of mostly junior devs and the CTO being a scrum/agile supporter, we would have discussions constantly, and features development would be consensus-based and tasks would be broken into tiny parts. One of the juniors had complained that they have too many meetings and suggested a meeting to address this issue (oh, the irony).
In another team, we're 5 people, all seniors with different skill sets. We do some agile planning with a simple scrum board, but everyone trusts the others to do their job. There have been days where I was in the office with 2 other devs in the room and I spoke maybe 10 words (I mean that literally) in the whole work day.
It could also be a symptom of "nice guy syndrome". I used to be that person. People would not just ask me about project stuff, but maybe the printer is broken. Or WiFi is slow. Or coffee machine needs cleaning. I couldn't do project stuff anymore. With each passing project, I learn how to be less of "that nice guy" towards more of a "that expert guy who will help if it helps the team". And if it's a junior team and everyone keeps asking me tech stuff, I will talk to the tech lead and ask whether or not it would be more sensible to reduce the number of tickets assigned to me and use me more as a coach, doing small workshops and doing pair programming.
And then I pamper myself with work from home days and firewall the access, either with tech or with good habits. Close the email, slack. Boss has a phone number, bosses make good default routes to get to me.
I don't do the pamper thing a lot, because I want to be available. I budget 20% of my week for heads down, inaccessible. I prefer it in 4 or 8 hour chunks because it can take me 2 hours to get into the zone. Once I'm there, I'm getting the majority of my output done in a week.
On the weeks where I do 50% heads down or more, I find I start hurting myself. I can do it for a few weeks, maybe a month or two, but if I run in the red zone for an entire quarter, I took too much and now I'm going to have a bad next quarter. I'm not a 10xer, I need to pace myself to get my 100% in and have something left over to help everyone else out, too.
I'm nice, especially if I am new to the company.
I ask that if something isn't urgent that they send me an e-mail and I'll review it later, often at home in the evening.
I also would be open to a chat during lunch time, but not over a meal. Come to my cube and let's chat while we eat. I'm eating, you can choose not to do so. Eating is the priority, this isn't a hands on show me the code and get my keyboard all grease and food.
If something is urgent and it's my job, by all means come stick your hand in my face.
If something is urgent and it's not my job and you think I can fix it, please come stick your hand in my face but please don't do this often if it turns out you just want any geek at the company.
During the day I don't answer e-mail except for first thing in the morning and during the evening. I don't have notifications on.
Please don't stick a post-it note on my screen! I'm sure I have an inbox or a mailbox someplace you can deposit things in.
All of this being said, I try to be flexible with everyone, over and over, until I have to insist that I get my projects done. I like completing work that makes everyone say "Wow". This means my full attention to details and general awesomeness.
I understand that to you, as an individual, it may seem detrimental and even a waste of time but realize that overall it’s a positive thing for everyone.
Instead of having some engineer waste hours struggling to solve a problem, just get them unstuck and go back to whatever you were doing.
My attitude is that when I’m in the office, it’s all office hours. I’m there to collaborate. If I’m not in a meeting, then I’m available for questions. With that said, it’s ok to say please wait or I’ll get back to you on that.
Please don’t take it the wrong way but I’ve always been bothered by engineers who have this attitude. Very often these are the same engineers that can somehow focus on writing code and watching Netflix on the side. A large portion of what we do isn’t very complicated and it doesn’t really require 100% concentration (hence netflix on the side). IMO, this is just an excuse we engineers use to pump our chest about how important our work is and to be anti-social.
Some tips
- make sure you have good documentation
- create a slack room where team members can ask for help and encourage them to use that instead of asking you directly. Other team members can pitch in too
- be proactive and get to know the engineers you work with. Ask them if they need any help or if they are blocked by something
- figure out the weakness of your team and hold internal trainings to fill in the gaps
- have some empathy for your fellow coworkers
A coworker tried using an availability light but.. good luck trying to get people to respect it. Either people will miss it, forget it, or ignore it (specially if they are above you on the org chart).
I tried mufflers a few times, but it didn't work that well. Same issue as availability light, plus the fact that everyone looks weirdly at you and initiate conversations when you have the mufflers on..
So what I did was push working from home more and more until I went to working 1-2 days from the office per week. Now I have a much better productivity, ability to focus throughout the day, etc, besides all the advantages of not having to commute 5 days per week.
Usually unintentional.. when people burst in on your maker time, they’re saying in action what they have is far more important than anything you could be working on. This isn’t true, so it’s ok to at first gently nudge people to set some healthier boundaries so people know how best to get your help.
If you have a helpful nature (very good quality) there’s better ways to not end up a path of least resistance where people can ask you before looking into it themselves.
You can decide if it is best to put up a sign, send an email, or verbally tell anyone who interrupts you to help you help them in one of the following ways:
- Use Calendly to block out available times. use these for overflows of conversations and solving problems. 30 minute slots.
- Answering things via email quicker than than in person. Batch the communication. Save in person for dedicated problem solving.
- Consider starting a lunch and learn on Monday’s to help people share what kinds of problems they helped someone out with that others might have too. People learn to help each other.
- If these are your direct reports you can ask them what they tried before coming to you, not give th,e the answer and work through it with them,
- Use headphones to indicate you shouldn’t be interrupted, ask ppl to respect it. I know someone who would flinch a little when he was interrupted.
- When someone interrupts you, before replying, you can say I’m in the middle of something and have a minutes now if we need more time we can schedule something later in the day. They won’t get all the help they need and will focus on how to best get that, worst case.
- Start using the phrase “I don’t like interrupting you, can we talk when you reach a good stopping point” in your correspondence when requesting time of others. It sinks in over time.
- There is a busy light you can buy that can sit on top of your monitor and is red, yellow or green to be approached. I forget what it’s called but they look interesting.
That's the problem here. You being interrupted frequently is just a symptom, and unless you're hoping that making yourself unavailable will force them to rise and no longer need you in some kind of "sink or swim" situation, that's quite a risk. Don't mask the symptoms; cure the disease.
If however, you have a boss that will interpret this as "Yeah, I haven't really worked much because I constantly talk to my colleagues.", it's going to be hard to introduce these quiet hours now. Highly depends on if your boss wants to support this.
There is nothing wrong with telling people politely that you don’t have time right now. They will respect that.
1) Do you have the organizational and political clout (and skill) to institute this?
You can say "no admittance!" all you like, but if you're a mid-level dev and your lead needs something, you're going to get interrupted. Like it or not this sounds like a big culture change and it's not something even most senior devs have the organizational power to implement.
2) Are you prepared for the objections and potential backlash?
Whether we like it or not software has gotten written for decades with the devs fighting against constant interruptions from peers, managers, and other random coworkers.
3) Do you really need this?
Sort of building off #2, what makes your project or your work so special that you need to be available for only certain specific times of the day?
4) Are you prepared to push back?
So let's say you actually get this implemented. Then your boss's boss's boss comes up to your desk in the middle of your working time and asks to talk to you. Are you going to tell them no in front of all your peers? Are you prepared for them to get upset with you? There's no way your "no admittance" time would be on their radar unless it was a team-wide change (and even then, maybe not).
--
In reality, most of us are not working on anything so complicated and important that the occasional interruption is a terrible thing. The same way 99% of companies do not need to hire the best rockstar developer they can find, most developers are good-not-great at their jobs and realistically being interrupted is not going to cause us to miss deadlines or put out terrible code.