For me people that don't take responsibility like that ultimately have an issue with themselves: Yeah they might be wasting my time — but more than that they are wasting their own time. If they are as good as they believe they are, why do they end up in a job where they don't care? Not caring is okay, but where is the ethos of the craft? I might not care about the particular problem of a customer, but I might care about the reliability, quality, extendability, readability and performance of the code I wrote.
Caring costs energy, sure. But not caring can cost you even more, as you are wasting your life.
This is a brilliant definition of professional ethos.
A further poster asks if companies pay for this. I understand that "do I get paid for it" is the question of the age, but I see that as a reflection of one of the evils of the age (every age has evils and goods).
The money you get paid is a means to an end, not an end. I feel better about myself knowing I have lived up to my standard, money cannot compensate for that.
Money gets you the respect of people who don't know you. Professionalism gets you the respect of the people who do, including the person who knows you best, yourself.
This only applies once you make enough money to be comfortable. Before that point, money directly correlates to quality of living.
Caring about quality is above capitalism or communism. Yes, it can be exploited by any political regime and it is necessary to be aware of this exploitation, but regardless of what is the environment I feel proud of doing a great work.
I think it is because we are naturally attracted to beauty and repulsed by ugliness.
Do you mean really care or just be good at pretending? The first thing I learned when I started working is the importance of not caring.
Caring can cause innner-team conflicts and burn out. Yes, you need to appear motivated but caring too much will just make you annoying.
Also this is more about the power of influence I get over a project. If I get real ownership and the power and tools to make decisions, yeah I am going to care, if not, not, just no. I am not wasting mental energy on things I can't change.
I will pretend to care about anything you want me to care though, if the pay is right.
Your family comparison is super weird. There is no love and loyalty between employer and employee. The relationship is antagonistic by nature. If I find a better job, I am out. If they don't need me, they will kick me out. They pay me the minimum amount they can get away with and try to squeeze out the maximum value. They don't care about me as a human being and they should not, that is business. (It is the job of labor laws and unions to make the interaction more humane, I don't believe in idealism.)
Of course, I still have professional pride and given the choice will try to do a good job but for me being a professional also means being emotionally detached from it. It is just business. I work for money. The meaningful stuff in my life happens outside of my employment.
But I care about my work in a deep way that you don't seem to feel. If I manage to get a junior / medior to properly step up to a task and grow confident I feel pride, connection and sense of doing the right thing. The whole business layer comes second for me at that moment.
Another thought is that I feel that 'in Europe' (generalisation) the antagonistic nature of employment is not felt the same way especially for professional jobs. We have no firing at will. As an manager I understand that I have a multi year relationship with people that should transcend the tasks at hand. The tasks at hand should be done and done well, but a job should be both fulfilling and manageable for the individual. Even if a hiring fails somewhat you have to make it work. The current job market creates an even bigger reason to treat people well.
That's certainly not my experience. I've met just as many Europeans that hate their jobs and just do it for the money. They spend as little time as possible doing them.
I'm reminded of this book
https://web.archive.org/web/20090901204114/https://www.nytim...
https://www.corinnemaier.info/english/
Of course, you work to pay for the rest of your life but I think there is a role for craft and teamwork in all of this.
I don't think anybody here talks about employees caring about or loving their employer.
It's about about worker caring about their work.
Because if I don't care, this is what happens:
if input == input_that_causes_bug_1948348 {
return static_output_for_bug_1948348
}
Add UT. Next ticket please.Remaking the core architecture to solve an obscure bug which only happens when you've got overlapping leap years and leap seconds is most certainly a bad decision.
For a simple example: Phillips hue movement detectors don't work for a very short time before new years. (My guess is that they're validating the year for the activation signal). I don't know how the bug occurs, but i can imagine several ways in which this could become unfixable if a given architecture was chosen... I still want it to work though, so I'd really like it if they'd just added something like your example.
- make lightbulbs work in these last seconds of the year 2022 and only that year
- make lightbulbs work in the last seconds of years 2023-2036 or more
This is the distinction I've been trying to make: there are sometimes powerful incentives pushing workers into the former, even if the latter could be approximately the same effort.
I was thinking more about solving it at the source vs essentially just catching the error case and overwriting the behavior. And while the latter is definitely "code smell"/technical debt... Sometimes, there aren't really any good solutions to a given problem
Eh, nearly every worker will given the time and ability will do the proper solution. I have NEVER seen "workers caring" to be an issue in practice.
The reason code starts to smell is nearly always management. If boss says to quick fix, quick fix it is. The fish always rots from the head down.
Where you are perhaps. But there are still pockets of civilization left on this planet.
Well, that's just plain wrong.
At least make that worthwhile. Make this time count for you. Make it something you care about?
I spend 8-10 hours on a given day exchanging my work for some revenue. That is (at least) half of my waking day. Day after day. To the tune of ~2000 hours a year. That is a massive part of one’s _life_. I think it’s reasonable to want some sort of satisfaction during at least some of those hours.
Also, I find it takes active effort to actually not care. It is not a minimum energy test state for me. I actually have to work even harder to do the job and NOT care.
(Super useful comment huh?)
Care about the user, programmers. Not the manager, not your fellow work competitors. The USER.
Without a USER, nothing you do has value - at all.
(Note: your manager and your fellow work competitors can be users too. Don't overlook that fact! Hopefully they care enough about the users, too, that they are willing to wear the user hat during your product development cycle. Even managers wearing users hats are users. I hope you still care even then!)
In practice though, you a very privileged if you get to work on any software that is not user-hostile per design. In the end of the day, programmer don't make the decisions.
Stopping caring is a coping strategy to help you extract funds (if you aren't getting good funds, leave!) from a company that refuses to let you do good work.
I totally agree, but with the one exception - C++. The language (and its ecosystem) is so complex that I don't see someone without experience being able to be a lead developer of a large C++ project or to be able debug non-trivial bugs in C++ code. Debugging is one of my strongest skills, I can debug code written in many languages including C but when it comes to C++ I often helpless. I don't see myself being confident in C++ without spending years to master the language.
But it matters less whether developer knows django or node js or Java.
The decades of neoliberal dogma ingrained into management that everything should be done as cheaply as possible, and nothing else matters. To me, that is a very definition of organisational not-caring.
MBAs, in principle, cannot build a beautiful cathedral. That is lavish for its own reasons. If everybody chases money, nobody chases anything, really.
Are their pay and their working conditions the best that the market can offer to them?
> - can they be responsible? Or have they bought into the fantasy where they offload responsibility to a “decider” while they play the role exclusively of “doer”?
Do they have the decision power and the salary that go hand in hand with high responsibility?
As a business owner I am reluctant to offer a new entrant the best pay “that the market can offer”. Working conditions - a company can only offer the best within their means.
I know that good faith must comes from both sides, and a company has to offer something worthwile in return. Like any type of relationship, its a two way street.
But a sense of entitlement firstly, and then maybe if the company is lucky that the employee will care and take responsibility - that is a relationship one better not enter from the onset, if it can be detected ahead of time. Its just the wrong value set.
I would also add that a company that displays the same kind of entitlement towards its workers, is also not worth an employee’s further attention.
Most businesses are also reluctant to give their best workers a meaningful raise.
If someone's answer to "why does clicking 'Save' and then reloading not show the saved data?" is "the product requirements only said there should be a Save button, not that the data should be saved", I don't want to work with them. If you want something like this go work for a body shop, not a product-focused company - and then don't complain when you never get the interesting technical work.
> "the product requirements only said there should be a Save button, not that the data should be saved"
If these were really the requirements, then the PO's salary should be split and go to the developers, because they would need to do that job anyway and at least do not get distracted by an incompetent PO.
This kind of culture eventually produces the equivalent stupid formalization on the dev side like "all modules must have at least 99.85% coverage and a three-phase UML diagram review by the architecture team before deployment".
Better to have some slack and people willing to use common sense on both sides.
The former shouldn't be paid more than a front desk receptionist, and I'll keep the difference since I'll be picking up the rest of the role.
I guess count yourselves lucky you've only had bad POs and not bad POs and bad developers.
In a simple project a mockup can be enough, but then what do you need a PO for?
Deep technical knowledge can help a PO, especially in technical products, but it should not be influencing how they present to the dev team. Otherwise they're just another even-less-accountable architecture astronaut.
I’ve heard some version of this statement for years.
I feel that it is an almost guaranteed result of today’s “mayfly tenure” pattern. With the entire industry and engineering career structure, based around (and rewarding) tenures of two years or less, there’s almost no incentive for engineers to leave a legacy.
Instead, “quick fixes,” and “buzzword bingo” work is rewarded.
Who cares if it goes pear-shaped when the next OS comes out? I won’t be around to clean up the mess.
I’ve spent my career, maintaining my own code, and have learned to leave a legacy[0].
I was just working yesterday, on a new fix release, of an app that has a provenance that goes back ten years (Through two different codebase pivots)[1]. I walk through its history, in this comment[2].
[0] https://littlegreenviper.com/miscellany/leaving-a-legacy/
I’ve learned that it’s not a good idea (for me, at least), to be saying “you guys are doing it wrong, and here’s what’s wrong with your approach.” That type of thing tends to get lots of clicks and upvotes. Internet rants go viral, hereabouts, on a regular basis.
Instead, I have learned to say “This is my approach, with the results, and here’s links to the proofs, in my own work.”
When I make general statements, I tend to qualify them with “I feel as if…”, or “It is my opinion that…”, or “In my experience…”, etc.
As you have demonstrated, it often results in downvotes (I suppose, because it is perceived as “arrogance”), but I won’t engage in poo-throwing.
The Internet is already bad enough, without my contribution. In The Days of Yore, I was a highly effective troll, and I have some atonement to perform.
I have been linking to my work for as long as I've been posting, here, and will continue to do so, for as long as I participate.
You will also note that I am not anonymous. I make it very easy to find out who I am. You could probably easily find my home address and phone number, from what I post.
Helps me to be accountable for what I write. I spent my entire career, being highly accountable. I feel that it helps me to build my character.
I don't care whether or not I'm some kind of "Internet essay star" (Spoiler alert: I'm not). I write what I write, for my own good, and so that anyone that is interested in finding out more about me, can do so.
I've been at this stuff for a long time. I also spent almost 27 years at one of the most anal corporations on Earth, so my work has a lot of polish. It has nothing to do with trying to be "better than" anyone else. It's just the way I am. I feel it's pretty good.
I've certainly encountered worse. When I do, I take it as a lesson, and don't get too bogged down in nursing a grudge. I also regularly encounter better, and I like to take that as inspiration.
Additionally, 27 years at a Japanese corporation taught me to back up what I say. If I say "I do this," then I'd damn well better be able to prove it; which is a big reason that I keep linking to my work. One advantage of being old in the game, is that I have a lot of track record that I can reference.
I like working with people. I always have. I'm a decent chap. I want to be a contributor to the world. I know that writing positive, contributory stuff is a bit quixotic, but, that's me; tilting at windmills. I won't add to the negativity; even if I can't singlehandedly make things more positive.
I'm retired. I have no interest, whatsoever in ever working for anyone again. I'm not interested in selling a brand. I work for free, for folks that can't afford the kind of talent I have. Whether or not some random, anonymous Internet dude loves me, is of little concern.
Listen, this is the second time (that I know of) that you've insulted me, and I don't remember ever attacking you (or anyone else, here, for that matter) out of the blue.
Would you like to try resetting the relationship? You'll find that I'm actually a kind, generous person, with a very positive outlook on life, and a true desire to Bring Light.
I'm really, really good at some stuff, and really, really bad, at other stuff. I don't hide either.
I'm in august company, and enjoy the community.
This career is mostly leetcode with a year of cooldown time doing enough passable work to not get terminated. I completely get why employees do not care and are happy to let bad decisions by others go unchallenged.
There is a bug at my job that is costing my company several hundred a day. I could fix it or I could just ignore it and avoid having to write a ticket, deal with feedback, and generally having to speak.
Convince me to fix it.
Why would anyone give you a raise if you work with this mindset? People get raises and promotions. If you don't, the responsibility for such situation is very likely at your side.
I can get the raise/promotion for doing little besides interview prep. If you cannot beat the effort to raise ratio, the optimal strategy for me is to do a mediocre job.
A lot of management will praise B (good job, you saved our a..); creating a very very wrong perception.
I will just add one more;
- Can they learn on their own?
For ANY JOB this is ALL that matters. Languages/Tools/Frameworks etc. can all be learned as needed. But if you don't have the above character traits nothing can be done. This is also known as having a good attitude. Companies abysmally fail at identifying and nurturing these traits. They go after the secondary noise (easily measured irrelevant parameters) rather than the primary signal (nebulous and hard to measure).
I believe every HR department should be staffed/supported by psychologists from CBT and ABA domains to really nurture their people.
Their answer will usually show their (reasoning) skill and whether they care. Talking and reasoning about code is an important skill for a developer for me, so that’s what I’ll focus the interview on.
I don’t care whether the library is a good or bad choice. I don’t care about the code itself or whether it’s good or bad. I just want to know if they can tell me why it is the way it is.
I do want to care but decisions feel remote even when you ask or provide feedback and it's overlooked only for it to come back later that what you had suggested was plausible and is being done only a few months late when you've already implemented an RMQ integration that was possibly avoidable.
It's demoralizing when your company starts moving in the direction of bug resolution is simple of a legacy system whose original authors are no longer with the company and you need to be pushing out 10 JIRA tickets in two weeks. Clearly trying to turn the engineers into code monkeys how am I supposed to care in this environment?
The best way I've found to identify these people is to look for people in existing jobs which require such skills, who now want to move into development. That can be any field where there's similar personal demands to achieve a high level of skill, whether that's technical-related (civil engineer) or not (cook, musician, sport).
These people are also often overlooked by traditional hiring processes so if you can get a process in place to find them, it's a huge competitive advantage when you can't offer FAANG salaries or on-site barbers.
I've had a team member that was quite high in 3 out of 4 categories and low in actual programming skills and I found him to be a valuable team member.
I think this is the main property of seniority, with seniority comes a bit of self-assurance and not really caring if someone thinks you're a fool for not knowing what X is when you know what A - W is.
- do they document their thought process behind non-obvious choices in comments?
My code is usually peppered with links to SO, explanations of why I'm doing this or that. You never know, the next maintenance programmer to touch that code might be me. I'd like to know what I was thinking when putting that heap together.
- do they communicate about their work?
For me, that's number one. Often, really smart programmers are really terrible at communicating about what they're working on. They get into Lone Ranger cowboy mode and write tons of code without telling anyone what they're doing. They may get a lot done on their own, but it makes them nearly impossible to work with as colleagues. If I had to choose between a coworker who wasn't very good at coding and a coworker who wasn't very good at communicating, I'd gladly choose the one who isn't very good at coding.
You just scratched my itch with it.
If you are responsible, but nobody cares to fill you up on project details and latest decisions and news, you can’t make your own decisions, because decisions have to be made in line with something, not in a vacuum. They come naturally if you are aware of the situation, and do not if you aren’t. Constant info starvation leads to this behavior even in those who are fully responsible and autonomous otherwise.
Our management does that a lot. They [re]decide or [re]plan something, sprinkle few-worded contradicting tasks around, as if everyone was in course, and then get too busy to answer. So the whole day turns into an investigation because nobody can decide nothing. This “effective” management saves minutes of explanation for days of doing complete garbage and then brags on what an “effective” team we are at corporate events, while literally everybody sits smiling out of subordination having no clue what the fuck they are babbling about. (It’s not just my guess, I’ve talked to them all.)
Not claiming that you’re a boss who demands to run a business for you blindfolded. But since you’re making a list, please make sure you’re talking about truly indecisive guys and not the lack of communication.
What I wish I could figure how to reliably measure when we get around to hiring a replacement:
- do they care? They don’t have to agree with my opinions. We can hammer out a compromise with enough laughs. I just want them to care. Because there’s still a lot of things that even the best protocols, procedures, and practices can’t cover.
- can they be responsible? Or have they bought into the fantasy where they offload responsibility to a “decider” while they play the role exclusively of “doer”?
- can they and will they ask questions?? To customers, to teammates, in online forums, wherever. Or does their insecure ego prevent them from feeling the fool so that they can become the wiser?
-can they be critically honest? Admit what they don’t know when debugging, avoid conclusion jumping, candidly self asses? Or do they need some form of myopia to maintain a narrative about their abilities, their contribution, their value, or the environment around them?
If I could reliably convince myself that someone scored strong in these four areas, and had rudimentary programming aptitude we could just skip the rest of these “hiring/new employee” diatribes.