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.
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.
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."
What don't you like about programming on meds?
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.
I ask because I have often wondered if I am undiagnosed as something or other and this post hit me hard.
In my brief experience of SSRI drugs, they left me fuzzy and unable to concentrate. Like baby brain without the baby.
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.
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 :)
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.
So yeah. Sucks.
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.
Red alert. You basically just wrote “I should quit tomorrow”.
Because otherwise you should quit yesterday, like the others say. You don't owe them nuthin'.
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'.
Can't deny the logic of that.
Weeks? Months?
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.
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.
> 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.
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.
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.
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.
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.
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.
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.
Maybe just bad luck and bad workplaces, but I am increasing skeptical that there are any true 'Agile' workplaces.
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.
It wasn't too hard a discipline to keep, I think it helped a lot to use physically different space and hardware.
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.
* 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.
Life is too short to spend on crappy screens.
Definitely agree with working using the best equipment money can buy, if you spend so much time with it.
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.
If something is sufficiently interesting I can hyper focus like crazy.
For decades any level of boredom was physically painful.
Remote is the worse for me. Staying on task is a nightmare.
What helped? Pair programming. This keeps you engaged and on task. I try and pair as much as possible.
Medication. I was on Adderal for awhile. It works great. I had to stop due to serious side effects. (Strokes)
However it got me past the mental block of “boring is painful”
I function a good better without medication now. It’s not where it needs to be to cope with 8 hours of no human interaction, but better.
I tried another non stimulate med. my focus was fine, but I was so sleepy my work was crap.
I’m on Vyvanse now. My kids are on Vyanse.
It works a lot better.
I get some of the same side effects as adderall But not as intense.
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'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)
https://aaron.blog/2016/03/25/how-working-remote-probably-sa... is a good place to start.
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.
Sounds stupid, but it really tricks my brain into not procrastinating on the more important tasks.
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!
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.
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'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?
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.
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.
- Lists.
- Checkins for accountability.
- Distinguish work space from other space.
- Develop routine around work start and end times. Block off heads down work as opposed to meeting time.
- Use the time flexibility that remote gives me to my advantage — if I want to start later and work later that’s fine. But keep routine.
In other words, all the same stuff as before. An office just gives you a sociotechnical system in which doing all of the above is easier.
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.
If I can only find the energy and appropriate time to do this, I figure I can save my work and work ethic.
- Work starts at a certain point and ends at a certain point with a pause or pauses.
- Only work happens on the work computer, no work happens on the private computer.
- Keep private distractions away when you work (put your phone in another room)
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.
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?
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!
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.
Why? Unit tests are our closest allies
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.
I also use-to consider them not important, but they have saved my as* so many times.
How would you drive a big refactor, without introducing new bugs - without unit tests?
With a solid test coverage, via a button click, you can conclude - how functional is your code base. Of course, not on the basis of weak tests.
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.