Live data from Hacker News

How to Make Other Developers Hate to Work with You

anaxi.com

131–140 of 191 posts

Re: How to Make Other Developers Hate to Work with You

#131
post #81

Earlier quoted context omitted.

A former primary developer of my code base had something wired backwards in his brain. The code is full of double negatives: if(!FeatureNotDisabled){ .... } It drives me absolutely bonkers!

For me this often happens incrementally. Like they started with "if (FeatureNotDisabled)" and then locally refactored the code until it was "if (!FeatureNotDisabled)". The problem is that they then didn't go back for another pass before commit, and reverse the double-negative by changing the variable name and semantics. This could be due to laziness, ignorance (it works, what's the problem?), fear (it works now, let'…

I could understand that evolution, but I have become convinced that this particular developer simply worked with negative logic in his brain. Even the configuration files will have:

Feature1Disabled=False

Feature2Disabled=True

Feature3Disabled=False

Instead of using feature flags to enable a feature, he used feature flags to disable features. He was very consistent and the logic is all correct, simply inverted.

Re: How to Make Other Developers Hate to Work with You

#132
post #39
post #37

People love to work with me, but managers love all of those flaws.

Did you mean "People hate"?

No, I mean I don't get promoted for trying to hear what other people say, while managers can't say enough nice things about the hipster-ass who breaks everything he touches trying to turn it into GraphQL no matter what.

But I didn't write that very clearly the first time.

Re: How to Make Other Developers Hate to Work with You

#133

Earlier quoted context omitted.

Point 3 though. At some point how can you be so demure? Sometimes people are just stupid and wrong and need to get checked. Some guy working for a year getting nothing done and pretending like its some other problem than what it actually is needs to be forcefully briefed on their ignorance not 'hrmm well you see we tried it this way'.

> needs to be forcefully briefed This will let you feel superior and get the pleasure of making the dumb person feel terrible, but it really won't accomplish anything productive. What do you hope to gain by doing this? Will they start being smarter? Will they be better at their job? I'm sorry, doing what you describe is just being a bully. If management isn't dealing with the problem person you should privately make…

I agree it's a management problem. However, I've encountered the case where a developer abruptly teleports from "plateau of sustainability" (high confidence, knowledge and experience) instantly to "Mt. Stupid". And every time it was a case of users becoming confused with UI and doing something that caused injury (including data loss). In that case the developer consistently blamed both the user and user advocate.

I do not think it's bullying to give a bully a taste of their own medicine. It may not solve the problem, to be sure, but pushing back on bullies is not wrong. Pointing out their cognitive dissonance, and drawing a line from their stubbornness to being a bad developer is not wrong either. In particular where the manager doesn't care because 90% of the time that developer is delivering the goods, and just doesn't properly assess the ensuing (UI/UX) hostility.

Bad UI will piss off users. It's I completely expect they should express that frustration directly to the responsible developer. If that developer can't handle it, both accepting the criticism and making appropriate design adjustments, get out of the UI/UX development business.

Re: How to Make Other Developers Hate to Work with You

#134

How everyone can be right, but everyone gets annoyed anyways. Cast: Developer A, a younger developer who is recognized company-wide as an expert in the latest features of blb++. Developer B, an older developer who maintains widely used legacy code in blb++ involved in about 80% of a billion dollar multinational's profits. Dev A: Your group should change the coding style in this application to the new standard. Dev B:…

Dev A wins because management is trying to fire Dev B. Dev A works longer hours and is paid less because they're young and stupid and don't have a family. Dev A is better for business.

Dev B gets laid off, and Dev A works until burnt out.

Game over. Everybody lost except management.

Re: How to Make Other Developers Hate to Work with You

#135
post #65

> Developers can’t easily go back to where they were right > before an interruption. They need to get into the mindset > for development and then slowly trace back to where they > left off. And every fellow developer knows that. I used to think like that too, but after 10 years programming in many environments, now I'm inclined to disagree. If I cannot refocus immediately after interruption - I know I'm doing somethi…

I agree, right now I find it hmm weak excuse. If someone is junior then OK, but if someone is claiming 5yrs of experience I am not getting those kind of excuses from that person.

Re: How to Make Other Developers Hate to Work with You

#136

Earlier quoted context omitted.

Arrogance has very little to do with thinking you know a lot, or disagreeing with others, and everything to do with failing to follow social protocol. If you let other people speak, pause long enough that they feel like you are giving their words a fair evaluation, and then don't use words that they must interpret as telling them they are wrong you will not be seen as arrogant. This is true even if you rarely or neve…

Point 3 though. At some point how can you be so demure? Sometimes people are just stupid and wrong and need to get checked. Some guy working for a year getting nothing done and pretending like its some other problem than what it actually is needs to be forcefully briefed on their ignorance not 'hrmm well you see we tried it this way'.

I find situations where I feel someone else "needs to be forcefully briefed on their ignorance" are situations where I likely don't have the rank, influence, or audience to improve the situation anyway.

I don't really subscribe to Kant-style categorical imperative thinking or defeatist attitudes, but in this case I've always made better progress changing an existing bad thing by being "demure" and accommodating. I might have agency to change things, but if an group of others have have agency to keep it the same, failing to cooperate is counterproductive unless I entirely opt-out or leave.

Re: How to Make Other Developers Hate to Work with You

#137
post #82
post #71

Here's a profile of a developer: - Easy going and pleasant. - Really interested in programming and tech in general - Talks intelligently about the problem at hand. Asks all the right questions. Agrees a plan of action in collaboration with colleagues. - Creates systems that definitely appear to work - Code looks pretty sane. Structure is right. Style seems good. - Always very responsive to problems. Jumps straight on…

Sounds like insufficient testing to me. This kind of deep/far reaching issue should have been crashing tests written before others would have seen it. Assuming that there is some testing in their work (if not; there's the answer), my guess would be that it's largely sanity testing of each functionality in a vaccuum. The coaching would probably be to demonstrate more integration-style testing, possibly using whatever…

Could also be organizational. Constantly shifting whims of stakeholders, etc. Yes, requirements change but changing major requirements without a major refactor can cause these kinds of problems with the code. Or if the developer is being given unreasonable deadlines, no time/resources for testing, etc etc.

Re: How to Make Other Developers Hate to Work with You

#138

How everyone can be right, but everyone gets annoyed anyways. Cast: Developer A, a younger developer who is recognized company-wide as an expert in the latest features of blb++. Developer B, an older developer who maintains widely used legacy code in blb++ involved in about 80% of a billion dollar multinational's profits. Dev A: Your group should change the coding style in this application to the new standard. Dev B:…

Dev A is a junior developer that doesn't understand the time and opportunity cost of rewrites. Or that projects and managers don't care about style, they want new features and stability. Doing things better going forward is great. Going back to change legacy code for style? Frankly, that's a big waste of time, and management will not look fondly on your lack of visible or impactful progress.

I was Dev A a couple of years ago. Don't be Dev A for too long.

Re: How to Make Other Developers Hate to Work with You

#139

9. Refuse to do any maintenance and only work on new projects. 10. Hide your actual productivity. IE: get done with your coding tasks in half the time, leaving other devs have to fix all the bugs that QA kick back. (This is probably a managerial issue, actually, but perpetuated by devs who do # 9.)

#9 might be a symptom of a structural problem. If developers routinely encounter problems arising from technical debt, and are continually asked to fix those problems, but are somehow never afforded the opportunity to retire the technical debt, that creates an aversion to the maintenance work.

"If it ain't broke, don't fix it; if it is broke, just use duct tape."

A lot of places have infinite budget for fixing things an a patchwork fashion, yet zero budget for planning ahead for the maintenance phase, or for scheduling preventative maintenance. It's the equivalent of never going to the doctor for a checkup, and only going to the Emergency Department at the nearest hospital when an organ explodes. Nobody wants to be in a long-term relationship with an exploding-organ person, and it's the same for code.

---

#10 is an organizational issue. If a dev has "ownership" of a particular domain, they will naturally work very hard in the short run at setting it up so that they may be as lazy as possible in the long run. But if they are continually kicked off their catbird seat of smoothly-running machinery in order to clean up other people's messes, then there is some incentive to exaggerate the effort it takes to clean up their own mess. Or to make it appear as though they have a mess to clean up.

Even worse, if no one has ownership over anything, there is incentive to always drag heels on the current thankless and tedious task just to delay assignment of the next thankless and tedious task. Do the minimum amount of work to fix the current issue, and let the next guy deal with the fallout, even if the next guy is also you. Because if you bust your ass to fix it right, the next guy won't thank you, because there is no next guy. You can only work on the stuff that is broken, and if there's not enough work to do, people get laid off.

And that is the equivalent of under-staffing the POS cashiers, so that none of them are ever idle. That strategy results in fewer customer transactions, because when cashiers are never idle, that also means that there is always a wait for customers to check out, no matter what size the order, and the cashiers have zero individual incentive to complete an order quickly. Monitoring scan rates only covers the problem, which is that employees are implicitly punished for doing their job too well. Go to Wal-Mart, and all the cashiers are always busy, but also always dragging ass, and all the check-out lines are three customers deep. Go to Publix, and cashiers with empty lanes cheerfully offer to check you out the instant you have found everything you need, and will direct you to the correct aisle if you haven't. Idleness is not just doing nothing, but is also customer responsiveness.

When other devs do this, your best tactic is probably just to follow their lead, and possibly collude with each another against management for your own benefit. The org is broken, and you won't be allowed to fix it.

Re: How to Make Other Developers Hate to Work with You

#140
post #82
post #71

Here's a profile of a developer: - Easy going and pleasant. - Really interested in programming and tech in general - Talks intelligently about the problem at hand. Asks all the right questions. Agrees a plan of action in collaboration with colleagues. - Creates systems that definitely appear to work - Code looks pretty sane. Structure is right. Style seems good. - Always very responsive to problems. Jumps straight on…

Sounds like insufficient testing to me. This kind of deep/far reaching issue should have been crashing tests written before others would have seen it. Assuming that there is some testing in their work (if not; there's the answer), my guess would be that it's largely sanity testing of each functionality in a vaccuum. The coaching would probably be to demonstrate more integration-style testing, possibly using whatever…

>the problem space misunderstood and everything patched over with little fixes to get things working for a particular case.

Sounds like testing found issues which were hacked over, but more will keep popping up because the design is inherently incorrect.

Post reply on HN