Hacker News new | ask | show | jobs
by farhadhf 1881 days ago
I have some similar experiences. Especially with people saying "let me do what I love" or "give me a position where I can learn new things".

People like variety - the initial love doesn't last long. After a few weeks/months it gets boring and repetitive. Learning the shiny new tech is only fun until you you've figured out how it works, but the project doesn't end there and you have to deliver a product in the end. But for most people who exclusively want the "position where they can learn new things" fixing the bugs and doing the finishing touches is no longer fun once they've figured out how the underlying tech works - they leave for the next position where they can learn another shiny new tech and you're left with a half-finished project (usually with subpar code quality because this was the first project they did using the new tech).

4 comments

But this is my personality. Given repetitive work I become depressed quite quickly. I say this as a 40 yo who understands themselves well. Yes I can struggle through, but this career has brought me to the brink of suicide on two occasions. Working to the grind of an agile development cycle is poison to me, it drains all color from the world. I'd rather break my bones. Where is the space for people of my color? Who dry up and die if asked to write boiler plate crud code and unit tests for fizz buzz UI elements.

Unless I'm solving a problem that's genuinely intellectualy stimulating then I have 0 interest in coding.

Most of us hide the misery because we know that the only outcome of airing it is dismissal either in the short or the long term.

There is no role for us in this career but having sunk so much time into it we have no other option but to keep on going.

You have to do your own thing ... usually that's bad advice but for people with the temperament you describe I think it's reasonable.

Also a lot depends on expectations and finding good partners. In a previous job I worked with another guy as a team. I would start projects and get an MVP out and delivering value - then move on to the next thing. He would go through and essentially rewrite them to be high quality, solidly engineered products, well integrated with the rest of the stack.

We both got to do what we enjoyed and were good at: I am very fast at breaking new ground and delivering new value, and find engineering a bit boring. He was very good at improving existing systems, but too slow and plodding to try out new ideas effectively.

i have the unmet rambling dreams of the first person, and the anxiety-driven perfectionism and revulsion to poorly written code of the second person... so i'm unhappy thinking about unfulfilled ideas, unhappy writing new programs, and unhappy fixing old programs.

"i can only do so much and of course it's never enough"

i want the perfect programming language, the perfect gui library api and theme, the perfect program, the perfect ide... and i can't accomplish a single one

and of course C++ is an all-devouring Cthulhic monster that does everything but poorly, Rust has immature gui libraries and doesn't fully align with my values and desired features (I want linear typing, strong typedefs/subclasses of integer types, polymorphic variants/anonymous unions, prioritizing iterator generators over async), qt is basically legacy code and Qt Widgets is mostly unmaintained but difficult to fork (to build, create Windows installers, and convince Linux distributions to accept behavior-changing bug fixes), and my personal dream project (https://gitlab.com/exotracker/exotracker-cpp) is vaporware no matter how much i burn myself out making it (trying to both explore new ideas, and engineer them well, at the same time).

Well said. This is why engineers who know how to finish the last 10% are truly valued by good colleagues and managers.
I don't think so, most teams never do the last 10% on any project ever. They pick the low hanging fruit with the first 80% and if they are thorough they might bring it up to 90%, but 100%? I've never seen such a software project.
I'd say that Total Commander is very close to 100%.
TeX82 as well. From https://en.wikipedia.org/wiki/TeX#TeX82:

> Since version 3, TeX has used an idiosyncratic version numbering system, where updates have been indicated by adding an extra digit at the end of the decimal, so that the version number asymptotically approaches π. This is a reflection of the fact that TeX is now very stable, and only minor updates are anticipated. The current version of TeX is 3.141592653; it was last updated in 2021.

And those who aren't like that by nature are much less useful I suppose?
Personally I love doing the finishing touches but I'm usually not allowed to because the feature or product is considered good enough. It's hard to find a job where everyone really care about quality.
I feel like this is me with side projects sometimes. Do you have any tips for staying on target?

I generally don’t have this issue in my actual job.

For side projects, I think there is some value in not being concerned about finishing them. If you're doing them for enjoyment then they shouldn't feel like a job.

But I find defining exactly what done will be on a personal project helps a lot to get completed. I define features are the minimum necessary and once I reach those features I immediately switch to trying to release it. Releasing is always a lot of work so it's easy to put it off forever while constantly iterating on a product. But actually releasing gives a good feeling of accomplishment.

Here's a couple of thoughts. Sometimes not following through might not be about feelings or at least not directly. If you do a project to learn some new tech then the project is not about what it does but about how to do it. So make sure you pick side projects that you think need doing. Find a partner or a group to do the project with or create some way that you make yourself accountable for it's completion. Who are your projects for? If it's for yourself, then is it something you really want or maybe just an idea? If it's for somebody else or some group then create a connection to that group or some people so that you know who you're making it for and include them in the project. That way you have someone to deliver it to and to continue to support. Lastly, maybe it's a decision issue. Maybe you just never really completely decided to do it. How do you know when you've decided to do something?
When I get stuck on projects that are very meaningful to me, I chip away at the pieces I don't want to do and allow myself to take as long as I need to complete them.

When I get stuck on projects that are not so meaningful to me, I reduce scope.