Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

121–130 of 271 posts

Re: Beware of Developers Who Do Negative Work

#121
Considering that the author writes on his resume that he lead several teams, it startles me a bit to see how easily he puts all the blame on the developer and none on the other team members (including him) and the management.

The way I see it, as a senior developer or team lead it is your job to make sure that your junior level programmers are doing good work, and if they don't, you either help them to improve or (if that's not possible) let them go. Whenever I hear a story like "this person did bad work for six months so we had to delete all his code changes and let him go" I immediately know that something is very wrong with the management of the software project in question, as in a good team structure it's just not possible that a single person does "negative work" for several months, let alone a year without being noticed.

Also, whether a developer will do good or bad work does not only depend on his/her ability, but also on the circumstances under which he/she works. Some people need more oversight and a tighter feedback loop to be productive, while others can work in a more independent way. In any case, with a good team process it is really hard for a single person to do negative work, and if it happens it's usually the fault of at least several people (due to lack of clear standards, missing feedback cycles or lack of ownership).

So if you're a senior developer or team lead, don't put the blame on other programmers, but instead ask yourself how you can build a process that makes it really hard for individual programmers to do bad work.

Re: Beware of Developers Who Do Negative Work

#122
> one influential developer didn’t like any kind of change and they were allowed to veto any forward progress

I'm a little skeptical, it feels like I'm only hearing one side of a story. How does the author justify the characterization "didn’t like any kind of change".

Re: Beware of Developers Who Do Negative Work

#123

> So if the cost of a developer who does negative work is so high, how do they get hired? Part of it can be explained by an interview process that needs improvement, but a less talked about part is the temptation to lower hiring standards. I've seen plenty of people who can reverse binary trees or fizzbang etc who are terrible additions to teams and do "negative work". That's because having a grasp of CS fundamentals…

Even though CS fundamentals and contributing in teams are somewhat different skills, in my experience the terrible developers that contribute negatively to the project tend to be those that do not have a good grasp of CS fundamentals. I mean, some problems we are faced with are very, very challenging and if somebody can't figure out how to reverse a binary tree or do a FizzBuzz, then what can he do? Also I'm hearing…

It's hilarious, because our best hires are people who had no CS education. Meanwhile, some of the worst hires were CS grads.

Things that are hard to teach: Can you work in a team, especially if some of them are remote workers? Can you leave your ego behind? Can you deal with the corporate BS that gets in the way of programming? Can you think of the user, use-cases, business value, etc of the feature/product you're developing? Can you digest technical information?

Things that are not hard to teach: CS fundamentals, programming (given a basic understanding of logic).

I won't go as far as to say a CS education is harmful, but it isn't a good indicator, either. Personally, I find CS, in trying to validate itself as a "science" (which it is not, no scientific method, just like maths isn't science, but still valuable), makes stuff over-complicated and relies on terminology far too much.

And by focussing on it, you lose a huge pool of potential applicants.

Re: Beware of Developers Who Do Negative Work

#124

> one influential developer didn’t like any kind of change and they were allowed to veto any forward progress I'm a little skeptical, it feels like I'm only hearing one side of a story. How does the author justify the characterization "didn’t like any kind of change".

The unwritten assumption is the influential dev. had less say so with the streamlined process which thereby would reduce their power in the company.

Re: Beware of Developers Who Do Negative Work

#125
post #119

Earlier quoted context omitted.

All of that apart from 5 is totaly wrong

What's the solution for source controlled database logic?

scss was what we used I am sure any decent source control system can handle your Pl/SQl or what have you.

Re: Beware of Developers Who Do Negative Work

#126
post #84
post #61

Earlier quoted context omitted.

I mean, if you understand spaghetti code just as easily as any other code, why wouldn't you write it? It would make no difference to them.

What is this reasoning? If you know the right way and wrong way to build a bridge, you'd build it wrong, because it makes no difference?

No, the reasoning is why build it to handle 600% specified load (and higher cost) if 150% specified load is sufficient?

(Not that there aren't good reasons to do this. Especially for public infrastructure which might be around for a shockingly large time. But predicting future usage is very difficult. For a small start-up, it's fair to err on the side of leaner/fix-it later IMO)

Re: Beware of Developers Who Do Negative Work

#127
post #44

Earlier quoted context omitted.

This is definitely true on both ends. At a previous company, the tech influencers believed in the archaic "do everything in the database." While we were technically using the .Net stack, we weren't allowed to do any actual business logic in C#. Instead it had to all be done in MS-SQL procedures (or at least at much as possible with very little CLR glue). Similarly at my current company, we had a product were the init…

Can you explain why you feel that "do everything in the database" is archaic? A lot of logic (especially authentication logic) can be put in the database only. Not to mention that I won't trust anything that only has application level security, and nothing at database level to check/limit it.

I've been in this job long enough to know that there is no silver bullet in tech stack, methodology, technique, etc. Yet, it took me a while to get there and even if I did it means nothing because wherever I look I see S/W houses being governed by adherents of the this or that 'true religion'. I think that most of that is just cargo cults - i.e. what happens to work for this company (and whereupon people there believe in) is taken to be the way to go for any other company/product/case.

Are SPs bad/evil/nice/safe/etc? I don't know and I cannot tell unless we are talking about something concrete. Senior devs were saying a few years ago that they are the holy grail. Senior devs are saying now that they are the devil. Go figure.

Is TDD the holy grail? Dunno - these days TDD seems to be synonymous to progress and modernity. Any opposed view seem to belong to cavemen but wasn't that so with OOP just a few months before functional became the way to go?

Anyway - you catch my drift. I'm doubly cautious when I hear people speak with the greatest conviction about this and that these days unless they are speaking off a concrete example.

Re: Beware of Developers Who Do Negative Work

#128

An even more egregious form of negative work is a developer who is stuck using out of date programming practices AND has a large amount of influence at a company. At the other extreme is the developer who is so entranced by "newer is better" mentality that they rewrite everything in an attempt to conform to "latest best practices", increasing complexity massively while introducing a bunch of bugs and huge dependencie…

I think rewriting code for style purposes extremely naive. It introduces risk and sabotages `git blame`. Still see a lot of time wasted doing exactly that, as enthusiastic developers try to illuminate the rest of the team, or make things tidy. I recommend against switching to something like "standard.js" in a live project.

Re: Beware of Developers Who Do Negative Work

#129

Considering that the author writes on his resume that he lead several teams, it startles me a bit to see how easily he puts all the blame on the developer and none on the other team members (including him) and the management. The way I see it, as a senior developer or team lead it is your job to make sure that your junior level programmers are doing good work, and if they don't, you either help them to improve or (if…

> let them go

Erm, that isn't how corporations work. First, team lead doesn't mean manager, and even then in some companies, first and second line have very little to say. HR needs to be involved, etc. Which creates more work. There are the people who simply don't care. Contractors on a gravy train or outsourced people. I've been there, there is nothing you can do in this case.

I think it's fair to say from your resume/LinkedIn that you have been shielded from such effects for most of your career. Consider that a blessing, but don't assume you always have so much control over your environment. A lot of us are more like mercenaries, making good money out of bad situations while we can.

Re: Beware of Developers Who Do Negative Work

#130
post #44

An even more egregious form of negative work is a developer who is stuck using out of date programming practices AND has a large amount of influence at a company. At the other extreme is the developer who is so entranced by "newer is better" mentality that they rewrite everything in an attempt to conform to "latest best practices", increasing complexity massively while introducing a bunch of bugs and huge dependencie…

This is definitely true on both ends. At a previous company, the tech influencers believed in the archaic "do everything in the database." While we were technically using the .Net stack, we weren't allowed to do any actual business logic in C#. Instead it had to all be done in MS-SQL procedures (or at least at much as possible with very little CLR glue). Similarly at my current company, we had a product were the init…

>At a previous company, the tech influencers believed in the archaic "do everything in the database." While we were technically using the .Net stack, we weren't allowed to do any actual business logic in C#.

There's nothing archaic about that, actually.

It ensures that your domain logic remains DRY and is not repeated for every new application or service that you connect to your data.

Post reply on HN