by MaxLeiter on 6/11/24, 12:28 AM with 127 comments
by userbinator on 6/11/24, 2:50 AM
The dopamine rush of your code being shipped
This frequent overstimulation leads to less ability for long-term attention. When I taught programming, I saw plenty of beginners do this, especially with an IDE, and the addictive nature of being able to edit and run to see the changes immediately lead to many of them falling into an unproductive rapid iteration loop where they were barely even thinking about what they were doing, just making random changes until something seemed to work.
Your team (and manager) sees you're working
Tough problems need time to solve, and you won't see much meanwhile. If needing to put on a show for others is more important than actually working, something is very wrong.
Your git commit streak looks good
Yes, people say this doesn't matter. But I'm sure people like recruiters look at GitHub profiles, and an empty page isn't a great look.
Optimising for metrics never works for those who can see through the illusion, and that's an increasing number of people over time. If I was a recruiter and saw that sort of activity, I wouldn't think of it as more than someone just putting on a show --- especially if the majority of those commits are effectively "thrashing" or "churning".
The satisfaction (and mental benefits) of getting something done
I can personally say that the satisfaction is far bigger the longer you've persevered.
by zeroq on 6/11/24, 3:28 AM
That's one of the greatest corporate flaws and my biggest personal failure that I fail, and refuse, to adapt to.
When I work in a team I often try to empower lacking teammates by taking a challanging task, do most of the hard work, and give it to somebody else to finish up the easy part and ship the solution. While working on it they have to understand how the solution actually works (for instance by writing tests), and usually they are happy that they can contribute something bigger than they normally could. I don't mind passing the credit, as long as I know that the person actually made some work and understand the code. Meanwhile I offer myself for help or pair programming (although I'm not really a fan of the concept per se) to kickstart someone elses tasks, helping with architecture or just the general approach to the problem.
My coworkes like me, it worked wonders when I was running my own company, yet, when working in BigCo I have to constantly explain myself to higher ups that I'm actually present, not slacking and doing my job, because my jira/github profile doesn't shine.
One could say I'm a fool by not building up "portfolio" and paving my way to promotion/raise, but I genuinely think that this brings much bigger value in a long run. :)
by hxii on 6/11/24, 5:37 AM
Ship incomplete features just so your manager sees you’re working? Sounds like a toxic work environment to me.
Fill up your GitHub profile with colors? Seems like a superficial display of smoke and mirrors for those who value such a thing, not for what’s actually beneath the surface of it.
I have the “gift” of ADHD, and I’m quite content with learning something, solving a bug, finding something that can help my team, survive through meetings or just close up tickets every day, without the added stress or cognitive load that I have to ship something besides my usual tasks.
Strive for progress. Learn by doing. But it’s also fine if you don’t on some days. Don’t burn out. Not worth it.
by imiric on 6/11/24, 5:19 AM
This might be good advice for young people starting their careers, but even then I would advise prioritizing real life goals over work. Don't buy into the entrepreneur ideals you see on social media. People can be successful without working all day, everyday. Take rests, prioritize your health, and enjoy life first. Work is secondary.
by tppiotrowski on 6/11/24, 2:58 AM
I used to think that motivation would come to me if I just waited long enough but I now believe that action breeds motivation. You need to do something no matter how small and your motivation will benefit from it.
by cantSpellSober on 6/11/24, 12:52 PM
> whatever you work on doesn't need to "ship to prod"
The author walked that back pretty quickly. My understanding is "ship to prod" is redundant, "shipping" means "ship to end-users (in prod)".
I guess "do your job on the days you're expected to" isn't great clickbait.
by kgeist on 6/11/24, 11:07 AM
Now we focus on writing more tests and doing more design reviews.
by fefe23 on 6/11/24, 7:59 AM
It's got for his mental health, it looks good to recruiters, it makes the work more incremental (wat?), and it gives him a dopamine hit.
Notably absent are reasons that would benefit the project or product.
To me checking something in every day does not look impressive. It looks like someone had nothing to do worth talking about and went around the neighborhood cutting off leaves from the hedges.
Causing a lot of transactions is a great way to stop people assigning you actual work. I suspect OP forgot to mention that reason. You already look busy without actually being busy. It's like managers scheduling useless meetings. They want to look busy so nobody gives them actual work to make them actually busy.
by harwoodjp on 6/11/24, 3:12 AM
by sibeliuss on 6/11/24, 3:46 AM
by liampulles on 6/11/24, 7:59 AM
Tracking commit frequency is one step away from tracking lines of code. If this is really the metric of performance, then you are a cog.
My take would be: plan upfront consistently. What do you need to do now to unblock the work later? Does the solution make sense? Is there something more useful? Think lots, talk lots, commit sometimes.
by notatoad on 6/11/24, 2:53 AM
however, i expanded my definition to mean not just software features, i included writing a new help doc as "shipping". as long as it was something user-visible and for users in general, and not something for one specific user, it counted.
by malux85 on 6/11/24, 1:44 AM
One thing that really helps me is “do nothing time”
When I sit down, it’s tempting to fire up a browser, or Spotify or YouTube or something, then spend time faffing about looking for a good song, no no no, this is really just me avoiding the work.
I sit down, resist that initial temptation and my mind calms, like a storm clearing, and then I let it calm and little more, and then I can start. That do nothing period is only 2-3 minutes but it allows me to slip into flow state quickly. I recommend to others to try…
by purple-leafy on 6/11/24, 4:08 AM
B U R N O U T
by blt on 6/11/24, 3:12 AM
by kristjank on 6/11/24, 9:37 AM
I'm not quite sure whether it's really important to keep your github bathroom wall green, but it builds a quite useful habit imo.
by kwar13 on 6/11/24, 8:12 AM
by nicbou on 6/11/24, 1:15 PM
On other days I get nothing done because the most productive thing I can do is rest, or tend to personal matters. That doesn't mesh well with hustle culture, but it contributes to my personal happiness and long term productivity.
by Tao3300 on 6/11/24, 12:39 PM
What recruiter is going to see my company's private GitHub repos?
by collinvandyck76 on 6/11/24, 3:23 AM
by a_petrov on 6/11/24, 3:32 AM
However, I make a simple bullet task list and work on it. Tasks are not necessarily related to coding. It could be a task related to image editing. Initially, I was feeling very bad if I can't finish a task within the time I've set for it.
Now I don't feel bad if I can't finish that task on time. I perceive it as a micro-iteration of the task. The trick is to iterate further, until the task is done.
While rushing to do a task within a specific timeframe, might be productive in the short-term, I don't see it feasible if you push yourself all the time doing it. I imagine it might reflect on the quality of your work and lead to a self-induced burnout.
Shipping for the sake of it, in my opinion, might create some false perception of work being done. In my experience, employers tend to reward that behavior.
So maybe the question here would be: why are you shipping in first place? To show off, to boost dopamine through gamifying yourself, or to deliver a piece of work you'll be proud of before going to bed.
by lee on 6/11/24, 1:26 PM
The spirit of pushing small incremental changes on a team really helps address that.
This can be sustainable if everyone on the team realizes that every PR is expected to be small and incremental. It shouldn't be a large push every time.
by __0x01 on 6/11/24, 6:07 AM
Most of the time I only start to see the real shape of the solution after a few days of work.
Those iterations each day have value as they propel me toward a solution. But it’s more of an internal type of shipping. I’m shipping to myself.
by pjd7 on 6/11/24, 8:01 AM
Or that time I spent $120k USD on testing some upgrade paths on a dataset in elasticsearch from version 2.4 -> 5 -> 6 -> 7 that took about 5-6 days runtime on imports per upgrade step.
by wowozizi on 6/11/24, 3:39 AM
by vertis on 6/11/24, 12:48 PM
However, one concept that comes up in research like the book Atomic Habits, is that there's a much better reason to commit code frequently - quantity leads to quality. There's a famous story from the book Art & Fear about a university pottery class. The lecturer decided to grade half the class on the number of pots they produced, and the other half on the quality of a single pot. It turned out that the half of the class focused on quantity ended up producing higher quality pots over time. This is because the group that only had to produce one pot spent the whole time overthinking it rather than actually practicing and mastering their craft.
I think this is a much better reason to be committing code frequently and working on your skills every day. We're in an environment where it's a challenging hiring market, so it's important to set yourself apart from others within the industry. Some people have turned their nose up against "colouring in" their GitHub profile, but there are a number of psychological effects like "don't break the chain" that can be helpful in consistently putting in the effort.
Some commenters have mentioned tasks that simply take a long time, but I don't think the author of the original blog post was arguing against that. Rather, he's advocating that you should be continuously working on and improving your abilities.
by d--b on 6/11/24, 5:45 AM
by satisfice on 6/11/24, 3:56 AM
I mean if you want to ship but you believe that wanting to is not a good enough reason, none of these reasons are any more persuasive.
It is a distraction to ship things.
by dailykoder on 6/11/24, 5:57 AM
Do people unironically care about this shit? What the fuck man. Stop it. Now.
by conroydave on 6/11/24, 2:46 AM
by szundi on 6/11/24, 9:12 AM
There should be exceptions though
by swader999 on 6/11/24, 11:00 AM
by einpoklum on 6/11/24, 12:37 PM
by seoulmetro on 6/11/24, 3:46 AM
Do you really need those inputs to get outputs that mean something? No.
"ship something every day" is dumb because a day is quite a small piece of time for even small pieces of useful inventive work. Even geniuses don't produce all their things in one day, that would be dumb and geniuses know better.
"ship something every week" would make sense and leave you open to actual proper work still being done in proper time scales.
by securam on 6/11/24, 10:52 AM
by llmblockchain on 6/11/24, 4:41 AM
Do something every day. Maybe it's getting up on time. Maybe it's exercise. Maybe it's a bug fix.
by elmo_on_fire on 6/11/24, 11:01 PM
by securam on 6/11/24, 10:42 AM