Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

31–40 of 271 posts

Re: Beware of Developers Who Do Negative Work

#31
post #10
post #6

There's this magical process called continuous integration that internalizes the impact of bad (or, more likely, misguided) developers. Don't let them merge their branch until all tests pass. If their commit breaks something while all tests still pass, then direct them to write the missing tests.

CI does nothing to prevent bad developers checking in bad code. You just end up with equally poor unit tests.

Who cares about poor unit tests in this case? It's all about the INTEGRATION tests that run on CI to make sure your bad developer can only fuck their shit up and not anyone else's. And if you have bad developers building your integration testing framework, you have bigger problems.

Re: Beware of Developers Who Do Negative Work

#32

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…

+1 to this.

I used to work with a guy like that and it created a ton of tech debt. He would write new services using a new technology for each one, not to documenting or maintaining any of them.

Re: Beware of Developers Who Do Negative Work

#33
The "convoluted code" gauge is a double-edged sword. You could also be working at a company with developers who have no experience with the benefits of functional programming. In this scenario it's those who write nested loops, branching if-statements, and mutating side-effects that are in charge and you're the bad developer for using fold and map. You could be seen as an elitist who likes to write clever, obfuscated code that nobody else can comprehend.

Not all positive contributions are worthwhile. One could simply blend in and add one more level of nesting, one more conditional, and mutate a few things here n there. After all, everyone knows what a for-loop is, right? Staying productive is important!

Well... until your most productive hours are spent chasing down errors you and your team designed.

Re: Beware of Developers Who Do Negative Work

#34
post #10
post #6

There's this magical process called continuous integration that internalizes the impact of bad (or, more likely, misguided) developers. Don't let them merge their branch until all tests pass. If their commit breaks something while all tests still pass, then direct them to write the missing tests.

CI does nothing to prevent bad developers checking in bad code. You just end up with equally poor unit tests.

If someone checks in code that breaks a bunch of tests, then you know right away. And the underlying assumption is that tests are written by multiple people with varying degrees of quality. Can bad code sneak through the tests? Of course! But to say it does no good at all is wrong.

Re: Beware of Developers Who Do Negative Work

#35
post #10

Earlier quoted context omitted.

CI does nothing to prevent bad developers checking in bad code. You just end up with equally poor unit tests.

True. Code reviews and standards are the tools to use in this case.

I've found that code reviews are one of the best ways to increase code quality. Even just talking with other developers about why they've done things is helpful in thinking about simpler options and keeping things closer to the architectural vision.

Re: Beware of Developers Who Do Negative Work

#36
post #17

"He made 2 changes to the code base over his 6-month tenure there." And the context implies those were the only 2 changes/check-ins. Seems odd that nobody questioned the low output.

This seems strange to me as well. How were they planning/tracking the work that needed to be done for their project?

Re: Beware of Developers Who Do Negative Work

#37

After reading the article, I feel like a code test and discussion and or whiteboard would have filtered the type of developer they mentioned who is a net negative on the code base.

This is a good counter-argumnent to the frequent article decrying whiteboard tests.

Only if you assume it actually works, which is the most blatantly circular logic in this thread.

This guy could have said "I feel like a daily prayer in the server room would filter bad devs" and it would be just as proven as his feeling about whiteboarding.

Re: Beware of Developers Who Do Negative Work

#38

The "convoluted code" gauge is a double-edged sword. You could also be working at a company with developers who have no experience with the benefits of functional programming. In this scenario it's those who write nested loops, branching if-statements, and mutating side-effects that are in charge and you're the bad developer for using fold and map. You could be seen as an elitist who likes to write clever, obfuscated…

To be fair, many debugging tool chains are crap with folds and maps instead of loops. And code is rarely written in anger, but often debugged that way.

Re: Beware of Developers Who Do Negative Work

#39
There are both upstream problems (hiring the wrong people) and downstream problems (having process to catch garbage before it gets into mainline). You need both as you will inevitably make a bad hire somewhere along the way. For downstream prevention you need good processes to catch poor quality code. We've found that automated (static analysis [we like sonarqube]) plus consistent human code reviews goes a long way to ensuring a high quality code base.

Re: Beware of Developers Who Do Negative Work

#40
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 and are okay with being in the code base.

Post reply on HN