I was just having a discussion about this with my manager during 1:1. I'm curious how any fellow devs with ADHD have managed the transition to remote work over the last year? I love the freedom and ability to focus that working from home provides, but I often find myself taking advantage of that freedom and focusing instead on podcasts or reddit for 3 days to avoid 3 hours of writing unit tests.
I stopped being able to get work done at all. It gradually tipped me into a low-self-esteem death spiral. I tried lots of different approaches to fix it: more accountability with my manager, new medication, more regular exercise, therapy, a bit of disability leave, even moved to a bigger apartment where I could have my own office. Nothing got me past the block.
I quit my job, spent six weeks studying and interviewing aggressively, and got hired for a higher-level position at a different company. I pushed back my start date enough that I'll onboard in an office instead of remotely. In the meantime I'm working on my health and personal projects, and spending lots of time with friends and in nature.
I gave up trying to work remotely this time around, but I'm still hopeful that at some point I'll improve my coping skills enough that it will be an option.
I'm in the same boat right now. Since my company insists on using an "air-gapped" development network (it basically means no internet connection, but that didn't stop the Chinese from copying our code and designs but I digress) we have to go through two different VPNs, which means remote desktop lag. Usually I don't mind for a few days, but after more than one year I just can't stand it, especially when we're we're forced to used an early 2019 version of Visual Studio, so it's reallyyy slow. I just can't stand it anymore. Sometimes I'm allowed to come back at work and it's day and night in terms of productivity.
I'm getting contacted by headhunters left and right every months but I'm still reticent to leave because we're short on staff and the project I'm working on is really important for the company and I've was kinda hired to bring those things into reality as the other devs are mostly technical experts in their fields than actual developers and in addition the code is ugly.
> I'm getting contacted by headhunters left and right every months but I'm still reticent to leave because we're short on staff and the project I'm working on is really important for the company and I've was kinda hired to bring those things into reality as the other devs are mostly technical experts in their fields than actual developers and in addition the code is ugly.
Red alert. You basically just wrote “I should quit tomorrow”.
> Wait, is there an ethical reason you think the project should be completed?
I had a higher salary than demanded because they needed me to complete the task. Sure I could quit, it's just I'd feel bad about myself.
>ike, it's really going to help starving orphans or something?
Because otherwise you should quit yesterday, like the others say. You don't owe them nuthin'.
All your reasons for staying have to do with the company; not you. Unless -you- want to see it to completion, that is not a good reason. You do not owe the company anything.
Everyone is saying you should quit, which might be a reasonable suggestion, but it sounds like your issue is with working remotely. It sounds like you are able to be very productive and get satisfaction from your work when you can come into the office. If you don't want to quit, you could alternatively demand that they let you work from the office or relax development security. If they realize that saying "no" means jeopardizing the project, you might have some leverage.
Strange tip, I use to do part time local delivery. It made my brain cool off (safe regular activity, simple money, low skills). In between deliveries I often wrote small bits or small feature branches. I found it a good balance. It also made me think differently because I'd favor changes that were high ROI. No large design, no syntactic change. Only solid and valuable additions. Something I never really felt before.
Interesting. I have thought about working at a grocery store or something just to feel useful and connected, but my immigration status doesn't allow it. And honestly even though it would probably be good for me, it's hard to consider working for 1/10th of my usual wage.
Heh, same problem as ADHD developer. The one thing that was helping me was a custom in our company that we sit on zoom as much as possible. But, to be honest, I just got back to office as soon as it was possible in my country.
It's ok, although I have a tendency to wear myself out mentally when I take stimulant meds.
Certain kinds of programming have a very high activation energy. In each programming session, it can take a lot of time (sometimes hours) before I've gathered enough context to start making progress on a problem. Once I start making progress my motivation is usually self-sustaining. Sometimes I can't focus long enough to get to that point, and in that case the stimulants do help.
However, I also become very reluctant to take breaks and lose the context I've built up, so I often end up working quite late. I feel exhausted and sort of disoriented sometimes after these sessions. I can't do days like that too often without sacrificing health, relationships, etc.
In 2020, meds didn't help me at all. I just ended up being really focused on some useless distraction or cleaning my house or whatever. My problem was more fundamental than "I can't focus long enough to build up self-sustaining momentum."
I've been a programmer for 20 years and you just described my daily struggle with my job so precisely. Is this kind of experience happening to neuro-typical people or is this a very ADHD thing?
I ask because I have often wondered if I am undiagnosed as something or other and this post hit me hard.
I think for neurotypical people it is easier to create some kind of system/framework for being more efficient in work. Every solved problem add some mental tools to this systems. But it is much harder for ADHD because of how our brain works. Working step-by-step is hard for me. It is easier for me to load as much info to my brain RAM and try to digest it. And it is not something that you can get better in because it's not really a systematic method.
I've seen coworkers that I'd describe as neuro-typical work in a similar way sometimes. But the tendency to alternate between periods of difficulty focusing and periods of hyperfocus is a recognized trait of ADHD. If you're interested in learning more I'd recommend Hallowell's book, the one I read was "Delivered from Distraction" but he might have a newer one. Just read the first couple chapters and if it resonates a lot then it might be worth getting tested.
Just wanna say I relate strongly to these posts. Sometimes it just feels like i'm trying everything to manage my motivation and adhd and it just doesn't work and I just gotta breath get outside and be unproductive for awhile.
If you otherwise like your job and the people you work with, then I think it's good to just accept that some days you won't get work done and that's ok.
If you feel that way all the time, maybe it's time to find work that you care about more.
Thanks, I resemble all those statements, and I've often wondered if I'm undiagnosed ADHD. My occasional brushes with modafinil... well, sometimes it works, and sometimes it turns me into the best damn house cleaner on the planet.
In my brief experience of SSRI drugs, they left me fuzzy and unable to concentrate. Like baby brain without the baby.
I sometimes take modafinil before starting a day of work.
So far there hasn't been a single instance where I did that and didn't get sidetracked thinking up a new software project I could start using technologies I barely understand to solve a problem I just learned about.
The upside is you're a lot more focused, so you can get a lot done. The downside is it's really easy to nerd-snipe yourself, and the increased focus means it's hard to stop thinking about whatever problem caught your attention.
I found meds to have enhancing effects on my code. Everything I have earned is because of it.
My best guess is you are still in the phase of titration and finding the correct type of medication that works for you.
Having an empathetic doctor who is willing to work with you can make that road smoother. She printed out papers from pubmed to help me better understand what I'll be taking and what to expect. It felt very nice to actually be taken seriously.
I do notice that the other experiences may not truly reflect the efficacy of medication. The actual symptoms are still not well defined, not all doctors are equal, being misdiagnosed, etc.
Hard truth? It's still guess and check. There are so many comorbid conditons associated with ADHD - most of the time it is just the symptom of an underlying cause. ADHD meds only work on people with ADHD :)
Not OP, but I have ADHD and would love to chime in here. I love programming on meds and I hate programming on meds. Meds connect the dots, but meds also over-engineer everything. Then the meds wear off and I am stuck with a huge solution and I have no idea what I just did.
As a person without ADHD that sounds weirdly similar to my experience of studying or coding on amphetamines (from brief experiments in college that I quickly decided were not worth it). Is there actually any difference between ADHD meds and speed?
Depends on the meds, but Adderall is a combination of different amphetamines and dextroamphetamines. Some of which are added just to make it uncomfortable if you take too much.
The greatly simplified idea is that people with adhd have trouble using parts of their brain at the time they need to. So by increasing all brain activity the parts that are normally diminished are about normal. The side effect is that all the rest of the parts are amped up.
This isn't quite right. Adderall is a 3:1 mixture of dextroamphetamine and levoamphetamine. These are different enantiomers (configurations) of the amphetamine molecule. The two molecules have subtly different effects in the body, but as far as I know, neither is added to "make it uncomfortable if you take too much".
Fair enough. A doctor basically explained it to me like that over a decade ago, and I took their word for it. Which is uncharacteristic of me to just take someone's word for something, and repeat it.
I had a coworker with ADHD and I'm pretty sure he was prescribed stimulants although he was discreet about it. His patterns of focus were idiosyncratic, and occasionally he wrote code that just oozed "hopped up on addy" stylistically — particularly spurious and superfluous abstractions.
Months. Certain very large companies hire engineers into a general pool rather than to a specific team, so once you've passed the interviews they don't mind too much if you put off actually starting work.
A good first step is to understand what's fundamentally different about working from home, alone, versus working from the office. Some common differences:
- Context shifting into the office can help context shift you to work mode. At home, if you use the same workstation for games and Reddit and work and entertainment, you lose the physical context shift. If possible, try using your company-provided computer for only work, and your personal computer for only play. Even better if you can have them in different rooms. Start training yourself to associate one context with work, and one context with not-work. When you sit down in the work context, it's time to work.
- Accountability can feel lessened when no one can see over your shoulder. This can be misleading in the short term because it's easy to get away with it for a while: You can tell people you ran into unexpected difficulties, or you had to spend time on something else, or any number of excuses that work in the short term. Over the long term, the productivity difference starts to show up in your output relative to peers, so avoid falling into this trap. If your company isn't big on short-term accountability, give yourself some daily accountability. A good practice would be to write a short message to your team's Slack channel with what you're going to be working on for the day. At the end of the day, write a short summary of what you accomplished. Once this is routine and public (within your team) you will feel some of the same accountability you did when your team was sitting in the same room and could see you working (or not).
- Offices provide a lot of social exposure that we take for granted. Slack and Zoom can't fully replace it. Make sure you get out of the house and see other people routinely, even if it's just walking around the neighborhood. Simply seeing other, real human beings goes a long way.
- Track your time. Entering the office in the morning and leaving in the evening are natural delineators for your work day. Try to have some similar start and end times at home. Consider using something like RescueTime so you can see where your time is going during the day.
As an alternative to a daily chat message, a teammate and I have been meeting for ~15 minutes at the end of the day to talk about what we did and how productive we were. It's been pretty helpful a few different ways. First, it forces me to think about what it is I'm supposed to be doing and figure out the next step. Not knowing how to approach my next task is a huge cause of procrastination for me. Second, it's a chance to notice when I've gone astray, and identify factors that lead to low productivity. (Like that I procrastinate when I haven't broken down my next task into small enough pieces.)
I think for this to work well, it needs to be with someone you don't feel the need to impress. Maybe you have a teammate you trust like that, or maybe you can find a coworker on a different team who doesn't impact your performance assessments. If you have that, this feels different than a standup. Standups easily devolve into signaling to the team that you've done work. Instead, a 1:1 meeting with a coworker who you don't feel the need to impress makes it way easier to be vulnerable and admit when you screwed around on the internet for a lot of the day.
That accountability step is part of the intent for daily standups in most agile disciplines. The five minutes it takes for everyone to say what they worked on since the last one, what they plan to work on, and what obstacles they have, is great both for forcing people to focus a bit, as well as for managers to help point out when someone is stuck (i.e., "you've been working on that the past few days; is something wrong?")
This is why I find standups (and other ceremonies) patronizing and exhausting. It's like you have to publicly defend yourself and your work every single day. There's a massive difference between setting up accountability for yourself and having your manager/team/etc impose a public accountability ritual on you. Doubly so because it's usually billed as being about "visibility" or "alignment" or something else, as if it isn't about mico-level "accountability".
I couldn't agree more. The feeling you are describing is felt particularly acutely by individuals who are junior, or for one reason or another (low self esteem, flagging mental health, membership of a group that experiences disproportionate marginalisation in the workplace), and in my experience it subtly but profoundly warps developers' motivations and drives. Tasks can become all about rushing to get some progress made so you have something to say in stand-up or the weekly showcase, and not about actually patiently thinking problems through at whatever level of detail is appropriate at their org scale.
I don't understand. Can't you say on stand-up that you are "patiently thinking problem"? You can try to explain how this process works for other team members and maybe they will learn something new. If you can't explain what you are doing maybe it's not as important as you think.
So as with everything agile, the process is -nothing- without the culture. You can't fix culture with process.
If the culture is right, it's enabling. If the culture is wrong, it's patronizing. It's not intended to be a public accountability ritual; it's intended to make it so you're participating in setting the expectations of the team, and if you're not living up to them, the team looks to figure out how to better support and enable you.
I'm sorry, a process that happens in front of your team so that they can judge whether you're "living up to expectations" is literally a public accountability ritual.
You can't fix culture with (just) process, but process certainly affects culture. And this kind of process directly contributes to a culture where people are pressured based on how they work at an extremely finely grained level. Even if somebody is doing top-notch work and having real impact long-term, if they're not making legible progress day-to-day, Agile is going to make them look bad and feel bad. The process itself emphasizes consistency and incremental work while deemphasizing individual flexibility and agency.
Now, perhaps some teams have a culture that's strong and accepting enough to compensate for this and provide a great environment for people who work in different ways, but if that's the case it's despite the process, not because of it. I've never seen that myself though.
It's in front of the team so that obstacles can be solved by the team. It's why it's not in front of people outside of the team. The number of times where someone says "I'm struggling with X" and someone else says "Oh! I know about X! I can help!" has been innumerable.
And, it really doesn't contribute to a etc. I've had devs spend days with basically the same status, but it also was a large task. I've had devs make incremental progress, and everyone understood. I've had devs (and been a dev!) who said "I got nothing done; I was in meetings and they drained me", and it's fine (though it helps highlight that the meetings are too much very early).
The process presumes culture. It assumes the team functions together and is aligned in delivering, and isn't looking to blame one another. If the culture is bad, then, as with any bad culture, it's easy to blame the process.
I'm unsure if this is more your perceptions, the places that you've worked or a combination.
Why do you phrase it as "public accountability ritual"? I'm sensing my definition for accountability is different than yours. I typically think of my comment at a standup as (small) opportunity to answer "what have you been working on?" once instead of if every member came by and asked in a friendly manner. I wouldn't be bothered by them asking individually, and it saves me repeating the answer.
I've never heard the phrase "isn't living up to expectations" related to stand ups. Do you (or places you've worked) normally have those related? I'm not sure I understand.
Why do you think it's "in front of your team" as opposed to "with your team"?
I, and other people I've worked with, have never been bothered by saying "still working on the same hard task" for _weeks_. If anything, I usually hear encouraging comments; "it sucks that the task is so difficult", "anything I can do to help you out?", "I'm surprised you haven't gone crazy from that", etc.
The places I've worked at aren't even great at agile, but I've never seen the process directed towards some of the things you're saying.
I had a manager who would ask "is that all you're working on?" if you mentioned working on less than 3-4 unique tasks.
This incentivized breaking everything up into tiny tasks and getting things out the door instead of getting the right things done. It was not a good workplace.
So, first, let me say that, yes, that sounds like a bad workplace.
Second, just to point out (I'm sure you realize, but just in the spirit of the parent comment), no agile workplace cares about the load of tasks dev has. Are they busy doing valuable work? If not, is there valuable work they could be doing? That's it. If yes to the first, no problem. If no to the first, and yes to the second, no problem, "hey, I've got something you can have a look at". If no to both, no problem, it's on product and management to work on getting some new work items.
I agree that a True Agile workplace would not care about making sure that everyone looks busy. So far 2 for 3 of the scrums I've been involved with have degenerated into micromanagement and pointed questions if there wasn't constant process, even if that came at the cost of overall velocity.
Maybe just bad luck and bad workplaces, but I am increasing skeptical that there are any true 'Agile' workplaces.
I don't think there's a clear definition of what a 'true agile workplace' is.
That said, agile is, if anything, a culture. It's why it started with a manifesto, and it's why retrospectives are the only meeting that is spelled out in it; the retros aren't to try and determine what parts of a particular process you're not adhering to, but what isn't working (process or otherwise), so that you can change it (i.e., "At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly").
There are plenty of workplaces that have that culture, even if the processes are all over the place. Of the last four workplaces that called themselves agile that I've worked in, three of them had that culture, and I and my teams got amazing work done in them (in fact, my reason for leaving at least one of them was -directly- due to the hiring of a micromanager and the ousting of someone who protected the teams from upper management). The fourth was an old school enterprise company you've almost assuredly heard of, with high employee retention, a culture of top down management and decision by committee, and, surprise surprise, their injection of agile processes did nothing to make them actually deliver software any faster, nor did it lead to any better results.
I understand the argument that most people don't implement Agile as it was intended, but I don't think it is an enabler of bad management practices any more than what would be implemented in it's place if you remove the Stand-ups and Backlogs. It's like what they say about Democracy being the worst system of government except for all the rest. Brittle teams who are not in it together with each other are going to be hard work whatever the organizational structure. The fact that situation is so normal is not the fault of Agile.
The flip side of this is what I would term standup-driven-development.
You work just enough to have something to say that day. Rinse and repeat for the next day. The incentive isn't to do more or better work. The incentive is to have something impressive to say at the next meeting.
The other issue with standups is if it's not "on the board" then developers are disincentivized from doing certain things (proper testing of code, code reviews, etc.) in favor of things that show up.
Standups can help close the short-term feedback loop, but they don't replace long-term management involvement. Teams with standups still need proper performance management and performance reviews from a hands-on manager, along with clear communication of goals and expectations.
> The other issue with standups is if it's not "on the board" then developers are disincentivized from doing certain things (proper testing of code, code reviews, etc.) in favor of things that show up.
If important things are missing from the board, that's a problem with the planning process.
It's easier than it sounds to simply put those things up on the board. If engineers realize something important is not on the board, they need to get it up on the board. Communication needs to go both ways in planning sessions.
I used to live in a commercial building (the only living space) that had a separate office suite. When in the office doing billable hours sorts of things, 0% of time was spent on non-work issues. Work computer = a big honkin' loud workstation. Home computer = a laptop.
It wasn't too hard a discipline to keep, I think it helped a lot to use physically different space and hardware.
ADHDer here. WFH was a nightmare the first six months, but the past few months have been working out great. My findings from this past year:
* Finding the right medication, in the right dose. Biggest QoL improvement. YMMV
* Whenever I get lost in the sauce and start spinning my wheels, I schedule a call with a colleague and ask them to help sort my priorities out. This also helps me with accountability, in a softer way than accountability-by-authority. This might require some self-awareness.
* Finding a note-taking/task management system that works for me. So far, I've been having the most success with a combination of Roam Research; Apple Notes and Muse for drawing/diagramming on my iPad; and Todoist for hard reminders.
* Getting enough physical activity. My headspace becomes awful if I don't get at least 30 minutes of walking in during the day.
* Finding my context shift to work mode. Most days, 15 minutes outdoors first thing in the morning after checking my task list is enough. For rougher days, I work from the café down the street.
* Avoiding social media before lunch, as it stresses me out.
* I found the eureka moments striking at odd times, like evenings or in bed. I rarely regret following these strokes of inspiration, but they can really throw my off my work/life balance. Cutting my days shorter (most days), and allowing myself to work when inspiration strikes (a couple times a week), has really helped in lowering my stress levels.
* A couple days a week without scheduled meetings. I can't focus if I know I'm going to have a meeting in 1 hour.
* Splurging on equipment. If I'm going to spend a lot of time in front of my screen, I might as well get that 4K 32" and a G915 TKL.
So I really enjoy the spatial paradigm with Muse. It feels like a digital whiteboard - I can paste images, resize them, throw them around, and ink over them, which makes it great for thinking. Compare this to Apple Notes, where each note acts like a document. I can ink, write and paste images into a note - but text, ink and images are all their separate blocks, flows from up to down, and cannot "interact" with each other.
Further, the Muse interface is very frictionless. Erasing ink is just holding a finger while using the Pencil. Switching tools is just swiping in on the screen with the pencil. Compare this to Apple Notes, where I usually need to chord several taps on different parts of the screen altogether just to change the tool or ink color.
I'm in the same boat and pair programming has been a godsend. It's so much easier to think about and work on boring tasks with a colleague. We both have the same problem so it's a good match.
I've been using it, finding it less useful for me than stimulant options but sometimes it can unstick a feeling of ADHD helplessness or "death spiral".
I was terrified I wouldn’t be able to focus. Terrified I’d get distracted by home life. That my productivity would plummet.
But it didn’t happen. In fact, the opposite. I never realised how much commuting and office noise harmed my productivity and energy levels. I was buzzing.
And I did what any ADDer would do.
I got drunk on it. Then burnt out.
In typical ADHD fashion, I thought all that new energy was permanent and I could work insane hours. Sometimes from 7am until 1am.
I was warned. But I didn’t listen - not to my mrs, not to my old man, my sister and colleagues.
And then, once the dust of lockdown settled, I burst.
After making damn sure that the company I worked for and my sisters business didn’t go bust, I couldn’t anymore.
The code I wrote only a few weeks before? Hieroglyphs. But not that I’d lost understanding. I knew I could read it if I wanted to.
But I really didn’t want to. Like my very being rejected any attempt to focus on the task at hand.
I was reduced to attending scrums. And playing video games.
It took a weekend away, a week off and a bit of advice from Dr Feynman.
Thankfully, work was understanding. I was given a project where I could play, and still deliver value. And so I played, got something small done. Then I played some more. And so on.
Now, a colleague works on the project with me. I played so much that I was prone to rabbit holes. My hyperfocus was out of tune.
But then I took stock and was able to focus. We found a way forward, took some advice, got speaking to the users and focused development on fast iteration and feedback.
The past few months have been the most productive of my life. All remote.
I learned a lot of hard lessons in lockdown. The lessons I could not predict.
I kinda made it explicit with myself (not with my colleagues of course, duh).
I'll fuck off most of the morning, well aware that I'm doing so, and I'll work non stop in the afternoon.
Some important things though: during the morning I mostly spend time on stuff I find interesting, usually tech stuff not directly related with my job. A few times non work stuff. But seriously, it's a joy to be able to spend the morning to get better at something about your job.
I spent last week mornings playing with the kubernetes APIs and the client-go libraries, with only vagues ideas. Turns out, a colleague is findin one of the toy tools I've written useful. Wasn't expecting that. Last month I spent another week mornings diving into AWS IAM and now I finally finally understand stuff and I'm reporting problems to our head of it security, and we're fixing stuff before they become problems.
The key, imho, is to be self-aware: I'll fuck off in the morning, and I will work in the afternoon, no interruptions.
Important edit: I might be slacking, technically, but I always keep an eye on the company chat. If anyone or anything needs my attention, I drop my slacking off and be readily available (most often you only have to be able to hear the Slack client beeping)
There are a couple of things that allow me to get past these bottlenecks. First, let it go. Then do something else, get outside, have a cup of something. Instead of thinking about "3 hours of writing unit tests", start with "write just 1 unit test". Then get back and try to find something interesting about this depressing piece of work you need to do. Just one tiny thing, like "how fast does it take to run a test" or "how does this utility method is implemented". I do this a lot - trick myself into something small, and then let myself go with the same work, just like reading "one post in HN" leads me to write this response LOL.
In my case, it is just a pure absence of motivation and interest that causes the attention to go somewhere else. And this is all right, as it's a signal that the shit I do is not worth it. I have to make it worth it in some way, worth it for my soul sake.
Agreed. Creating small, achievable tasks to start my day gives me some easy "little victories" which provide some confidence to tackle harder problems. Often tiny things like "send an email to X" or "write JIRA ticket for Y".
Sounds stupid, but it really tricks my brain into not procrastinating on the more important tasks.
I'm struggling. When we were in the office there was still some semblance of normality. Particularly in 2021 my productivity has plummeted. I'm considering leaving this field altogether and have started applying for other jobs. At least with a physical job I can do the task at hand. I don't think I can be a successful developer with ADHD and I refuse to take meds full time. If anyone has figured out a solution to their own problems I'm all ears.
I often find myself looking at my website and trying to figure out what is the most important thing I have to work on right now.
But hours can pass by like this.
And I’ve learned that I need to start with something small. Even a tiny improvement/fix I spend my first 15 minutes on gets me going and into the flow state!
If you can get away with going down a Reddit rathole for three days, no one is watching you that closely. That gives you freedom to chase other things. One option could be writing a library to make your tests more interesting to write. Write the boring tests first, and then look for a way to make the process of writing them more interesting.
Does it actually impact your relative productivity net of everything?
I have done that a few times even without ADHD (presumably). But stripping away all the meetings (or at least the need to stop work to be in them), the chatting, and the distracting questions has made it net out to about the same.
Software is absolutely inadequate to prevent you from being distracted... You can block a couple of things but it's an uphill battle, because there are no limits to the number of things more interesting in the short term than writing unit tests.
It's import to identify and address the root of the problem rather than just the symptoms. Do you find your work rewarding? Will these unit tests help you to complete the goals you hold for yourself? Are you healthy enough to faciliate productive work?
No, far from it. The pop culture definition of ADHD has become extremely vague and watered down, almost to the same degree that "OCD" has become a pop-culture term for attention to detail.
Procrastination is a common behavior in people with and without ADHD. Procrastination alone is not an indicator of ADHD.
Likewise, someone who procrastinates does not fully understand the struggles of someone with ADHD.
It definitely helps me to have at least some working in the office. I can work on something that is cool/exciting from home no problem such as implementing new features, learning some new API, etc. from home no problem, but going back to the office is very helpful for stuff like going through email.
Also, thank you for speaking up! I feel like a lot of the discourse for ADHD folks has been how freeing it has been to get away from the distractions at work. For me, and it sounds like also for you, working from home often doesn't have enough structure.
This might sound pretty laughable but seriously try a standing desk. If you have a bookshelf or something that you can prop a laptop on to just try it without buying anything, do it. I find that when standing I'm able to get my brain to engage in problems or boring work that I otherwise wouldn't do and would instead avoid and watch YouTube. The ability to fidget and move around (calf raises, jumping in place, pacing back and forth), and not having the ability to sit back and relax has actually made a huge difference in my productivity.
It's also important to not do leisure activities like watch YouTube or browse reddit at the standing desk. Make it a work-only space.
Another thing to consider is ADHD and the emotional wall. When confronted with the idea that you have to do 3 hours of unit tests it seems daunting to start, because it's going to take so long! Instead, start by doing 3 unit tests (or something that will take 15 minutes). Even if that's all you get done today, do 3 again tomorrow. If you can make it through a much smaller task you'll likely have the momentum to keep going. And even if you don't, that's okay because you made some progress and can do a little more tomorrow.
We are using Mumble (https://www.mumble.info/) to be able to hear your colleagues the whole day. When I need to focus more, I go to a virtual office in Mumble.
I struggle in meetings, always have. Ive found i have to slow people down in meetings and have them repeat themselves a lot, and I will repeat back to them what they are saying because I easily miss a lot.
I keep a list of tasks in a notebook and take the time to break them down and make sure I check them off.
I take a nap when I need one, take a break occasionally. Keeo the task ritual going. I always get my work done on time.
Regular 20-30 minute walks interspersed throughout my day have helped, usually every 2-3 hours
It's probably more breaks than I would otherwise need but getting outside had helped me be mindful and exercise inhibition; a bit of a reset, so to speak. If not, I find myself getting stressed out at home more than I otherwise would as well
Are you me? One thing that led me to not turn on my desktop workstation is to complete a personal project. For at least half a week, I did not bother to reach out for instant gratification via reading HN, proggit, podcasts etc.
If I can only find the energy and appropriate time to do this, I figure I can save my work and work ethic.
I’ve been using Immersed VR with some good success. I use different virtual environments for different tasks. The coffee shop for deep work, space for emails, etc.
Part of my problem is that my “office” is in my bedroom. I’m a strong believer in “physical” mental spaces, so it really helps me.
In my experience, pair and mob programming are just yet another scenario where neuro-atypical people are punished for approaching their work differently.
I just recently started working at a place where mob programming is commonplace.
It is easily the most wasteful use of time I have ever seen in my professional career.
1.5hr session * 6 devs = 9 hours down the drain.
Only one person can speak during a Zoom call! It's a single-threaded, low throughout, low latency communication medium.
So it always ends up being one or two people talking - the one or two driving what is being mobbed on.
Due to this, I try to only jump in when I have something valuable to add. Which isn't often given the situation I described. If I'm driving or directly involved with the design or w/e of the mob session's focus .. sure of course I'll talk. But I'm not going to sit around trying to get a fluffy word in edgewise for 90 min just for its own sake.
And yet a frequent driver of this mob culture (a "principal" engineer if you can believe it) loves to mention how I'm not "engaged."
??? I sit in your dumbass meetings and pay attention for 90 minutes! My time is 100% focused on the meeting!
Being a junior previously I derived a lot of benefit from light pair coding every now and then to learn something from a more senior developer. I have also been in code reviews where 2+ people are of equal relative skill, but have different approaches to a problem, and it almost becomes a stalemate or some kind of power struggle to 'be right'. 6 devs seems very excessive and an expensive use of time heh.
Think of it as a chance to pick up editor and language tricks you might not have known, or to socialize "best practices". The metagame is still part of the game. If you can't change the practice, try to make the most of it.
It's slow at the beginning, but the payoffs are huge. With mobbing, everyone knows how to do everything. Far less design mistakes are made. No one ends up "owning" certain parts of the system. It's also very humbling as everyone succeeds and fails together, discouraging "heroics".
Pairing is also great for this (but you have to switch every day).
Obviously, if you're working in a feature factory, pairing and mobbing are pointless. If you care about code quality and de-siloing, they're incredibly valuable.
Obviously, it's not for everyone, but it works incredibly well where I work and I will never accept another job that doesn't encourage pairing by default.
For "normal" mobbing, 6 people is too many. If I had 6 devs coding (which I often do) that's very rarely going to be a single mob. It could split up 2/2/2, 3/3, 1/2/3 or whatever, but a single group of 6 is really inefficient.
I won't say it's for everyone. But for ADHD specifically, my personal experience is that pair programming is a godsend. I am able to use half my regular dose of ritalin while pairing.
I'd say I can get behind pair-programming to a point... it helps get new ideas, different view points and leads to rubber-duck-programming like effects.
I'm not sure I'm a fan of Mob programming... as others mention, over a phone/video conference, it seems inadequate. Turns more into an ad-hoc video lesson by the stronger personalities (for better or worse - I happen to be one of those in my small group at work).
Do you have problems with both? 2 vs 3+? or is it one or the other?
To do mobbing effectively you should be switching the driver very rapidly. It's a bit tough remotely, but it can be done. There are probably other ways to make it effective, but if only a few people are contributing, then the mob has failed and should either be recalibrated or stopped altogether.
No, anecdotally a lot of people struggle. It is an intensive experience and places different pressure on a person than soloing does. For me it works great, for many people it works great, but not for everybody.
I know this sounds like evangelism, but I absolutely hated writing unit tests until I learned TDD. Now, I don't always write tests first, but I usually do.
I'll also say that I have seen a lot of time wasted writing useless unit tests. That can contribute significantly to the "I hate unit tests" feeling.
Maybe not enjoyable, but also not anxiety-inducing like certain foundational design tasks can be. For procrastinators, writing a small unit test can be a near-mindless, easy activity to get going.
I'm not sure if it's wise to publicly post this "taking advantage of that freedom and focusing instead on podcasts or reddit for 3 days to avoid 3 hours of writing unit tests."
So you are telling me a person suffering from ADHD is not accountable for the $ lost in productivity. If I had ADHD, just for survival, I wouldn't ever let my boss know that I have this condition which is costing his company X amount of dollars a year.
Most knowledge workers are paid for impact, not hours worked.
If your results-based performance is deemed adequate, that means either the company is getting good value for the money they pay you, or they have a broken performance management system.
ADHD doesn't really factor into it. If ADHD leads an employee to have subpar performance, they will be fired just like anyone else.
Caveat: the best companies think like this. Most don't.
I've worked with people who come in late, leave early, and make huge, disruptive, positive impact as well as slow, positive change.
I've also worked with people who work 15 hour days who don't work well with others and are constantly picking up after themselves as their silo'd work breaks daily (yet from management's point of view, everything is running smoothly not realizing they have a giant bus factor on their hands).
So ya, nothing to do with hours worked and, if you're working for a decent company, there should be reason not to be upfront about this.
By not letting your boss know, you are making it harder on yourself, and then leading to less productivity in the future, as opposed to getting better. Also it isn't that it actually costs the company money. They could very well make up for that lost time by hyper focusing and finishing it quickly later. So it could be the same result for the company but much more stressful for the person with ADHD.