Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

201–210 of 271 posts

Re: Beware of Developers Who Do Negative Work

#201
The funny thing is I read a the first few paragraphs and thought two things. .

1 - proper onboarding

2 - standardized code

My first gig as a developer was at a place that hammered out some 2,000 websites a year. When you start to think about that number, you get a headache. That roughly meant that our devs were required to cut up a psd, code and integrate 15-18 sites a month.

In order to do this, you need to have really strict standards. You need to have a stable, repeatable process in place to be able to handle that many sites in a year.

Two things the company did to ensure this was to first to have a two week training. Then you did pair programming for another two months. By the third month, you were far enough along where you knew the standard templates, the naming conventions, the JS conventions and you stuck in that lane and didn't do anything outside of that without a senior devs approval.

This lead to having standardized code for every site that was built. You could pull out a site that was developed two years ago and easily change or update the code because everybody coded the same way so it was easy to dig into the code and find or change something. The advantages were obvious. Minimal cross browser issues, standardized coding by developers, faster dev times, less errors and weird coding issues like the author points out. It literally came down to then how fast a dev can code and how productive he can be.

Sure, it was a little repetitive and boring at times, but the efficiencies were undeniable. That company was the last place I worked at where they went to such great lengths to train and standardize their processes. I've since run into many of the issues the author points out because of the lack of coding standards and training new devs to those standards.

Re: Beware of Developers Who Do Negative Work

#202

> 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…

Most CS education has only limited applicability to real-world software product development. It's like hiring a BS Physics graduate to do mechanical engineering work. Sure a smart person can eventually learn to do the practical engineering stuff but it will take a lot of training and mistakes along the way.

Re: Beware of Developers Who Do Negative Work

#203
post #180

Earlier quoted context omitted.

And your point is? yes sometimes you have complex business logic but throwing way all the benefits of using a RDBS is a sign that your developers cant hack SQL properly.

I would be the first one to admit my SQL chops are probably lacking, so perhaps this is just my own bias revealing itself. I'm not saying to _not_ use stored procedures. I'm just saying that throwing literally _all_ of the business logic in them feels a lot like a silver bullet. I've always felt that any of the more "standard" backbend languages would be a better choice for that complexity, since their expressiveness…

you mean like COBOL :-)

Re: Beware of Developers Who Do Negative Work

#204

Earlier quoted context omitted.

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 de…

> 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)

Science can mean different things to different people. While in the english speaking world it is often equated to "natural science" this not the case for all languages.

Take the famous Gauss quote for example: "Mathematica regina scientiarum est et theoria numerorum regina mathematicae est."

In german, CS (Informatik) is widely regarded as a "structural science".

https://de.wikipedia.org/wiki/Strukturwissenschaft

Re: Beware of Developers Who Do Negative Work

#205

Not all developers make positive contributions, but no single developer in a team of developers can make a non-positive contribution. They can't, because as a team, you've decided to allow this person to make contributions alone. You need to own that contribution. If you don't want to that responsibility, there is a solution: code reviews. Anything that gets submitted is literally something you've agreed to support a…

Producing a lot of code which has to be reviewed without ever actually landing any of it is itself a non-positive contribution. Code reviews are wonderful and I'd never want to go back to working on a team that didn't do them, but they do take time from the reviewers.

That's true, though I was specifically focused on actual code contributions that make it into a production branch.

Re: Beware of Developers Who Do Negative Work

#206

Earlier quoted context omitted.

I think calling a developer 'awful' is rarely accurate. If that developer has only ever made two contributions to the project, then obviously that developer isn't in the right mindset to make useful contributions. I find that when I switch to part-time on a project, my performance degrades. Producing good code requires that you understand the existing code REALLY well (and that implies that you have to spend a lot of…

> I've seen so many horrible managers in this industry and they always get away with it by blaming the engineers. Same. Been there, seen that. Seen good managers, seen bad managers, seen place without managers. I don't understand why there are managers in this industry.

As someone with a fantastic manager: it's great. He handles the planning and resource allocation for projects and makes sure that I have everything I need to be able to develop, this includes making sure that any external dependencies (like people not on our team) do their stuff and that the team as a whole is maximizing our time.

Whenever for some reason something is blocking me that isn't directly code related, he's the best point of contact to get stuff moving again.

Re: Beware of Developers Who Do Negative Work

#207
post #45

Not all developers make positive contributions, but no single developer in a team of developers can make a non-positive contribution. They can't, because as a team, you've decided to allow this person to make contributions alone. You need to own that contribution. If you don't want to that responsibility, there is a solution: code reviews. Anything that gets submitted is literally something you've agreed to support a…

I have seen the type always conform to a style or structure. The designers like to talk to design bent leads on devevelopment and manage only a subset of issues that could materialise. A dev team for three or more years brings a better structure to code and developement. Just the fact, the leisure time well spent in code and banter bring enough structure to the team. I guess you have to know your team better than you…

I'm honestly not sure what you mean here. I can't make sense of it.

Re: Beware of Developers Who Do Negative Work

#208
post #52

Earlier quoted context omitted.

It's a balance you need to run. But as a PM, spaghetti fixers are indeed very nice to have around. Keeping an eye on technical debt is important though.

The hardest part isn't the technical debt, it's detecting when spaghetti fixers are actually adding features to the product.

This is another great point. Our support team is directly linked to a spaghetti fixer, this is great bc bugs are squished instantly.

But sometimes a new checkbox appears and that is a real problem.

Re: Beware of Developers Who Do Negative Work

#209

> 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…

> I've seen plenty of people who can reverse binary trees or fizzbang

That's the tests for entry level programmers who are 16-22: It's the basics for writing code (that could be learnt alone with a computer), it doesn't require to have had a programming jobs or to have maintained software in the long term in production.

Re: Beware of Developers Who Do Negative Work

#210
post #85

Earlier quoted context omitted.

From what I gathered one of the biggest problems of stored procedures is that they do not play well at all with source control and associated tooling such as code review.

I just tried to commit a stored procedure to git and it seemed to work. I then asked a colleague to review it. This also worked.

Ok. I did not know that. As I said this is what I have gathered from what I have read around as a common complaint. Out of curiosity, what is the testing-deployment cycle of stored procedures in source control? How do you assure yourself that the database uses a procedure coming from a specific commit?
Post reply on HN