Remix.run Logo
Waterluvian 5 days ago

Some days an interruption will throw me off my train of thought, and I spend the remaining six hours collecting discarded bottles and railway ties for hopeful use somewhere, somehow, sometime.

Other days an interruption costs me pretty much nothing.

I’m still trying to figure out how to tell which of those days I’m going to have and whether to just not log into Slack for the day.

karmakaze 5 days ago | parent | next [-]

I've found one thing that minimizes interruption cost: pair programming. At one startup we pair programmed all day, every day. Resuming from an interruption was almost seamless. Can't explain it, only experienced it.

SoftTalker 4 days ago | parent | next [-]

If only I wouldn’t prefer stabbing myself in the leg with a rusty knife over pair programming.

jiggawatts 4 days ago | parent | next [-]

When pair programming was a fad in the early 2000s, I tried it with a coworker for a security-critical piece of code that needed two pairs of eyes on it.

It felt horrendously unproductive to have two people at one keyboard but we compared commit rates and the surprising result was that we produced the same rate of changes as working separately.

pydry 4 days ago | parent | next [-]

I find it is slightly slower (maybe 20%) than two individuals alone but the quality is quite a bit higher and the effect of this higher quality compounds over time (i.e. less tech debt -> fewer bugs, faster development on future code).

Im quite credulous of Kent Beck's claim that when categorizing the last ~15 bugs on a project with pairs and singles he found that all 15 were in code merged by an individual rather than a pair.

If it were an application you could just install I think everybody would use it. It demands psychological safety though, which most teams dont have, and is becoming less common these days.

tgaj 4 days ago | parent [-]

It's funny because it starts to be (an application you could just install) - AI agents could work as pair programming buddies.

kaffekaka 4 days ago | parent | prev [-]

Does this mean you as a pair were as productive as both of you individuals combined? Or that the pair was as productive as one individual?

Pair programming is twice as expensive so it needs to be twice a productive (quality, LOC, whatever) to make sense I guess.

jiggawatts 4 days ago | parent [-]

Two of us at one keyboard were as productive as the two of us separately combined.

I figured this was because typically while one person was coding the other would be researching. If you’re by yourself those are serial activities instead of parallel and the total workload is the same.

dylan604 4 days ago | parent | prev | next [-]

I've never done official pair programming, but I get frustrated when I'm not on the keyboard as I find others think slower.

karmakaze 4 days ago | parent | next [-]

I usually prefer to be navigator than driver. It's the navigator that does the high level thinking. The one at the keyboard is the one who's usually better at typing and writing out the design patterns that are agreed upon. Of course we did swap roles routinely, maybe several times a day. Oh and to top it off we switched pairing partners every week or two. It was a brutal experiment but I learned a lot and I'd say it was a great success.

kmoser 4 days ago | parent | prev | next [-]

Have you tried plugging in a second keyboard and taking over where necessary? I do a lot of remote work in which my colleague and I work on the same computer and it's quite useful for either of us to jump in with our own keyboard (and mouse). It does take a bit of occasional verbal negotiation to agree on who really knows what to do (and can do it fastest) but if you communicate well then it's pretty easy.

EagnaIonat 4 days ago | parent | next [-]

There is evidence that two people on the keyboard can increase productivity.

https://www.youtube.com/watch?v=kl6rsi7BEtk

rubslopes 4 days ago | parent [-]

Of course I knew which video it was before even clicking.

dcminter 4 days ago | parent [-]

I was rather expecting it to be this one: https://www.youtube.com/watch?v=NnJnejHhjtI

stevetron 4 days ago | parent | prev | next [-]

What about an editor that is designed for multiple people to edit the same document? Tie the second keyboard, the second mouse, and a second cursor as resources together and independently edit?

el_benhameen 4 days ago | parent [-]

I do this, but with a second monitor and second machine, and then we use git to synchronize our work

tstenner 3 days ago | parent [-]

With VS Code and IntelliJ you can even do it in the same documents at the same time

bn-l 4 days ago | parent | prev | next [-]

Damn I wish I had a relationship with someone like that.

karmakaze 4 days ago | parent | prev | next [-]

Right I only call using the same computer pair programming. Now working remote (with Tuple app) it's still two keyboards/mice on one computer (sometimes mine, sometimes theirs), though it's infrequent for specific tasks.

ustad 4 days ago | parent | prev | next [-]

Can you say more about your setup? Does it require extra hardware/software?

kmoser 4 days ago | parent [-]

We're just using TeamViewer. I connect remotely to my colleague's computer while they are sitting in front of their keyboard.

Waterluvian 4 days ago | parent | prev | next [-]

The wildest thing I experienced once was this experimental “two cursors, two highlights, two clipboards” setup. I badly wish that had caught on. It was like Google Docs but Local Multiplayer.

nine_k 4 days ago | parent | next [-]

One of my previous employers, Dynaboard, built approximately that.

The Show HN post: https://news.ycombinator.com/item?id=30261598

goosejuice 4 days ago | parent | prev | next [-]

Tuple.app does this. It's pricey but an excellent product.

konsalexee 4 days ago | parent | prev | next [-]

If you enjoy Tuple, we just silently open-sourced Hopp (one of the maintainers here), we are still in Beta era, but would love some feedback!

karmakaze 4 days ago | parent | prev [-]

I sometimes wish the separate clipboards could be turned off, or have a way of pasting from the other's clipboard.

godelski 4 days ago | parent | prev [-]

Just a reminder for everyone, you can do this with tmux. So you could even just sit next to each other (or not) and be on your own machines.

globular-toast 4 days ago | parent | prev | next [-]

I find the less dominant person just switches off, stops thinking and just becomes a keyboard with about 20x the latency and 10% the speed and accuracy.

saagarjha 4 days ago | parent | prev | next [-]

I find that working with people who are smarter than I am helps a lot with this.

karmakaze 3 days ago | parent [-]

It works both ways. Even for the 'smarter' person, they have to form their ideas clearly in order to communicate it to be understood. By themselves they could just start writing random classes that feel like they might be part of the solution and get themselves in corners more often.

glxxyz 4 days ago | parent | prev | next [-]

"no the other one, down a bit, no the one above, no go back..."

mrbombastic 4 days ago | parent | next [-]

Calling out explicit line numbers and zoom annotation tools help with this

airtonix 4 days ago | parent | prev [-]

up up up up ... you went too far....

Dilettante_ 4 days ago | parent [-]

This is why you need to learn vim commands /hj

exe34 4 days ago | parent | prev [-]

for me it's not that I think faster, it's just that I will check 10 things really fast and exclude the "no it can't be there" things - because that's usually where it is. So if somebody else is holding the mouse and keyboard, I would then have to convince them that these things that they are convinced are fine need checking.

I really hate this work of convincing them, because it's much faster to check it first and explain why it was a good idea later once I've fixed the problem.

atoav 4 days ago | parent | prev | next [-]

I one had quite good experiences with it, but the roles were very clear: he was the domain expert who knew how things should be handled and I was the person knowing the code and the processes. This way I didn't have to come up with potentially wrong handling of edge cases and he didn't have to mash his head against code he doesn't understand.

cosmic_cheese 4 days ago | parent | prev | next [-]

I think the only thing that might be more frustrating is if my modifier keys rotated at random intervals.

karmakaze 4 days ago | parent [-]

Funny you should mention it. I have different computers with different keyboard layouts--including for some reason[0] modifier keys on only the left side being different on one.

[0] That's the gaming PC I play StarCraft 2 on and I found it simpler to always leave it in one mode than switching back and forth.

CGamesPlay 4 days ago | parent | prev | next [-]

I suspect that this would also lead to interruptions having almost no effect on your productivity.

wiseowise 4 days ago | parent [-]

Because it would be in the gutter in the first place?

andrei_says_ 4 days ago | parent | prev | next [-]

I’ve done pair programming for a short amount of time and found it stimulating and productive.

What specifically makes it painful for you?

phil21 4 days ago | parent | next [-]

Depends on what exactly you mean by pair programming. Two people sharing the same keyboard and screen and watching the other type is horror movie level stuff to me. I go from a competent typist at 140wpm or so, remembering at least some basic syntax, knowing the most common editor shortcuts etc. to a blubbering idiot 5 year old.

Sharing an office where you can’t look at each others screen unless you walk over to help troubleshoot or design a specific feature is probably my favorite mode of work by far. Especially if it’s a small hyper-competent team with a diverse set of expertise but basic generalist knowledge to navigate the entire design at a high level.

Being able to jump on a whiteboard with zero latency mid-debugging session (even trying to move to a spare conference room) is also great.

This also lets you devise team communication in a way where you can signal you are in focus mode vs not and others can gauge the importance of their ask based on that signal and knowing precisely what everyone is actually working on that day.

That said, the absolute worst possible way to collaborate is video conferencing and shared screens. Give me a shoulder hoverer over that any day.

kelnos 4 days ago | parent | prev [-]

No the person you've replied to, but for me I just find it frustrating. When I'm not the one typing, I always find the other person moving slower than I can think, not entirely getting what I want to tell them ("no, line 47, not 53 -- no, the foobar function call isn't the problem, it's the 4th argument to barbaz... no no, no that one... GAH). Maybe we can chalk this up to "communication problems", and I should have taken a pause to talk about communication with my pair partner.

I dunno. I've just always felt much less productive with someone else there. I don't view programming as a social or collaborative activity. Building software can be collaborative, but when I'm sitting down to do implementation, collaboration slows me down, and I find it very frustrating and unproductive.

motbus3 4 days ago | parent | prev | next [-]

When I was on my 2x I wanted to do more programming. Now I just I want to me f let alone to finish my job

SJMG 4 days ago | parent | prev | next [-]

Just wait till you learn about "mobbing"… You can feel the money being lit on fire.

Our_Benefactors 4 days ago | parent | next [-]

This fad died out along with 0% money.

exe34 4 days ago | parent | prev [-]

it's like 9 women giving birth to a whole baby in just one month.

bapak 4 days ago | parent | prev [-]

I pair program every day, my colleague is called Claude. Like you, I'm allergic to meat co-programmers.

dakiol 4 days ago | parent | prev | next [-]

Pair programming exhausts me. When I write code alone, I usually have breaks every 20 minutes or so. I go for a short walk after 1h. I look out of the window every now and then. Sometimes I put some background music. When I’m doin pair programming I’m supposed to: think out loud, look at the screen 100% of the time, sit in front of the screen for at least 1h straight. Think at the same speed than my peer.

Not worth it for me. Don’t care if we together are more productive; I couldn’t care less. I care more about my eye sight, and sitting routine.

dalmo3 4 days ago | parent [-]

I can sit and program 16 hours straight without breaks.

I cannot talk to someone else for an hour without feeling exhausted and needing a long break afterwards.

Talking to someone else while programming? It's revving up my brain into the red zone. Sometimes the adrenaline boost does its job but I do pay the price.

jack_riminton 4 days ago | parent [-]

Same. It seems the coding part of my brain and the communicating are mutually exclusive

I wonder if it’s related to the phenomena of some people having a ‘narrator’ in their head or, like me, there’s no voice and it takes effort to convert abstract thoughts to sentences

exe34 4 days ago | parent [-]

no I have the voice but I can either explain or do, not both.

karmakaze 4 days ago | parent [-]

Maybe this is a misconception or misrepresentation of pair-programming, at least compared to my experience. One person isn't supposed to be doing both. You're either navigating/explaining or driving/doing. Pair programming isn't about one person doing everything and another person watching and trying to keep up. It's about communicating and sharing an understanding, like a realtime/interactive PR description/review while writing. Of course there are times where one person will simply say "let me write this out and discuss after" and go at it for a short while, but it should be the exception rather than the rule in settings where it worked best for me.

bluecheese452 4 days ago | parent [-]

This feels a bit no true scotsman.

karmakaze 3 days ago | parent | next [-]

Perhaps it is, but I'm not really going to entertain someone saying they tried it and it didn't work, when all they did was work their own screens/keyboards sitting side-by-side (or remote) each with their own ideas and not really sharing in the process, except to interrupt and annoy each other.

exe34 4 days ago | parent | prev [-]

no I actually get it, I think like most fads, it seems to work great for really trivial things or for debugging. I have myself used pair programming in those cases.

I just can't imagine using it for serious work. navigating/explaining? I know neither the science I'm trying to code nor the code I'm trying to write - I'll write code to explore the data, I'll have a hunch, I'll wonder about something and I'll go find that one paper I came across 10 years ago to check - I don't see what code the other would be writing while I'm trying to figure that stuff out.

I'm sure it works great for yet another CRUD.

3 days ago | parent | next [-]
[deleted]
karmakaze 3 days ago | parent | prev [-]

Totally agree. I wouldn't say it's well suited for research or research-heavy work. In those cases, I'll do research on my own and reconvene later or another day.

steve1977 4 days ago | parent | prev | next [-]

I guess pair programming would also minimize my interruption cost, but only because productivity would be close to zero to begin with.

mnky9800n 4 days ago | parent | prev | next [-]

I bet also interruptions were less likely since you seemed busy because you were interacting with each other. Therefore others may think before interruption.

jll29 4 days ago | parent | prev | next [-]

Might have to do with the social pressure to (mutually) focus on the peer that speeds up getting back on the original focus.

dapperdrake 4 days ago | parent | prev | next [-]

Same here.

mettamage 4 days ago | parent | prev | next [-]

How can you find a startup with a pair programming culture?

lazyasciiart 4 days ago | parent | next [-]

They’ll tell you.

karmakaze 4 days ago | parent [-]

So true. I interviewed at one where a half day was spent pair-programming with one of the team's devs doing TDD: write a test, make it green, refactor.

yablak 4 days ago | parent | prev [-]

Join a startup. If they don't do pair programming, quit.

wordpad 4 days ago | parent | prev [-]

Have you tried giving your AI productivity tool a personality so it can guilt trip you the same way?

karmakaze 4 days ago | parent [-]

That's an interesting idea, adding an AI so it could be you pair programming with a colleague remotely over Tuple, a truple. Seriously though it would take out the frustration and flow-breaking pauses while interacting with an LLM.

bubblebeard 5 days ago | parent | prev | next [-]

My feelings exactly. Whenever I get one of those days I’ve found I get more done away from my desk. Taking a walk in the forest or doing some household chores can really help you get back on track.

Of course at times it’s just better to admit altogether this isn’t a day meant for work and spend it relaxing instead. Usually, the benefit of that is a really productive day at work the day after too, everybody wins.

Waterluvian 5 days ago | parent | next [-]

Almost all my employers and managers have been very understanding about this. But one of my favourites was a manager earlier in my career who picked up that I was anxious about my work hours and ethic. To paraphrase, he said, “the company isn’t paying you to solve problems M-F 9-5. It’s paying you for when you solve them in the shower or on a walk or when you’re putting your kid to bed, and then come into work and implement the solution.”

I’ve thought about this for years as I tune my work life balance. I’ve never felt like I’m wrongly bringing work home with me that way. It’s always felt like an incredible optimization where my job gives me these puzzles I get to carry with me and work on when I’m bored or my ADHD addled brain screams for stimulation.

junon 5 days ago | parent | next [-]

You've been very lucky. I wish I had a similar experience. Managers who truly think that way are beautiful creatures.

kaffekaka 4 days ago | parent | prev | next [-]

As long as I compulsively think about work in the shower, at 3AM in bed or while out running, I will never feel guilty about thinking about anything else than work for a while during 9-5.

pockybum522 5 days ago | parent | prev | next [-]

Do you happen to know if that one is hiring for anything at the moment? Left to solve problems at that pace, I'm pretty sure I could do some great things for them.

saagarjha 4 days ago | parent [-]

Most remote work gigs are basically this.

pastage 4 days ago | parent [-]

There are absolutely places where you are chained to the computer in remote positions this is a culture thing not how work is done. We have a nice culture and we are hiring, sadly not remote anymore.

I do not think it actually affects productivity in either way. What happens is that people seem to feel better.

bongodongobob 4 days ago | parent | prev [-]

I've never worked anywhere where I wouldn't be laughed at for suggesting this. "No, we do pay you to work from 9-5, M-F." You are very lucky.

dylan604 4 days ago | parent | prev | next [-]

This is one of the very best things to me about work from home. There are times I just get up and go piddle in the garden, take a short bike ride, or even just run an errand. I even do it when I'm stuck rather than just from being interrupted. It helps the brain to essentially, ctrl-z; bg and then move on to the next thing. When I return, I find the job %1 has completed, and I have a new approach/idea that is typically much more successful than the previous attempt of banging my head on the desk/keyboard in frustration. It's much healthier for me than vibe coding around the problem

jakeydus 4 days ago | parent | next [-]

Sorry my grandmother used to use the word piddle to mean pee so I got a real crack out of this.

jaredhallen 4 days ago | parent | next [-]

In my experience, to piddle around is to fool about, while to simply piddle is, indeed, to potty. So based on that, I see where you're coming from.

dylan604 4 days ago | parent [-]

I absolutely meant piddle about, but I guess that key word got left out.

jaredhallen 4 days ago | parent | prev | next [-]

In my experience, to piddle around is to fool about, while to simply piddle is, indeed, to potty. So based on that, I see where you're coming from.

__MatrixMan__ 4 days ago | parent | prev [-]

I read it the same way and assumed they were piddling in the garden to add nitrogen to their compost.

bubblebeard 4 days ago | parent | prev [-]

Yeah, most of my best work comes while I’m out for a run on a local forest track. I try not to think about work while I’m out there, probably that’s why it’s so helpful.

apercu 4 days ago | parent | prev | next [-]

100%!and also why I have been self employed for 11+ years.

linhns 4 days ago | parent | prev [-]

Same here. I often work more on the productive day if possible to maximise the roll I’m on

baxtr 4 days ago | parent | prev | next [-]

For me, the difference is whether I had pre-planned my tasks or not.

Knowing what I wanted to focus on and achieve from 10-11 am makes it much easier to get back on track.

In contrast, when I simply begin working on something, I end up elsewhere easily, even without external interruptions.

astrobe_ 4 days ago | parent | prev | next [-]

For me, it is more about the nature of the interruption. An easy question that only requires pulling something from memory doesn't cost much. A question that requires some thinking has a huge cost, even more so when you have to check the code or documentation. Sometimes even reading an email/teams notification can throw me off. It's not about the interaction (someone coming to your desk, a call,...), it's about the topic.

However I think that in both cases, if the interruption happens while coding, the risk of bug is about the same.

Dilettante_ 4 days ago | parent [-]

>A question that requires some thinking has a huge cost [...] It's not about the interaction [...], it's about the topic.

For me personally, every interaction with another person requires booting up "Human Mode™", which invariably pushes out any concentration I had on the task-at-hand.

deepsun 4 days ago | parent | prev | next [-]

I noticed it positively correlates with the amount of sleep I got the night before, and negatively with the amount of coffee I drank the week before.

4 days ago | parent | prev | next [-]
[deleted]
vorgol 4 days ago | parent | prev | next [-]

For me it's a combination of the nature of task, where I'm at and the nature and duration of the interruption. But usually an interruption causes a large amount of penalty points.

nicbou 4 days ago | parent | prev | next [-]

It could be that some tasks require you to hold a lot of context in your head. Interruptions clear that context and it must be rebuilt.

Or you could be tired. It’s crazy how ineffective one gets with a little less sleep.

tomrod 4 days ago | parent | prev | next [-]

I find a bit of meditation before work and good coffee reliably put me in the latter state, maybe 19 times out of 20.

el_benhameen 4 days ago | parent [-]

Any advice on getting started with meditation? Particularly for someone with a busy mind.

tomrod 4 days ago | parent [-]

I'm not studied in any particular tradition. I typically take a few minutes to connect with exactly what my body is feeling. The socks on my feet, the cinch of a belt, the wind blowing my hair, the cool or hot of HVAC on my palms and knuckles, the minor ache or pain, and so on.

I typically start from my feet and go to top of my head, then back down to my nose. It typically takes me about 10 minutes.

Then, I ponder what I remember of my coffee, breakfast, dinner the night before, how I felt when I woke up. Then I imagine how I want to change things. I do this 2-5 minutes.

At that point, I plan my day.

It works for me. I know there are a ton of different ways to do it, but for me it's simply a time for reconnecting to my internal and external self. Because its the same format with new content (what I feel now, what happened most recently) it feels more like a common exercise routine than a hard thing. But it took a few weeks of frustrating effort to learn to keep focus.

el_benhameen 4 days ago | parent [-]

Thanks, I like this a lot

TomLisankie 4 days ago | parent | prev | next [-]

Do you think it's related to the level of emotion tied with the interruption? For example, finding out a friend or relative was in a bad accident is surely gonna be more distracting than someone asking if they can borrow a pen for a few minutes.

nashashmi 5 days ago | parent | prev | next [-]

So the average is 23 min 15 sec right?

Waterluvian 5 days ago | parent [-]

Ahahaha… I mean… gosh, quite possibly?

neves 4 days ago | parent | prev | next [-]

As I get older, I feel I take more time to get back on track.

I don't feel less intelligent, maybe more experience compensates for it. I probably make less wrong turns. But I have to be more rigid to prevent interruptions.

heisenbit 4 days ago | parent [-]

I try to compensate with more and larger screens. Also resorting to writing down key aspects of context and plan. Used to keep it in my head but context switches can derail me more easily now so I need a way to get back again.

thecoppinger 5 days ago | parent | prev | next [-]

Right there with you :)

pinoy420 5 days ago | parent | prev [-]

[dead]