back
130 comments
This meets with my experience. I rarely have meetings, and I regularly get solid, 4-hour blocks of productivity. Typically two to three time per week. Those pushes account for most of my work, and my best work.

I do not schedule those 4 hour blocks because I would not be able to stick to the schedule. I often have trouble concentrating for even 30 minutes straight. When I hit 4 hours (and my time tracker sends me a notification to celebrate), I am always surprised. I get into the zone, and then I find myself still coding 4 hours later.

Every meeting is a chance to miss that enter-the-zone window.

I'm like this too, and I hate it - because it means I can't reliably get those four hour blocks.

Not having a schedule isn't a good thing, it just means that if you're ever in an environment where outside factors become significant (new job, new child), your productivity gets fucked.

Meetings.

<rant> This has slowly and surely become the top reason for productivity loss at work for me and in my opinion, also for the team that I work in. I have walked out them once I realize there's no valuable input or output, declined them, carried my work in the meeting room, passively attended them, aggressively tried to keep the meeting on track, MoM'ed the hell out of them and just about tried every single trick I've known to get an ounce of productivity from them. And I have failed.

My next attempt is to measure time spent in meetings per sprint and report it out in the retro (meeting, ironically). I have no clue how I can get the people responsible for developer productivity see this gaping hole that are meetings that I don't have to be a part of. </rant>

What time tracker do you use?
I took this to heart when it was published and ensured I schedule full team meetings that are as short as possible, and either start a day, end a day, or are directly adjacent to lunch. I also ensure there are 2 days of no scheduled meetings.

Another thing that helped me as an IC was keeping notes as a habit. It needs to become ingrained enough that it isn't blocking flow to jot a note into OneNote or Evernote. This allows you to 'see' the interruptions later.

I'm more of a 'pile' based note taker, so it's a gigantic list of timestamps + notes. If you are getting too many interruptions it also provides highly detailed 'proof' to the person in charge.

More recently I realized that getting distracted today is tremendously easier than it was in the past. When I find that is an issue I set a meditation timer to ring a bell every 5 minutes. If I'm not doing what I want to be doing when that bell goes off, I just go back to doing what I planned. At a certain point the bell ringing is just a habit to ensure your attention is in the right place.

I took over as IT Director at a company with a small team. Everyone would take their issues to the developer all day long, interrupting his day constantly. So every new "fire" because the latest task.

Not surprisingly the hacked together new website (which went live months late and $100s of Ks over budget) was a train wreck. Unreliable and constantly causing errors/issues.

The first thing I did was said the only person that can talk to the development team is me. It took about 2 months to get all the software processes in place that were non-existent, to get the entire website working and stable, and to get our task/goal list under control.

The cocksucker owner comes to me and says "I want these 4 project you quoted that would take 6 months done in the next 3 months". So I quit (so did their lead developer that was doing 90% of the heavy lifting).

IT Management is a mess everywhere I've ever been, just to varying degrees. Maybe this is because most my career has been as a consultant or contractor, but it's really discouraging.

I just wanted to share that I also had success setting a regular timer woth a short period: 3 minutes. If I do not notice the timer (it's just a small sound), then I am focused on my work. If I do hear i, then I realize that I am distracted and give myself 3 to 6 minutes (1 to two timers) of meditation or distraction, depending on what I feel I need at that moment.
We found start of the day to be really great and easier to schedule.
Reading the comments here I find it interesting how management totally ignores feedback from developers. A lot of devs think open offices and endless meetings are a drain on productivity. So you would think the reasonable response would be to address these issues to get as much productivity out of these often highly paid people but instead the top guys often do exactly the opposite. It's a very curious dynamic.
This is a constant trope, and every time it's wheeled out a bunch of developers say they would love more uninterrupted time and their own offices vs open spaces. Both of these ignore the obvious - you don't optimise on productivity locally you need to optimise on output of the system as a whole. Productivity of the system as a whole is significantly improved by communication. Devs in offices may burn through a ton of tickets very productively achieving failure by building the wrong thing.

Secondly, people who have never been managers often don't understand the externalities. As a manager, I've been asked "Why should the devs get so much better computers/bigger screens etc than us?" Different conditions can create an intense feeling of unfairness among people who don't get those conditions. Those types of things can wreck the culture at a company.

Finally, open space is much much more flexible, so easier to change up when you need people to sprint together on a thing, when you need to scale up your team etc. Offices are extremely inflexible and typically anchorpoints for people's perception of their own status. Therefore once someone has an office, it's practically impossible to get them to not have one any more, even if circumstances have significantly changed.

It's easy to blame management but it may well be that management have a totally different set of problems to consider than you.

It seems like ultimately, most senior managers don't care about feedback from developers.

They will ignore and steamroll any opinion that does not fit whatever arbitrary metric they need to meet, and when your dire predictions come true they will act like there was no possible way to expect them.

It's worse to have focused productive time on the wrong thing than it is to have meetings that clarify requirements and goals.

I've watched a lot of very highly paid people dive into deeply technical and interesting problems that nobody needed a solution to, and fight to protect their time so they could finish. That wastes more time and money than meetings.

At a recent interview I could have swore I heard someone stifle a laugh when I asked when the last time they had an uninterrupted 4 hour stretch.
I've had success with an intermediate to a huge open office vs a private office which we called a lab, but might also be called a team room. We had about 6 people in there, all working on the same project, and it wasn't a constant distraction. We did a fair amount of pair programming as well, where a domain expert would sit with me as the computer scientist, and it was a very low bar to engaging in that sort of thing to slide around the corner. Of course we all had our own two person shared offices as well, but our main workstations were in the lab so most time was spent in there.
I agree that managers should very mindful of filling their teams' calendars with meetings. But there's not much a manager can do about open offices. They didn't design the building or the floorplan, and they can't change it now. Those decisions are made way above the typical managers' pay grade.
At my place, the people who book the meetings are the ones who are coordinating work done by others, so they need meetings to be productive. We have a product owner that is constantly justifying her existence by talking very much about things that have zero relevance to what we are doing at the moment.
I've tried to keep this top of mind for my team. It hasn't been perfect, but:

(every 2nd) Mondays - Planning

Tuesdays - some meetings for followups, sparingly

Wednesdays - NO MEETINGS ALLOWED (screaming intentional)

Thursdays - some meetings for followups, sparingly

Friday - NO MEETINGS ALLOWED (screaming intentional)

Works fairly well. There's a major increase in the amount of work done on W and F. However, going to three days without meetings didn't really help, as the problems we are working on do require lots of whiteboarding and brainstorming sessions between engineers.

I've found if the teams have mostly senior engineers there is very little need for meetings. In my current situation we just have one meetings per week to discuss status and priorities. Everything else is slack chats and adhoc meetings among individuals as needed. Mostly everyone is in sync on what is the right thing to do or if not, hash it out in a quick discussion.
I wrote an app called MakerSession [1] which was inspired by this essay. MakerSession automatically blocks out time on your (google or microsoft) calendar based on when your day starts/ends and how much time you need to get stuff done...

[1]-https://makersession.com

I've run a small distributed team for years, and I've mostly resolved the manager vs maker challenge through a combination of:

-desynced collaboration tools

-avoiding interruption based tools as much as possible

-short & focused bi-weekly meetings at the front or back end of the day

It allows the majority of the day for a maker schedule, while allowing for just enough manager time. Also with desynced tools (ex: outstanding support/bug/etc issues in Trello), as long as everyone is checking in at regular internals (say 2x a day) -- things can move through fairly quickly without constant interruptions.

For the manager side I use a mix of:

-Calendar/Contacts

-Evernote

-Workflowy

-Trello

-Slack (at scheduled times, leaving it on all day is horrible idea)

For the maker side:

-Workflowy

-Trello

-Pathjet.com (A small tool that I designed for myself which mixes GTD + Kanban + Pomodoro)

-Prior to my own tool, I used a Pomodoro timer + Workflowy on my machine

-Sometimes I think it's great to get off my machine, and just use a pen+legal pad to do planning/sketching/brainstorming

I have been parts of projects which failed just because the manager refused to accept that developers' need uninterrupted time to start and warm-up to achieve full speed in their daily routines.

Add micromanagement into this mix, and the environment quickly approaches to real-life-dilbert.

Addenda: Obligatory dilbert: http://dilbert.com/strip/2018-04-21

The problem I have now is; How can I get the manager to read, understand, and respect Maker Schedule?

Should I send them this link and then try to explain to them who Paul Graham is and why they should care about him? Should I send them the wikipedia article about Flow[1]? Should I show them the clip from The Social Network about "being in the zone"?

[1] https://en.wikipedia.org/wiki/Flow_(psychology)

Maybe you should treat both schedules as equally valuable, while acknowledging the different purposes they serve, and respectfully discuss the problem with your manager to collaborate on a solution together. It could be as simple as "Please don't schedule meeting mid-day." When I was a 50% manager / 50% dev, I blocked off 10-2 forever on my calendar for my coding. Whatever you end up with, talk, don't send links -- sending links to articles comes off about as well as sending your fellow devs to LMGTFY.
Yes, all these things do help and you can also speak their language - they understand having multiple "back to back" meetings, so you if you schedule meetings with yourself, that you can't miss, and open up your schedule for other times, then you can allow them to book you then.
Working in the eastern time zone for clients on the west coast has allowed me to find some ways to solve this problem.

The time difference is about a "half day", the one PG is describing here.

So if I schedule all of my meetings in the afternoon pacific time, I can get a full day of work done before calling into teleconferences.

So I wonder if some kind of staggered scheduling, like PG described in the essay, is the answer to this problem.

I have been keeping one day a week for the manager's schedule- style calls and appointments.

The rest of the week is divided in to half-day blocks which from my own experience is the minimum useful time to switch context and complete or work on some task.

I'd never read this before but it sums up problems I've had in teams previously with scheduling and especially short-notice "quick" meetings that wreck an afternoon.

It also means there's sacred time in my calendar for unbillable stuff, which gives peace of mind rather than thinking "but I could be doing..."

We started Clockwise to address this problem, and this PG article was a major point of inspiration. (Looking through the comments, that seems to be a trend!)

We just launched a private beta of Clockwise for Chrome, which helps automatically put more maker time on your team's calendar. It's free and we'd love everyone's thoughts. Feel free to send me an email if you'd like to hop the line: matt@getclockwise.com

https://www.getclockwise.com/product

> Clockwise for Chrome, powered by AI,

Can you share where AI fits in the product?

It's not that I'm skeptical of every time a product vaguely alludes to AI in their copy, but... well... I can't think of a way to end that sentence.

My feeling is it tries to fix people problem with tech. If you have reasonable manager who would respect people time instead of bomb dropping, you don't need the tool. If you have micromanager, you won't get to him with the tool.
This is cool!

Too bad my team is trapped in the Outlook world..

My mitigation strategy is I book calendar time for entire days to work on stuff. "Want to get coffee on X or Y date?" "Sorry, I'm totally booked those dates -- how about Z date/time?"

It makes me seem unavailable/scarce, and allows me to book things on my "manager days". The key is using the calendar to your advantage .. control your own time.

I've had to juggle the two schedules he describes for about a decade now. I haven't been wildly successful, but there are some tactics that seem to make it work okay.

- Write code in smaller chunks. This has been a huge change in how I do software. Almost all my code now starts out as an outline in a series of comments: "// do this", "// then do that". I write software "outside-in" now; if I need to slurp a file in one format into a database in another format, I start with the bits that read the file, then add the code that translates/interprets/processes the data in the file, then separately add code that talks to the database, then glue it together. At each step I dump output to the screen. So, I start with a stupidly simple file-dumping program and iterate it until it does the whole job.

- Write less code. Find a framework that you get along with, and stick with it. This takes away all the joy of learning new things, but you can still get work done. Develop and nurture your personal code library like you're tending to a garden; your personal code library should be highly modular, and as simple as possible, so that you can use pieces of it as often as possible in your projects, so that it's constantly being improved. Reuse as much as you can from each project.

- Do your thinking on the toilet. Or in the shower. Challenging programming often has two separate aspects, the part where you try to understand the problem you want to solve, and the part where you write code to solve it. You don't need to be in front of a computer to do the first part. Likewise, when you're in front of the computer, try not to do the second part -- just sit down and bang out code under those outline comments for as long as your schedule allows.

- Keep a notepad nearby. I carry a Remarkable everywhere now. I can sit in a meeting and write things on it and it's a lot less rude than typing on a laptop or my smartphone. People probably figure I'm just taking notes in the meeting, but I can be flowcharting or braining out the next piece of code. A paper notebook works fine for this too.

- Aggressively guard what's left of your productivity. My cell phone sits behind me or out of sight; my email tab is closed or on another virtual desktop; headphones are in. Any problems that I regularly encounter in my development environment get time set aside to permanently solve them in a way that's convenient for me. If I find that I need to be able to rapidly switch between different versions of some software, I work and work on my tooling until it's just a short commandline statement to do it. As a recent example, managing unique random passwords for everything was starting to cause a little bit of friction; a few dozen times a day, I had to switch to KeePass, scroll down to or search for the appropriate password, copy it, switch windows, paste. The other day, I wrote "pcp", for "password copy", which takes the title of a password for an argument, opens my KeePass file, locates the password, and copies it to the clipboard. I only touch the KeePass UI now to update the file.

- And finally, say no sometimes, or push back a little bit on your boundaries. If you can, find a place to work where you're most productive, whether it's a different office in the same building (so that co-workers aren't popping their heads into your workspace), or from home, or a coffee shop. Make yourself unavailable once in a while so you can get caught up. Take time away so that you're not also fighting off the inevitable fatigue from doing lots of context switching all day long. Avoid getting talked into meetings that are optional where you aren't likely to have much influence.

Unrelated to managers, this is why I have trouble doing work when I'm home from university: "Could you fold the laundry now...?"
This! That’s why I have an office that isn’t at home. (I’m a consultant/contractor.)
Oldie but a goodie. Play it again, Paul.
The problem with working at the large company is that every manager will see open calendar as an invitation to put in some meetings.

For this reason I am booking in my calendar actual working time. Since I am based in Europe and work with people in both US and Asia, I do this smack in the middle of the day so that I can have meetings with APAC in the morning and with US at the end of my working day.

I frequently have managers asking me why my calendar is booked so much to which I respond, "why YOUR calendar is booked so much". This of course has to follow with suitable explanation which is more or less based on this essay which I read many years ago.

Maker Time is an alternative time keeping system I designed after being inspired by this essay.

http://willholloway.net/makertime.html

I cofounded a small agency. I really enjoy it. I spend a lot of time away from our team and this is no shot at the amazing team we built.

But the time where you're in the zone and able to produce/be creative is imperative to our growth/success.

I still have meetings but days where I don't I go on really long runs in the mornings (15 miles or so) and during that time get in a great state of mind. Then 3-4 hours of awesome productivity and the business seems to keep moving forward at a rapid pace.

Pro tip: Decline meetings, as many as possible.
Check out http://try-tempo.com/

A few friends and I built this to create more "maker time" for ourselves. It helps you group your calendar events together for the day so that you get longer stretches of time to be creative.

Would be honored if you gave it a try!

I read Dan Pink's book "When" recently, and made a conscious effort to schedule all of my meetings in what Pink calls admin time between 1 and 3 in the afternoon. It's a win-win - I can go to the meetings having just been to the gym, and my morning is freed up for making.
I've tried this at 2 companies, one was even my own startup. It seems like a natural separation but in my experience it alienates the makers from the business. Probably that's not an issue if you just work for the tech that is in use. YMMV but if not, it's not the best idea.
This is definitely a great model to strive for.

Whenever coworkers try to schedule unnecessary meetings w/ me I send this - https://shoulditbeameeting.com/#/

A context switch costs many IQ points and it takes at least an hour to get them back.
This is my number one reason for working at nights outside of normal working hours.
This was a major problem at my last company. There were days where meetings weren't an issue but the support channel we had to monitor was. Ugh
I regularly send this to people where ever I work. Never stops being relevant.