"Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration."
"Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things. What I do takes long hours of studying and uninterruptible concentration."
Note also that it is a particular word choice by Knuth: uninterruptible ... not uninterrupted. It harkens back to what Paul Graham wrote in both Maker's Schedule, Manager's Schedule and in Great Hackers -- even just having a mid-morning meeting on the calendar at all can prevent you from even attempting something hard at the start of your day, because you know the time is already interrupted.
You need more than just happenstance of not being interrupted in a given time window. You need to know that you can't be interrupted, at least not unless it's a sky-is-falling kind of emergency (and you need to be able to trust that your colleagues know the difference).
This is far and away the number one thing I need as a developer. I can write passable software that I'm not proud of if it's loud, violently anti-privacy, over-saturated with "collaboration" generally in some ultra-Agile open-plan nightmare setting. But the only times I've ever written software that I was proud of -- software that made huge, huge differences in the organizations I was part of -- was when I could finally find a loophole or something to create a situation when it was not possible to interrupt me with the usual bullshit.
It amazes me that even still, status effects and incredibly poor understanding of where the value of software engineering resides leads to so many organizations that not only have interruption-is-the-norm open-plan disasters for offices and a million Agile meetings, but actually praise that garbage and hold it up as if it is an example of positive collaboration or effective engineering, despite it being the very antithesis of positive collaboration or effective engineering.
Einstein's wife was forbidden from entering his study.
In my case, I work from home two days a week, and I have children. I separate space is essential to get work done. It's a matter of having a private space that allows me to be home if needed, and save time for with my family, or not being productive enough to make it economical for the business to allow.
I frequently work from home and coworkers pretty frequently IMs me. Maybe I overthink this but I don't dare to shut off my IM (or mail either for that reason) in order to have uninterruptible concentration on a task because if I'm not responding to IMs quickly enough my coworkers may get the wrong idea about me working from home. The company supports it and most of the time I'm much more focused working at home, but when I'm in the office I frequently hear comments about other coworkers working from home like "Oh, (s)he's working from home, well, it is a beautiful sunny day today * snicker *".
I'm not quite sure why; I assume it's partly that software development is less unified these days, and perhaps partly that day-to-day coding is way less stateful than it used to be. If someone is juggling register addresses all day, I imagine they'd be especially quick to condemn interruptions.
In other words, people aren't ignorant of this, they just won't care unless programmer labor makes them care, and programmers seem especially bad at sticking up for these kinds of things.
Most people are social creatures (including most programmers I've met), if asked they will tell you they like to share a room with several others. It's fun, it's "collaborative" and there can be a hearty banter going on or whatnot. It's the cool thing to do because all cool startups do it! And they are team players!
So now if you come along and say you can't work under these conditions, your coworkers will think you don't like them and your managers will think you're not a team player. So in order to have any possibility of success, all programmers need to be on-board.
Now this is difficult because bringing the subject up may cause your coworkers think you don't like them. Then they'll say they rather sit together, and they want to be team players, and that having their own office with a door they can close feels like a privilege they don't deserve, and that closing the door feels like you're not being social, and that they don't even remember what it's like to be in flow (if they ever have). And that it will be too expensive for the company if all devs have their own room. Never mind the loss the company makes due to devs working (much slower) in interruptible mode. The problem is that that loss is not easily quantifiable.
My own experience is that I'm much more productive when I've had my own office and had the possibility of long stretches of working in flow. But whenever I've brought it up with a manager they've brushed it off as anecdotal (even though I've brought studies that say the same thing) and made me feel greedy for wanting the privilege and prestige that comes with my own office even though I care nothing about prestige and the only privilege I want is to be allowed to work in flow because that is a marvelous feeling.
I think this is actually false, both anecdotally and when surveys have been collected.
No one actually thinks you're not a team player just for desiring minimally healthy conditions. They are fully aware that you are probably a great team player, especially if you care about your teammates getting healthy conditions too.
The "not a team player" buzzword is just a political tactic to find a plausible excuse to discredit or eliminate you, despite you having a justified point, before it ends up catching on with colleagues. It's an HR code word for "we need a blank check excuse to impose our will while thinly veiling our dictatorial approach with some democratic plausible deniability" -- nothing more, nothing less.
Coworkers also will rarely care -- they want privacy too! As for managers making you feel greedy, that's just more of these psychological manipulations and tricks. They know full well your request is healthy and reasonable, but need a way to both look like they are high status and reject it at the same time, so they must invent ways to make your request look low status.
Yeah, me too, I guess I was a bit vague with the "if asked" part. I meant if asked straight to their face when others (possibly) managers are listening. There are exceptions of course but in my experience most people see it as a potential conflict with coworkers and managers and will not support it publicly.
> No one actually thinks you're not a team player
Yeah, I know, poor choice of words. But I meant basically what you said. It's shite politics in play. The cost of an office is a very concrete number in a spreadsheet but the loss of productivity is hard to gauge.
Could everybody just send a chain email with their "this is what I did, this is what I'm doing, here's my roadblocks" rote answers. Takes two minutes to type up, thirty seconds to read, instead of having to go stand around and listen to people ramble on for half an hour, with yet another meeting slicing your time into ribbons.
Here's my company's typical morning, for example:
- Arrive at the office. Catch up on email, Basecamp, maybe do some code review, that kind of thing. - Have a stand-up meeting that lasts ~ 5 minutes, where developers and product people discuss what they are currently working on, any blockers, things that they anticipate will be needed from others etc. - If there are any issues that require further discussion, agree a time or channel to discuss them.
It's great. Everybody is fully aware of everything that's going on, who's working on what, and any upcoming issues. It takes basically no time and serves as the launch point for the day's work.
I appreciate that it doesn't always work – may be more of an issue for teams that are geographically distributed. But I also absolutely see it working really well in practice, so I'm suspicious of reasons for discarding the idea so easily.
I have to wonder the environments in which people are working where this is not the case. Is it just that the teams are too large?
We acknowledge there are amazingly rare companies like where you work that don't suffer from this -- but they just seem to be so, so, so extremely rare that they don't really factor into any true understanding of what "Agile" means in practice at the overwhelming majority of companies.
Also, in almost every case our standup meetings went on too long because people talked about irrelevant things, personal anecdotes, weekend plans, etc. Many times they thought what they were saying was relevant, but it wasn't. Scrum leaders were often the ones doing this the most.
Over time it basically fractured the team into two groups:
(1) the "boy scout" group who wanted to appease the Agile process and look like good, obedient workers, and so never minded the irrelevant and time-wasting meetings and acted chipper and happy to engage in all things Agile.
(2) the disillusioned and burned out group, for whom (over time) the irrelevant banter of stand-ups became like having someone grind your eardrums with sandpaper, and led to frustration, lack of energy to participate, and resentment, and a ton of turnover.
I've seen this dynamic develop in a lot of companies too. Sadly, the answer they usually come up with is a sort of Agile eugenics: let the people who get understandably frustrated by Agile leave -- regardless of how much experience in the company they have, how critical they are to their team or product, or how good they are. And then change the hiring process to screen virtually solely for Agile enthusiasm and end up shifting the workforce to a pro-Agile monoculture -- and then, regardless of whether it's objectively true or not, declare victory and talk endlessly about how much more productive you are now that you are uniformly Agile.
[1] http://heeris.id.au/2013/this-is-why-you-shouldnt-interrupt-...
Stand-ups are only an interruption if they are poorly scheduled. I accept that sometimes it isn't possible to schedule one, such as when there is a large, geographically-distributed team. However, I have rarely seen them take place outside of the first 30 minutes to one hour of the working day, in cases where teams work on-site. This works really well in my experience, offering a little bit of time to get set-up for the day, a stand-up near the beginning to catch up and exchange status, then an uninterrupted rest-of-the-day.
To be honest, it sounds like in most cases I've heard of that teams are just undisciplined about interrupting developers. I obviously agree that interruptions are bad, but I've had great experiences (like my current team) when the standup serves to consolidate all interruptions – there will be no surprise customer demos, unexpected interrupts or other things of the sort, and part of the 'social contract' of the team is 'we will have this short meeting to keep us all up to date, and in exchange we will prevent developers from being interrupted'.
It works great.
What do you think is the cause of that? Could it be because organizations aren't led by people who've experienced this problem themselves? Or do they just fail to prioritize it?
Certainly there's a need for quiet periods. There's also a need for periods of communication. Could it be as simple as dividing the day further, where X hours are reserved for no-communication time? Or, providing a separate no-interruption room for those who want to use it? Or is it just a matter of building trust with colleagues, as you say?
Perhaps voice these sentiments within your company. If nobody says anything, how will they know?
Being expected to check your emails is an interruption.
Someone entering or leaving past you is an interruption (this is why open plans and shared offices of any sort don't work well for tasks requiring open ended concentration).
I don't actually believe that most people understand these issues, they don't understand the difference between the simple menial tasks, the small steps of implementing little details you've done a thousand times, and the large leap to actually keeping your mind full of a problem to solve.
Right. What I'm asking is, why don't people and organizations understand these issues?
There is a solution. I'm not sure we've identified all the details of the problem.
Staffing up for an acquihire event is a form of this. Designing a gaudy open-plan office with ridiculously opulent amenities yet no privacy is a form of it. Even the long-known fact that physically attractive people get hired, paid, and promoted more than equal-or-better performing, less attractive colleagues is a form of it.
I think there is something intangibly great about making something that is built to last, and that some people don't recognize the value of such a thing
Best of luck finding an environment that suits you. You will!
One of the better formulations is having lots of small conferences rooms (or corner chairs, or anything isolated) that anyone can grab, with bonus points for doors. It's not a complete replacement for respecting flow, but it's a great way to let people with some urgent, complicated code task get a truly isolated setting to get things done. A lot of everyday code can be written passably in counterproductive settings, so even occasional, high-urgency access to good workspaces seems to be a huge step up.
It also leads to problems where you receive status penalties in the eyes of peers and managers if you are the weird guy who always books conference rooms. It also creates problems if you work in a situation where you cannot move your workspace. For example, I also consider it to be absolutely basic to have at least two 24-inch monitors, my ergonomic keyboard, ergonomic desk chair, and trackball. Why should I be forced to use poorer tools, like a crappy laptop screen, portable mouse, crappy conference room chair, etc., just to get quiet or private space. It's unreasonable to give up either adequate equipment or adequate privacy.
In some jobs, I've also worked with large workstations and needed to be physically present at them, remotely logging in to them was not always feasible for some tasks.
Finally, you end up running into booking conflicts all the time. And anyone with more seniority or status than you gets to kick you out (thus interrupting you hugely and ruining your plans) and anyone with a meeting gets to kick you out. And it also leads to artificial scarcity -- there's no need for coworkers presumably working towards the same goal to be competing with each other for the scarce resource of blocks of spacetime in conference rooms. It's outrageously cheap and easy for the company to provide all of them with adequately private conditions.
Allowing a super generous work-from-home option is maybe a better solution -- as long as the company is also willing to pay for you to have equipment in your home office that is equally as ergonomic as what you get in the company office. But then you're contending with different kinds of status issues for not being physically present, some jobs still require a physical presence for various reasons, etc.
The minimal acceptable solution is for companies to simply spend the money that it costs to provide healthy amounts of private working space and give employees more autonomy in structuring how they work with regards to private time. No half-assed compromise should be given even the slightest legitimacy as a workable alternative and no company should get any credit for anything other than the minimally healthy option of actually providing access to private conditions.
That may be, but is email the culprit?
I think it depends on what your emails contain. They can be stressful, challenging problems, or simple ones. For me, the longer I am at an organization, the less stressful communications become, assuming I've built good relationships.
It's the first period that's tough to get through. You're getting to know both the people and the business, software architecture, or whatever the job entails. During that time, we often blame email because we get email from strangers. Make the strangers friends, and email becomes a lot easier.
I like to communicate with customers always short and to the point via emails, because I value my and their time.
But with friends, I like to write more interesting and funny emails, that takes me more time. But because they are my friends I am willing to spend it.
Writing those mails to friends takes more concentration and allows more reflection about them and myself, in order to express myself correctly and in a nice way.
I would see the culprit more in todays Twitter culture, where people are force to write short messages without much reflection.
Maybe even the onscreen keyboard in most smartphones are another reason. Nobody wants to write more expressive messages with them.
That's interesting that you find being funny more time consuming. Some people would say work/business/math is harder than humor.
You've proven my solution wrong. I can't think of anything more to say other than "some emails are easy, some aren't". And then, there will still probably be someone who says all their emails are a challenge, like Don Knuth, lol
With my friends and family I am more willing to express my feelings and opinions on subjective close topics where correct expression is more difficult. At least for me, that takes measurably more time than just stating facts or expressing opinions on more objective topics for customers (and sometimes friends, for example to organize an evening together).
Adding some business politeness just have to fit some template, is very unpersonalized and, I find, easily done.
But of course there are some difficult letters to write to business contacts to, but I would call them very self-reflective.
I think people like Knuth are more hand-written letter types, were someone is forced to reflect and to go to "the bottom of things", because the act of writing itself takes more time. But I think that it doesn't matter that much about which medium is chosen or how long it takes to generate the messages, because the persons that are generating those message chose how much time they are willing to spend on each subject. Forcing it though the medium might enforce a certain standard, that could help some people or is more bothersome for others.
Condensing / distilling something complex into its most-concise essence is a valuable skill most of us would do well to acquire.
"Brevity is the soul of wit."
Cut down my stress BIG time
That's fine to isolate yourself from that if you define your own problem and solution for it and work alone, but really, how many people do that? That's a thing reserved for idk, university researchers and people with their own projects.