How many days does it take, working on a single feature, before it starts feeling like a slog?
Posted by sweetnsourgrapes@reddit | ExperiencedDevs | View on Reddit | 29 comments
Sometimes I get to work on a major feature by myself, which might take more than a week to complete. Over time I've noticed that, after 2 weeks on the same task, it begins to feel like a real slog. I get more distractable, drag my feet, it takes more effort to focus.
However, once it's done, I feel like a weight lifts, I feel quite elated and really happy with how it turns out, and that weird elation at the end reminds me why I do this work. It's not just that the job is done, it's that I'm really happy with the result.
Anyway just curious if others go through the same cycle, or if I'm just getting old and it takes more effort to keep my brain focussed over a long time now. :)
What's the length of time you can keep working solidly on a single feature before it starts to become a real effort?
Flashy-Whereas-3234@reddit
As the other guy said, small attainable goals. Backend Dev is signposted by turning pixels from red to green (tests) and that's generally all you have to show for it until you're complete, and then it's integration hell as you discover the overall product design has flaws nobody foresaw.
In the world of enterprise, we try to keep those tasks in good checkpoint attainable chunks, and if a Dev has been on Projects for a while we'll cycle them into doing BAU but fixes, which are more rewarding junk food.
A comfortable 70/30 split where you get to bounce between the two is a happy place.
sweetnsourgrapes@reddit (OP)
Holy cow, a company that thinks about developers' happiness? Sign me up! :)
StaticChocolate@reddit
Lots think about it. Some just decide their prerogative is more important, sacrificing some job satisfaction and happiness for the engineers.
AdUnlucky9870@reddit
for me it's around day 3-4. the trick that actually works is shipping something visible every day, even if it's ugly. a working endpoint, a passing test, a UI stub — anything that proves forward motion. the slog feeling is almost always your brain losing track of progress, not losing interest in the problem.
Gunny2862@reddit
Your brain craves accomplishment and dreads unending tasks. Best thing to do is break up features into as small a chunks as you can so you get to reach goals.
dariomory@reddit
True, but granularity has limits. Break things down too small and you’re shipping tickets, not value.
RandyHoward@reddit
Yep. Even when I work on personal projects, I create a Jira board and task everything out in tickets. Marking tickets as done and clearing out the board keeps things moving and gives a sense of accomplishment. Tickets should be small tasks, never a single ticket for a giant feature.
VeryLazyFalcon@reddit
3 months? Even more if topic is challenging enough. But sometimes even one day is too much if dopamine intake is too low.
The best stuff is that for which I can read requirements, create mental map and chill for next few weeks. Certainty of the near future is the best.
throwaway_0x90@reddit
There's no limit to how long I can work on a single feature as long as measurable progress is regularly being made.
crabby135@reddit
Yeah I’m with you. The length of time doesnt really make it a slog for me as much as the lack of progress.
crabby135@reddit
Generally a week or so, but I can only think of one instance where that was due to the nature of the work itself (something to do with authentication and authorization years ago). Most of the time it’s due to the business side being misaligned or stakeholders not being looped in and jumping in at the 11th hour with requirements/questions. If I’m repeatedly changing the details of how something is implemented because of those reasons it only takes a few days to start weighing me down.
bwainfweeze@reddit
For me it’s not duration but scale. When I’m about half or two thirds again as long as the feature was meant to take it feels sloggy.
Yak shaving makes it worse, but it can happen without much shaving.
hipsterdad_sf@reddit
Two weeks is about right for me too, and I don't think it's age. It tracks with how fast the mental model of "what I'm even doing" decays when nothing ships.
What actually helps, separate from the "chunk it smaller" advice (which is correct but hard to do in the moment):
Ship something on day 1. Even if it's a migration behind a feature flag, a no-op endpoint, a typed interface that nothing calls yet. Something is in main. The rest of the feature now has gravity pulling it toward production instead of pulling you toward infinite refactoring.
Write the changelog entry before you start. One sentence, user-visible. If you can't write it, the scope is still too vague, which is usually why the slog feeling shows up around week 2 (you've been carrying the ambiguity in your head this whole time).
Keep a running log of "things I had to figure out" while building it. Not docs. Just a scratch file. The act of externalizing the context is what makes you feel like progress is real even when nothing is merging. Bonus: when you get pulled into a sync meeting and asked "where are you on this" you actually have an answer.
The elation at the end is partly the dopamine of shipping and partly the relief of finally offloading the context from your head. Small, shippable chunks chase that feeling more often instead of bottling it up for the big finish.
VintageModified@reddit
Interesting to read the comments here because I seem to have quite a different experience. My team does 3 week sprints and it's very common for a large feature implementation to take the whole 3 weeks. Often it includes research, design, and implementation all in one, but sometimes a research story will take the whole 3 weeks on its own.
I get a similar feeling of getting tired of something once I'm working on it for more than a month or so. Unless I didn't find it interesting to begin with - then it takes even less time.
mxldevs@reddit
Probably a few hours.
So I need to break it down into very tiny steps to actually stay on track. Otherwise I just completely zone out and have really no idea what the end goal is.
Qwertycrackers@reddit
Honestly one day. I've always felt the best when I ship something every day. It's kinda hard to organize your work that way but it's the only way I've not felt like it is a slog at any more.
DigThatData@reddit
what makes it feel like a slog is thinking you're close to having it done but then discovering there's more to do.
nkondratyk93@reddit
nah it's not the days, it's scope size. hit slog mode by day 3 when i haven't chunked it down. ship something small - even a tiny slice - and it resets. two weeks is just the average before you notice you never broke it down.
thekwoka@reddit
about a week for me lol
Far-Policy5814@reddit
You're not alone my friend.
johntellsall@reddit
I find working on two tasks is easier than one task. One task if it goes well that's nice, if I get stuck it's frustrating. Two tasks and I can have a "foreground" and "background" task and ping pong. The brain works on the challenging task while I work on the easier one. When I switch back, the task is half done already! Go, brain!
MinimumArmadillo2394@reddit
For me, 2 days of consistent work. Break it up, as everyone else said. Work on something else for a day every few days.
tcpukl@reddit
Surely you should be breaking that task down into smaller chunks?
Exotic_eminence@reddit
Managers get this way for sure - hence the Friday 3:30 status report followed by the Monday morning 8 am status report followed by them being butthurt nothing was done between the two back to back meetings
CodelinesNL@reddit
There's a reason we tend to try to break up big stuff into smaller sub-problems. A single task taking "weeks" is way beyond what I'd do; I try to break stuff up into chunks that don't take me more than 2 days tops. This also makes it so much easier for others to review my code.
It's a habit I also try to teach others. Unfortunately a lot of devs are incredibly stubborn in this.
How motivated I am working on something has more to do with the challenge than the duration. I have ADHD so I crave 'newness'. So creating something new and challenging can have me motivated for weeks, but adding a single REST end-point is something I often procrastinate on because I get zero dopamine from it :)
For me the 'help' Claude gives me there is wonderful; it's especially good the boring stuff that already exists in the codebase.
haskell_rules@reddit
The big features should be broken down into architecture scaffolding, and then a series of completable sub-tasks to implement the guts of each major piece.
The real innovation in your skillset comes when you have the creativity and foresight to be able to put minimum viable code or testing stubs in place, and you go from working model to working model until eventually you have an MVP. Basically you structure the work in a way allows continuous release with progressively more fidelity.
That way you have a roadmap of the work, a progress bar, a way to communicate to your organization the progress you are making, and a way to get feedback before you spend two weeks doing the wrong thing.
bystanderInnen@reddit
C....
Till_I_Collapse_@reddit
The brain doesn't hate the work. It hates the ambiguity. If I'm staring down a two-week feature, I spend Day 1 aggressively mapping out the known unknowns and formulating a battle plan. If you sit down at 9 AM knowing exactly what Day 4 is going to look like, the whole thing feels way less like a slog.
Big_Bed_7240@reddit
and then you realize that no amount of planning will ever be enough to cover all cases so you have to restart on day 6 anyway