8 ms·
If I know I am going to have my day broken into sub 1hr chunks thanks to meetings and such, I pretty much write off the day entirely. It takes time to get into
by asdff 4y ago
If I know I am going to have my day broken into sub 1hr chunks thanks to meetings and such, I pretty much write off the day entirely. It takes time to get into the flow state, some studies cite over 20 minutes, and once you are in it you want to stay in it for like four hours. No emails to follow up with, no slack, no zooms, no one tapping your shoulder, no conversations about the weekend distracting you on the periphery, just you and your task at hand.
It's pretty ironic, because this is how a lot of people study in the library at college,show up and stay all night grinding in the flow state with your phone shut off. Yet when you graduate to the work place, you seldom have the opportunity to work like how you've been training to work for all your advanced schooling ever again.
With respect to the article and maintaining context while coding for different projects, I find having a tmux session for each individual project super helpful.
- MH15 4y agoHaving tmux sessions for each open task is a life-saver, especially in an environment where I do all my work on a remote server. Now I can close the laptop lid and never lose work. Simply reopen the ssh connection and keep going.
- asdff 4y agoIts especially helpful for stuff where I haven't touched it in a while too. One alias and boom, I'm back in a session with a pane with my editor open, a pane with the log, a pane with some notes, and a pane with the shell displaying the last line of code I ran from when I was last working on this pet project over six months ago. Right where I left everything and I can jump back in as if I was working on it an hour ago.
- darkteflon 4y agoI have a separate VS Code window connected to a dev container for each project that stays open for days, weeks or months at a time. Does the tmux approach materially improve upon that setup? Genuinely curious if I’m missing out on something here.
- thepostman0 4y agoMaybe, you can SSH to GNU Screen and attach where you were, perhaps from your phone to just read. You could do the same with rdesktop to something x11, but you'd need more than a 256MB VM for that. If you have this running 24x365 then you'd spend more energy/money.
- throwbadubadu 4y agoTo all above: but machines reboot, also, not? Even our coorp Linuxes now succumb to ugly IT update reboot cycles, Cloud VMs even more ephemeral, and lets not even start with dev containers... One can script tmux sessions to some degree, but still loosing a lot of state (editor open ther, shell history here..).
- asdff 4y agoI hardly reboot a machine unless I am intending to, but there are plugins for tmux for this too. https://github.com/tmux-plugins/tmux-resurrect https://github.com/tmux-plugins/tmux-resurrect https://github.com/tmux-plugins/tmux-continuum https://github.com/tmux-plugins/tmux-continuum
- t-3 4y agoRebooting my dev boxes for security updates or kernel upgrades once every few months/year isn't a big deal, and I generally know when it's going down. The laptop is an ssh terminal/browser/doc reader only!
- visarga 4y agoMe too, that's why I don't care how old it is anymore.
- asdff 4y agoYou can end up pretty deep down the rabbit hole with tmux and configuring it in different ways. One thing you can do that you might not be able to do with your vscode set up is have a script, written in tmux commands, that generates a complicated windowing environment. I am not familiar with the capabilities of your setup though, since I don't use vscode. I would guess tmux is more comfortable than vscode for using it with just the keyboard too. There's a ton written on tmux as you can imagine by this point. This page seems pretty comprehensive on the advanced features including tmux scripting: https://github.com/tmux/tmux/wiki/Advanced-Use https://github.com/tmux/tmux/wiki/Advanced-Use
- totetsu 4y agoWhat was that stateless ssh alternative? Using that you don’t even have to reopen the connection, it just works again right away.
- mangamadaiyan 4y agomosh?
- simongray 4y agoEternal Terminal works better.
- dboreham 4y agoSame, but Windows desktops. Email and Slack only on the left most desktop.
- LinXitoW 4y agoDo you exclusively work on remote servers? I love tmux, but I have the issue that I also use it locally, and to my knowledge, you can't have local and remote sessions in one tmux daemon. So I either have to open tmux in tmux, or open it in a separate terminal window. You mentioned your editor on the remote server. Does everyone have their own account with their own settings on all remote servers? We're still at a point where everyone accesses servers via the one shared "root-ish" user.
- jjwhitney 4y ago(Random tmux user commenting here...) I always run tmux locally. If you want to connect from a different computer, just ssh in and then "tmux attach".
- MH15 4y agoMy workflow is SSH in and run tmux on the remote server. I don't do any work directly on my laptop.
- asdff 4y agoEveryone has their own account with their own home folder containing their dotfiles. There are shared project and scratch drives. I do all my work on this server, nothing is done locally other than ssh into the server. For what you are describing the best practice is a nested tmux session with tmux running locally and on the remote server. So you would open tmux locally, then in one of the windows or panes you ssh into your machine, then open tmux on that machine. This will require you to press the tmux prefix (ctrl+b or however you've set it) twice to do the commands on the remote tmux instance. However you can get around this with some configuration (1). 1. https://www.freecodecamp.org/news/tmux-in-practice-local-and-nested-remote-tmux-sessions-4f7ba5db8795/ https://www.freecodecamp.org/news/tmux-in-practice-local-and... I think certain certain terminal emulaters like iterm2 have tmux specific features that could also be helpful, but I don't use that software so I am not as familiar.
- robotresearcher 4y ago> you seldom have the opportunity to work like how you've been training to work for all your advanced schooling ever again. Sure you do. The college day is broken up into many unrelated scheduled meetings, with high switching cost. Then you do the deep work after hours. My post-graduation life is not so different. Maybe it suits my brain, but it's been OK. I like the work.
- nicoburns 4y agoHow viable this is probably depends on what you study, but I skipped most of the scheduled meetings (lectures) during college. At the most prestigious of the 3 universities I've attended (which seemed to have more respect for their students than the other 2) this was actually encouraged if you felt you had better ways to make use of your time.
- robotresearcher 4y agoSkipping doesn't work if you are the professor ;)
- lumost 4y agoI have the unfortunate privilege to work at a firm where the senior engineering leaders believe context switching is a requirement. They judge people on whether they can do it. I find that this leads everyone to constantly do multiple concurrent tasks. After a long day I often have a headache from having to concentrate on both my coding task, an operations task, a meeting, and a new request at the same time. Ultimately, as you would expect - productivity is awful. They then have lengthy discussions on how to improve productivity by every mechanism other than what’s known to work (faster builds, faster tests, increased focus time)
- mangamadaiyan 4y agoHeh. The same at my workplace, except that build times suck, tests take a long time to run (and are not dependable), and you're expected to be on an electronic leash -- namely, one of the worst possible instant messengers.
- steve1977 4y agoYou can say MS Teams here, it’s ok…
- JPws_Prntr_Fngr 4y agoI would rank Slack above Teams in nefariousness, because it's a better tool, so people like it more, use the shit out of it, and inundate you with so much more noise.
- mangamadaiyan 4y agoTouché :)
- PragmaticPulp 4y agoI also do much better with long chunks of time, but it should be possible to make meaningful progress on most programming tasks in a true 1-hour block. It’s common for people to use the Pomodoro technique to great success with blocks of work half that size. Often, the real problem is that people don’t actually have 1 hour of working time in between meetings. We sit at our desks and feel obligated to respond to e-mails and Slack messages. Our Slack responses turn into conversations that consume 5-20 minutes without a clear end. We need to spend 5-10 minutes reading backlog to catch up. We need to get a drink or use the restroom. That 1-hour chunk of free time on your calendar may only have 10-15 minutes of concentration time, which is the real problem. I’ve had some success with blocking off calendar time to mark 1-2 hours of focus time. Having something on your calendar makes delayed responses in Slack socially acceptable.
- teki_one 4y ago> I also do much better with long chunks of time, but it should be possible to make meaningful progress on most programming tasks in a true 1-hour block. It’s common for people to use the Pomodoro technique to great success with blocks of work half that size. Pomodoro does not need context switching. Breaks without loading up a different context gives the brain time to bring back the body into a less tense state, so the next cycle can be more energetic/productive than a continuous one. In many cases it lets some ideas run their courses and save time by solving conflicting thought forces.
- saghm 4y ago> It's pretty ironic, because this is how a lot of people study in the library at college,show up and stay all night grinding in the flow state with your phone shut off. Yet when you graduate to the work place, you seldom have the opportunity to work like how you've been training to work for all your advanced schooling ever again. To be fair, I think staying up all night trying to be productive instead of getting a good night's sleep also makes it hard for most people during the day. As someone who consistently got 6-8 hours of sleep every night in college before a day with classes, I've always been mildly horrified by the fact that "staying up all night studying" is somehow considered a good thing.
- earthling8118 4y agoI think you're still missing the point. It isn't that you need to stay up all night, but rather the flow state. In college you typically have classes during the day so you aren't going to get it then. That doesn't make it a great thing but it also isn't exactly relevant to this conversation.
- saghm 4y agoI understand the point they're making, but I'm not sure you understand mine though. If someone talking about weight loss suggested that people should just never eat breakfast to reduce the amount of eating they do in a given day, it would be relevant to offer a critique this may end up being counterproductive overall to the goal due to it just pushing the issue into another part of the day; this is basically the same thing.
- philipswood 4y agoI'm not criticizing your logical point, but your choice of example might be unfortunate. Intermittent fasting seems to be a very effective strategy (for reasons unrelated to your point).
- saghm 4y agoIt's possible that my example might not be up to date. In the past I've been given advice that trying to just skip eating an entire meal at a time when one normally would makes someone less likely to be able to follow through with being as strict later in the day. Assuming that this isn't an outdated misconception, I think the comparison still somewhat holds. Studying all night and not sleeping is totally fine if you're able to function fine without sleep, but it's counterproductive if you're not. In the same way, "just eat less" works as long as you're able to follow it, but for some people, trying to follow that strategy without any other caveats might not be particularly effective.
- wpietri 4y ago> no slack, no zooms, no one tapping your shoulder, no conversations about the weekend distracting you on the periphery My teen jobs were in stores, restaurants, and manufacturing. In those contexts, everybody understands that when you're working, you're actually working. Even managers understand that even small discussions need to be fit neatly into the flow of the work, and actual meetings require careful planning to not disrupt operations. The space too was carefully designed to maximize effectiveness. So American office culture seems absolutely wild to me. Especially in software, where we are expected to fit our actual work into a sort of calendar Tetris. Oh, a grand poobah would like another status meeting, plus a lot of time spent coming up with estimates that are not going to change anybody's behavior in the slightest? Gosh, do you think that might have an effect on the completion date? And sure, why don't you put me next to the salespeople making calls all day. I'm not making any progress anyhow. The only conclusion I can come to is that in a lot of places, productivity is much lower on the list of observed priorities than stated priorities.
- TheDudeMan 4y ago> And sure, why don't you put me next to the salespeople making calls all day. Dude, how about a trigger warning next time?
- brailsafe 4y agoYa for real this made me go blind for a few seconds
- babyshake 4y ago> And sure, why don't you put me next to the salespeople making calls all day. Or better yet, put me next to the salespeople that instead of making calls all day are just goofing off.
- ashton314 4y ago> And sure, why don't you put me next to the salespeople making calls all day. I’ve worked next to people with zero volume control and who like to take calls on speakerphone. I decided there and then that cubicles has material benefits over open offices.
- thatoneguytoo 4y agoThis is exactly the way trydeepwork.com works. You should give it a shot :)
- Operyl 4y agoSince you built it, could we get accomplishments and analytics stored completely in localstorage so we don't need to register/login? :)
- heywhatupboys 4y agoif it takes you that long to get back into your code base, maybe your codebase is way too confusing. 2
- Cthulhu_ 4y ago> I pretty much write off the day entirely. I think this is the mindset that a lot of people have, but always keep in mind, the meetings is part of your job, and writing code is also only one aspect of your job. What I'm trying to say is that don't let the meetings frustrate you, instead just accept them and the distractions. Few people get to do what they really want to do all the time, and it does often seem that software developers show some prima donna behaviour in that they just want to stay in their flow and the other aspects of their job should be dismissed. I mean I get it, writing code / flow state is enjoyable and makes you feel productive, but you get paid for the full package.
- fryry 4y agoThis would be a valid way of thinking about it, but programmers aren't generally judged on their meeting attendance but rather their code output. More meetings == less code == worse perceived performance == fewer opportunities for pay increases and promotions
- lr1970 4y ago> This would be a valid way of thinking about it, but programmers aren't generally judged on their meeting attendance but rather their code output. Not universally. Programmers are judged by overall success or failure of the project they are working on. And those ones who can take credit for a success or who can effectively deflect blame for failure are the ones who got promoted. Being in the meetings with the decision makers provides the forum for self-promotion and controlling the message. This does not always mean that they did most of the work. More code or less code is unfortunately secondary.
- oriolid 4y agoDid someone ask for this story? https://www.folklore.org/StoryView.py?story=Negative_2000_Lines_Of_Code.txt https://www.folklore.org/StoryView.py?story=Negative_2000_Li...
- danwee 4y ago> More meetings == less code == worse perceived performance == fewer opportunities for pay increases and promotions That's a rather junior mentality. When one is junior, yeah, usually the most one can do is moving Jira tickets to Done (which means merging code usually). But when one is senior, the pay increases and promotions come from other activities: mentoring, handling technical topics between teams (usually via meetings), etc.
- maccard 4y agoIm a manager now, and I've accepted these days as a reality. I block book time on my calendar in 2 hour chunks (4 pomodoros) so that week on week I'm consistent. Ive got some tasks that I can fit in those in between slots. As an IC I would do them at the start/end of the day, but now I do them during those blocks of time. For me, it's things like smaller code reviews, reviewing design docs or triaging issues.
- robbintt 4y agoI collected all my meetings into "meeting thursday". A dump day - typically from 9-2, sometimes 9-5. Sometimes I cancel or reschedule everything if another "dump cluster" forms.
- darthrupert 4y agoFor me it's much worse. If most of my days are reacting to outside signals, it takes me at least a week to get back to the mode where I rely on my own motivation. I've been in jobs where that happens only for a few weeks in a year, after major vacations.