Hacker News new | past | comments | ask | show | jobs | submit login
Deep work. Essentialism in asynchronous culture (jorzel.github.io)
168 points by jorzel on Dec 20, 2022 | hide | past | favorite | 50 comments



Your level as an engineer should be based on how much deep work you can do without screwing the pooch. The best engineers can be left alone for months and be sure to return with something cogent. The most junior will be required to have daily design check ins and regular code reviews as they go from start to finish on a project whose problem space needs to be well understood and mapped out before any deep work begins.

It is very damaging to an organisation when someone who cannot create understandable solutions is given the deep work breathing space to go crazy. It is a difficult but important thing to find out about candidates / probationary employees sooner rather than later. It’s important to keep a stash of pre-baked project ideas on hand so that you can use them to assess newcomers to the team, especially if you only have three months to figure out if they are able to meet your expectations before being confirmed as a full time employee.


An engineer being left alone for months just sounds like a great way for a user to ask for one thing and get something completely different. I think most engineers would love to just be left alone for days or even hours at a time, and that sounds a lot more reasonable.


Depends on the work. If it's your typical web app implementing some business requirements, then there's no deep work required - it's just talking to the requirements source and converting that into code, as per the chosen web framework. On the other hand, if the work is technical (say, you're working on a new kernel scheduler or a new voxel engine), then being left alone for weeks or months is perfectly reasonable. For example (from what I've read), that's how kernel engineers at Microsoft are expected to work.


This dismissal of business requirements as not technical is very interesting.

Don't you ever get business requirements that touch hundreds of existing use cases? Or business requirements that sudenly require paying atention to concurrency in multiple parts of the code? Or business requirements that introduce processes that produce and process huge amounts of data?


Business requirements are absolutely crucial, but they are not in any way technical.

Conflating business and technical requirements just means the business requirements are not understood correctly.


I'll rephrase my point:

  This dismissal of business requirements as not generating technical problems big enough to require deep work is very interesting.


I think you need to look at the whole sentence:

> If it's your typical web app implementing some business requirements, then there's no deep work required - it's just talking to the requirements source and converting that into code, as per the chosen web framework.

The key phrase is typical web app. The sentence isn't saying that business requirements always generate shallow work. They're saying that working on a typical web app is almost entirely shallow work.


Yes, absolutely depends on the work. I guess the farther you are from the front end of the interaction with an end user, the less you have to worry about a mountain of edge cases.

I would caution against saying there is no deep work required in web app implementation, every case is different, every person has a different threshold for what they consider "deep work". I can be knitting and consider it deep work.


I think even the 'web app meeting business requirements' is equally deep work, and even more difficult than your kernel scheduler example since it involves working within often ill-defined business requirements.


He means alone for "code supervision". That means you communicate with clients and/or analysts for your specs, but don't get code review or anything else from a senior engineer. No advice on how to architect, when to refactor, etc.


But if you're working on something so complex that it needs 6 months of heads down time...and you're not getting any technical feedback or advice...is that not a huge red flag?


Grandparent said

> Your level as an engineer should be based on how much deep work you can do without screwing the pooch.

A really good engineer can do 6 months of head-down work without a disaster. A really good engineer does not need technical feedback or advice in that time, as long as the problem is clear enough in the beginning.

Here, try this as a though exercise: "Create a new distributed nosql database that uses WASM modules for non-interactive transactions." A really good engineer really, really, doesn't need "technical feedback" during the process to implement that.


My best code I have written ever was written like this. I got a very good introduction of the problem, the imagined solution(s) and how the problem is currently solved by different people and what they like/dislike. After that I proposed some rough direction, they said yes and of I went.

Arguably I sent some updates in between, but all was unsychronous. No meetings, no presentations. Just me doing the thing. How well you can focus on solving the actual problems when you are actually in charge of your time.


Yeah agree 100%.

Unless you’re implementing a standard, software engineering is 50% communication with peers/clients/users, if not more..


Daily "check ins" is way excessive. One status meeting a week is plenty.

If they're also should-you-be-fired-today interrogations, then it appears that the organizations real problem is toxicity.


I frequently find the people demanding daily check-ins at my workplace are the ones lacking direction, and can't 'deeply' engage with the work for that reason, usually because their managers also lack direction (poorly defined vision, poorly defined requirements, etc) I wish managers could realize that 'more collaboration' by way of frequent meetings doesn't equal more productivity for the people who are actually doing the work.


For someone inexperienced it's really not. They don't have the intuition to know when it's time to cut your losses and move on from a dead end, and they don't know when to ask someone else for input. A full week without supervision on an open ended problem is likely to get them extremely tangled up in a bad solution.


One status email per week is plenty. I have worked like that for years and been super productive.


> The best engineers can be left alone for months and be sure to return with something cogent.

As a customer, this would be absurd. If I don't get what I imagined I wanted (rather than what I said), I'd rather find out in time to ask you to steer the solution towards what I want, instead of you bankrupting me for a wrong solution.

Frequent feedback is the essence of Agile. It makes sure the development process addresses the business needs with lowest latency and lowest gap in understanding.

https://agilemanifesto.org/principles.html


Sometimes you find a problem or a region for improvement that can be clearly defined and self contained, then given to an engineer or small team to work on until it's done. Some areas have more of these potential problems than others; in robotics adjacent companies they are more frequent than finance (in my experience).

Not everything is best managed by agile.


> in robotics adjacent companies they are more frequent than finance (in my experience).

I’m laughing a bit because I’ve been reading through this thread thinking about what I’ve been working on for the last few months. Robotics-adjacent, lots of calculus, differential equations, linear algebra, ray tracing, optics, yadda yadda.

I’ve worked on more businessey problems a ton in the past. I built a company that made bespoke LOB applications. This work is way different. Agile was great for that. I would absolutely love to be left alone for a few weeks to just finish getting through all of this analysis. Going a couple of weeks in LOB-app land without feedback would be a train wreck the vast majority of the time.


IMO if you are working on a problem that needs stakeholder feedback then it is not the sort of deep problem the OP is talking about. Deep work is usually not Agile in nature. It is about diving into a hard problem, not iterating on standard features/bugs.


I agree with the main point here, but one thing that has always puzzled me is how to think about what might be called deep collaborative work. Most meetings, especially the status-y kind, are manifestly not "deep" but some of the most intense work that I have ever done has been with one or a small handful of collaborators.


I think that collaborative work can be deep, e.g. pair programming. However, the more people, the harder to be focused on presise topic / goal.


I personally have never found collaborative work all that deep. At least not the kind that necessitates constant communications. The interruptions are simply too much for me. I can never achieve the flow state I like. It also makes me try and come up with solutions during the communications. Most of the time I have to step away and do something else with difficult problems - let the background processor work. That is just likely my style - not for everybody.


I wonder if this relates to how comfortable people are with silence? Sometimes one or the other person can feel anxious in the presence of silence because it does not fit the profile of "work being done".


People often dismiss pure thought as effort. But when you think about it that is all programming really is. I worked with a person that started his programming career using cards. Even though his current job provided him a nice editor and build system he would write his program and simply execute in his head for the longest time before even attempting to compile it. He would then make a couple of changes and he was done.


Interesting read in you can get past the paywall.

https://www.nytimes.com/2022/12/11/opinion/what-twitter-can-...


Exactly. The key is focus which is not the same thing as organization or just "having one conversation."


Collaboration is definitely deep work. I think the key is whether the meeting is focused on the work or accessory to it. Keeping a manager updated is annoying because its not real work, its just someone checking up on you.


a common trap in "deep work only" teams is local optimisation. while interruptions should be minimized and batched, the overall flow of cards and a low average cycle time requires focused collaboration and regular slack time to resolve blockers. Otherwise, important issues spend more time waiting than getting completed. Individual deep work with low collaboration while more important work is piling up would be an antipattern.


I’ve experienced this first hand. When all your colleagues only deep work and you’re tasked with some necessary grunt work, your productivity will plummet when you’re trying to move fast.


>This approach is based on pushing information rather than pulling it

This is really what's at the heart of almost every discussion regarding communication. Many if not most places introduce polling rituals as a one-size-fits-all solution, whereas many people work best pushing information and having everyone else react to it. It is no different than event-driven structure vs polling.

Every time you create more 'polling' systems and push some claim (the infamous 'new employees won't speak up without standups' comes to mind), there is less pressure to teach them asynchronous ways of working. Every time some manual procedure is pushed as a fix, the alternative of an automatic procedure is pushed aside because 'costs too much money' and 'look, manual works, communication!'.


Well the manual solution may be good enough! It always depends on the situation.


I really like this concise consolidation of these ideas. In my opinion, both Deep Work and Essentialism — like so many books in that genre — could've been pamphlets. It Doesn't Have to be Crazy at Work was pretty jam-packed with different ideas, though.


> Monastic and bimodal modes are rather reserved for professions that can manage work without intensive communication with people, like writers, scientists, researchers, etc.

Many or most scientists are academics. Communication time dominates the job of a professor. Teaching, and the invisible job of running a university takes between 1/3 and 2/3 of a 40 hour week. Both of these are based around strict schedules, so the actual schedule in a non-sabbatical, non-buyout semester ends up journalistic or approaching rhythmic at best.

Thus the deep work slots are very precious. I did most of mine after dinner, or after kids' bed time. A professor I respect, well known for his reliable productivity, did a couple of hours of email at 2am for >20 years to create time in the work day for the real work.

Professor is a wonderful job, but making time to be a productive scientist is a constant struggle. This is why graduate students feel the science is delegated to them.


Doesn't sound wonderful to me. As a researcher, I want to do research, not administration.


It also sucks for the students. Nearly all my professors were at the uni to do their prestigious research, not to teach —- and it sure showed in class quality.


As a low-level employee, my noise-cancelling headset helps me way more when it comes to concentration than any how-to book on “deep work” could.


For a rhythmic workday, you can try using Pomodoro with other people at the same time like here: https://remoteyo.com/


The article is right: Deep work hates interruptions (including everything synchronous)

However, the kind of rigid scheduling it proposes goes against the freedom deep work loves. It is not the lazy/mindless kind of freedom I’m referring to, but the freedom from over-quantified environments : IMO it is counterproductive to aim at always rigidly controlling that "in the zone" experience.


For me it isn't about maintaining my own schedule it is about managing the expectations of others, be they managers or colleagues. I have "office hours" on my calendar where people can book in with me and then the last couple of hours of my day people know I'm interruptible. Outside of those hours I don't check email, don't have any chat open and my phone goes straight to voicemail with a message to call me again if it is an emergency, which will make it ring. I start work very early (05:30-06:00) and am most productive in the mornings, so my office hours and interruptible time is when I'm starting to wind down and my capacity for deep work is reducing.


Lot of people doing deep work do it on a schedule - and a very hard one at that. It’s based on the creation of habit, instead of relying on luck to be in the zone. The most important thing after all is to show up!


> Lot of people doing deep work do it on a schedule - and a very hard one at that

Indeed, and I was not talking about zero/low-schedule, but the minimum necessary. That is, no micro-self-management beyond that.

> based on the creation of habit, instead of relying on luck to be in the zone

I also agree. That is why I said not the lazy freedom. Habit is important, but a habit-mindset is not always the most creative/productive. Also, habit has that automaticity that can prevent the kind of useful essentialism mentionned in the article.

So, it is a balancing act. schedule/habit are only half the story.


What works for me is a rhythmic schedule but that concentrates all shallow things in the morning and deep work in the afternoon. I'm also more productive in the afternoon evening, so depending on your inclinations the opposite may work, deep work in the morning and shallow the rest of the day. The challenge is scheduling calls in the morning only.


Same in essence but I prefer the opposite: all deep work done between 08:00 and 13:00 then whatever.


I agree that scheduling regular time to focus is important. I try to start early and do most of my work in the morning when many people are not active. That helps avoid meetings and interruptions.


where I work it's the oppostie, the morning is usually more active. Also I'm a night owl


All people in a company need to do deep work to make it count.

Because if you are able to concentrate and find a solution for a problem, you also need other people to concentrate and understand your solution.


Deep Work is not a concept that was popularized by that guy. If he popularized anything it was a new name for an existing concept.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: