I only have one life, and I just don't want to be paid to "stay around and do the boring bits", or at least not full-time and in an office. Just as an example, having to stay in the office if there's nothing else to do for the day was absolutely soul-crushing for me. I might be happy doing that kind of work part-time and remotely (almost nobody offers part time work) or I might want to do that later in life.
I read a post about Gumroad here on HN, and that's how I want to work. The way Gitlab does it is also very interesting.
There must be other people who feel and think the same, and the post is just a way to try to reach them.
That should literally never be the case for a developer though.
You can always be improving the documentation, increasing the test coverage, optimizing for speed/bandwidth/complexity/some other metric you've measured, working out how to measure something, learning new tools or tech that could be applied to a project, working on a spike for some future feature that needs upfront research.
If you see those things as "the boring bits" that you don't want to do then you're not a developer. You're a hacker. You want to hack what you see as the fun stuff rather than developing complete, robust applications that can ship. That's fine, and loads of fun, but no one will pay you to that. You don't get a role like that unless you're some sort of programming savant on a par with the likes of John Carmack or Fabrice Bellard - someone has proven they can invent amazing things by being left to their own devices. Unfortunately, you really need to prove yourself first before you can land a gig like that. If it was easy we'd all have done it.
> That should literally never be the case for a developer though.
After 20+ years I've both been in such a position FULL TIME, as have others (eg: Many devs at ServiceNow) - hired on to work on cool things at an old small company and then literally sat around every day with no tasks and no responsibilities while everyone around me either didn't show up or watched TV on their monitors (open-plan btw).
I've seen big company devs do the same, making up busy-work tasks and literally not committing any code for months at a time playing the priority-game of "wait until something more important comes up, someone else will make a workaround" which was surprisingly effective.
The reality that a developer shows up and have nothing to do happens OFTEN in all sorts of organizations - eg last day of sprint, how many times have you pulled in a new multi-day ticket? Developer accountability is at an all-time low when software developers (across many sub-disciplines) can't make accurate estimates, can't meet anyone's estimates anyway, and are at an all-time-high demand. Managers are in a different boat, but same result. Perverse incentives and lack of a consensus (or willpower) on what constitutes value makes for do-nothing-and-get-paid while someone else does the work.
That is not the same as having nothing to do.
At a certain "senior" level (in terms of attitude rather than job title) you're expected to be a self-starter and think of things to do for yourself. Once you can do that you have no excuse for having nothing to do.
I do learning in work time. Learning could be backup for when there is truly nothing to do, like when git is down or something. But those chances are so rare, that I have to learn while there is stuff to do.
> eg last day of sprint, how many times have you pulled in a new multi-day ticket?
I was in exactly one team where you would wait on this situation. In literally all other teams, it was 100% normal to work on something multiday for next sprint. And that one team was dysfunctional in more then one way.
In reality, for a lot of people, if you start refactoring the codebase while waiting for a new task you are likely to break something and its just not worth the hassle for the developer or the company.
Learning new tools is always great ofc but it can be very hard to find the motivation in such a role, where unless you are a senior developer, you probably won't have much say on adoption, and you will likley just develop a half baked understanding of a new library that you will never get to use in production. Its much better to have some real free time where you can focus on your own projects and learn that way.
So in short, maybe it should never be the case that devs are in that position, but it often is. Especially for devs with less experience
The risk of this is in proportion to the lack of test coverage. If you are afraid to refactor, this should be an indication that you need to apply more test coverage, so do that first.
Well put. Professional software is only a mean for business not an end by itself. I recommend not deriving your satisfaction from code only if you work for a company otherwise you risk to both spoil your hobby and always be unhappy at work.
> If you see those things as "the boring bits" that you don't want to do then you're not a developer.
Don't we already have enough gatekeeping in software development? I don't particularly enjoy writing documentation, despite how important I know it to be. That doesn't make me "not a developer." If I were lazy and simply chose not to do the things that bored me (despite their importance), it might make me a bad developer (or more accurately a developer of bad software).
I design and implement software. That makes me a software developer. The pieces of that process that I find boring or exciting are tangentially related at best.
No. In fact I hope anyone who's actually worked in the software industry would see that we don't have nearly enough!
Look I'll agree with you about the evils of gatekeeping if we're talking about who gets to call themselves an artist or a writer. Those kinds of distinctions rarely create life or death consequences.
But software can. Not all the time, but certainly in medical, airplane control, banking and financial, and many many more areas.
I wish software would take notes from other engineering fields like structural or architectural. Can you imagine an engineer building a bridge who was like "I don't want to do the boring stuff like stress analysis or geological surveys, I just want to make cool shapes and build them!" Can you imagine trusting your life to a bridge built like that?
Software increasingly runs our world and real software engineers who work on things that really actually matter know they have a responsibility to "do all the boring things" because those things are essential to doing their job right. Hearing about major hacks and exploits every day like SolarWinds, Experian, Facebook that expose our personal information and put us at risk makes me feel like we desperately need more gatekeeping in our field to keep cowboys and hackers from getting the chance to get anywhere near these systems.
I've been in this career for 20 years and the thing I learn more and more is that writing code is perhaps the most trivial aspect of what we do. It's everything around it -- the process, the testing, the security, the collaboration and how teams and organizations operate that are the real challenges to be solved. Anyone can hack together some working code. The hard part is the systems and organizational structures in which it operates.
There are plenty of things to work on in software which are of no real consequence, but as the OP is finding it's pretty difficult to find someone who wants to pay you to work on something which has no value. That's called a hobby not a profession.
Probably the best way to apply the “if you have time to lean, you have time to clean” mindset, if it must assert itself, is to actually let developers stuff packages or weed the grounds or something else that can clear their minds. :)
This point parallels the distinction made in the Software Engineering at Google flamingo book between programming and engineering. Engineering comprises the tools and processes to maintain software over time (this is a rough paraphrase), of which docs, for example, is essential.
So to use their language with your point: this sounds purely like programming and perhaps not engineering.
The way it is worded, it would sound to me, as a hiring manager, that you might not finish the work. Because we all know the prototyping / experimentation part of a project is the most challenging and rewarding. Taking it live will involve dealing with the boring parts.
I am not claiming you _are_ such a person, but you might want to make it clear.
You read that correctly. The OP said clearly he has no intention to do documentation or testing, meetings, or much of anything other than just write code for about 40 hours and then quit.
people typically get jobs because they have bills to pay, not because it's fun. If you are in a position where you don't need to pay the bills with work, then you're in a great position and can have fun all day long - so why not just do that?
If you work on something that also turns out to be marketable then you might even end up with a viable business that you love working on.
If a position across the street becomes available which allows you to pursue a personal goal you aspire and afford your current lifestyle, would you remain at your current "non-fun" job or give it a shot and apply?
Many people don't just get job because they have bills to pay, they get jobs that they don't like because there is no alternative available to them which meshes with their lives.
To an extent, you could argue "that's personal responsibility, everyone makes tough choices".
Then again, the author tacitly references to the fact they were still obligated to physically attend an office space, even though they could their work remotely. Now expand that to the millions of workers who are forced to make long commutes.
So OP is in a position where money is not important to them. So why have a job at all? Have a fun or meaningful hobby instead, or start a personal project.
For what it's worth, many people who don't need the paycheck, or don't need a particular paycheck still go to a "real" job just because the scope of what they can do on their own doesn't match what they want to achieve.
People also join projects to learn things that are harder/less efficient to learn on your own.
I'm certainly not saying you can't do an interesting project on your own, just that many people are interested in projects they can't practically do on their own. Some might scratch that itch with an open source project or whatever, but especially if it requires hardware development, it may not be practical for many individuals.
But surely they do a lot of boring work at those companies too, as in all tech companies?
The "needs to be interesting" part is more tied to the "pay what you want" thing.
The only times this ever happened to me was while I worked in the gaming industry and I absolutely still had work available - but we had some pretty rough overtime expectations that lead to constant overtime even if a different department was behind.
On principle I would just sit there and relax as best as I could in the office if my team wasn't behind. But, keep in mind, that this was also all unpaid overtime at the employee's expense because thank you EA lobbying and a terrible industry. I occasionally lost money on these evenings since transit would shut down and I'd need to cab home.
Now that I've left the gaming industry I doubt I'll ever be in that position again and I continue to have oodles of work in front of me, though, due to ADD and such - I often have trouble with motivating myself to do the boring bits they are part of the job and go with the good.
Many people find it very difficult to understand that money is not always a motivator. This is a particularly difficult concept for managers to deal with.
If an employee is not motivated by additional remuneration, or in the case where they do not require an income, the relationship between employee and employer is fundamentally different.
The boring bits _are_ part of the job.
> I only have one life, and I just don't want to be paid to "stay around and do the boring bits", or at least not full-time and in an office.
The part about "in an office" is a fair goal, but if you want to avoid docs/tests/support/refactoring work, don't do this job. Writing code is just one part of it, any way you take it, and avoiding the rest is cutting corners. Even our consultants have to write tests and update docs.
Yeah, I can see where you are coming from. Some people want to look for part-time jobs because they want to spend more time with their passions, kids, parents, or friends.
I've been working part time, fully remote last year and it was wonderful. I don't think I'd go back to full time work.
After achieving enough trust with the company, I negotiated working alternating weeks. Having a 9 day weekend every 5 work days is incredible. Yeah, I didn't make much money, but I spend that time on my startup, so maybe it will pay off one day. Either way it is a lot more fun!
I’m a little ADD, so my most hated work is paperwork and administrivia. Nevertheless, I recognize that it is sometimes necessary (documentation, performance evals, collecting metrics, etc.) and I just get my favorite coffee and suck it up (the work, but also the coffee).
Programmers have arguably the least boring jobs in the world (we can literally automate all the most boring bits except for certain types of paperwork/administrivia) so to hear a developer complain about doing a little bit of boring work smacks of a special brand of entitlement to me. ¯\_(ツ)_/¯
> Just as an example, having to stay in the office if there's nothing else to do for the day was absolutely soul-crushing for me.
This only happens at terrible, un-enlightened companies who are more willing to waste both of your time and pay you a little less than they are to either give you meaningful work or let you go to the beach but stay on-call. Bosses should not be babysitters.
Maybe nothing you want to do, but I doubt there was nothing to do. Improving docs, tests, small refactoring to old code to make it more readable are a few examples.
IMO the boring bits are boring because there's no time spent to make them not boring.
On all layers of society there are tasks that are under-tooled and under-organized and if you make them worth doing, people will enjoy doing them 24/7.