Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

171–180 of 271 posts

Re: Beware of Developers Who Do Negative Work

#171

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…

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 time just reading it) - If you don't understand the existing code really well, then you cannot produce good work.

One of the worst things I keep witnessing is managers rushing new employees into finishing tasks quickly - This is really bad because new employees don't understand enough about the code to be productive; when you rush them, you essentially force them to implement dirty hacks which will end up costing way more in the medium and long term.

Most managers don't like to pay engineers to lean/understand stuff - They want to pay for code that works. Engineers should be treated more like managers and less like office cattle.

I've seen so many horrible managers in this industry and they always get away with it by blaming the engineers.

Re: Beware of Developers Who Do Negative Work

#172
post #159

Earlier quoted context omitted.

* Big-O. It's basically enough to know when an algo is going to perform horribly - e.g. O(n^3) - and even then you might choose it because it's simple or your n is currently small. Anyway, senior dev or architect can make this call way better than any grad could, CS or not. * Data structures. Many high-level languages now have better basic data-structures than many devs could write, even if they know the theory. I co…

> But, if soft skills are really that easy to teach, I have several, lucrative opportunities for you. Meanwhile, CS courses online are a dollar a dozen or free. Honestly, if you could write up some stuff about this, I'm sure several people on HN would appreciate truly actionable advice on how not to accidentally be an asshole. Even better, if you can somehow make great devs into great managers, that's also worth gold…

"How to Win Friend and Influence People" is a bit dated, but has some good, actionable advice. I find when people hear about negotiations/promotions/job offers they've missed because of poor communication abilities, and change their tune quickly.

But once you're into adulthood, it's rare to get constructive feedback about social skills (even from friends). So it can be catch-22, especially if you aren't very attuned to the reactions of others. It isn't that they don't want to change, but if you aren't charismatic or confident, you're going to have different outcomes in the same situation, so it's self-reenforcing. And infuriatingly, the intrinsically high-charisma people don't know what's needed.

A book I can recommend is Keith Ferrazzi's Never Eat Alone. I find the name-dropping cringe-worthy, but it made business relationships click for me, which got me to do more social stuff, etc.

Re: Beware of Developers Who Do Negative Work

#173
post #87

Earlier quoted context omitted.

Absolutely. SQL is great, and having the DB just give you the correct data from the get go is convenient. But in the case where complex logic is necessary, SQL is much more difficult for correct implementation than something more expressive. You _could_ delve into cursors or long merge statements or what have you, but in business logic specifically, the code will be read and altered numerous times by several differen…

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.

[deleted]

Re: Beware of Developers Who Do Negative Work

#174

Earlier quoted context omitted.

That CS fundamentals and programming are easy to teach is a myth that keeps being perpetuated and I don't understand why. I'm also involved in an education program for children and as a matter of fact computer science is among the most difficult subjects to teach, right up there with math. Yes, you can increase interest and engagement by better teaching methods (e.g. playing and building games), but that CS is hard i…

* Big-O. It's basically enough to know when an algo is going to perform horribly - e.g. O(n^3) - and even then you might choose it because it's simple or your n is currently small. Anyway, senior dev or architect can make this call way better than any grad could, CS or not. * Data structures. Many high-level languages now have better basic data-structures than many devs could write, even if they know the theory. I co…

>Data structures. Many high-level languages now have better basic data-structures than many devs could write, even if they know the theory.

I would say that ALL high level languages have basic data structures, and that those data-structures are better then 99% of the data-structures that users would/could write. Just because to be included in the language the coding level is very very high.

Re: Beware of Developers Who Do Negative Work

#175
post #87

Earlier quoted context omitted.

Absolutely. SQL is great, and having the DB just give you the correct data from the get go is convenient. But in the case where complex logic is necessary, SQL is much more difficult for correct implementation than something more expressive. You _could_ delve into cursors or long merge statements or what have you, but in business logic specifically, the code will be read and altered numerous times by several differen…

Write your stored procedures in any language you like. Postgres supports pgSQL, Tcl, Perl, and Python out of the box, with third-party bindings for some other languages. When procedural coding is necessary, use a procedural language, in your stored procedures. What's the problem?

Valid point. I should have been more clear in my original post. The issue was more that it was institutionalized to write all stored procedures in MS-SQL, rather than utilizing available CLR options (at least for the vast majority of the time). It should be noted that I'm complaining about a specific company's development method and not the practice altogether.

Re: Beware of Developers Who Do Negative Work

#176
post #157

Earlier quoted context omitted.

That CS fundamentals and programming are easy to teach is a myth that keeps being perpetuated and I don't understand why. I'm also involved in an education program for children and as a matter of fact computer science is among the most difficult subjects to teach, right up there with math. Yes, you can increase interest and engagement by better teaching methods (e.g. playing and building games), but that CS is hard i…

> I'm also involved in an education program for children and as a matter of fact computer science is among the most difficult subjects to teach, right up there with math. Yes, you can increase interest and engagement by better teaching methods (e.g. playing and building games), but that CS is hard is indisputable. I'll dispute it. I did a year of a split maths/computer science degree, found the computer science easy,…

As I happen to know which course you're talking about, I would point out that the module of CS you took was the far easier half of the first year material, which was open to people from a variety of other subjects, and designed with that in mind. (And indeed, the Maths dept recognises this and doesn't reduce the workload to compensate for Maths students who choose it.)

While I wouldn't say the rest of the course pushed me exceptionally hard, and I do wonder if Mathematics might have been more useful overall, I don't think that module is particularly representative of the difficulty of the CS course.

Re: Beware of Developers Who Do Negative Work

#177

Earlier quoted context omitted.

That's a valid point of course, thanks for pointing this out! I assumed that the organization in which you work is at least partially functional and that management has an interest in ensuring good working conditions, which as you say is not always the case. But even if you're not in a position to do hiring/firing decisions there is still a lot you can do to make it harder for other people to do bad work. One of the…

I agree. Funny story with the code review, we had that. But several devs kept submitting broken/bad code, so they could tell their manager "oh, I'm waiting on a code review". The loss of productivity due to other devs trying to do constructive code reviews was staggering. One guy was asked to leave a project after he submitted 17 updates to the same commit, and all of them failed basic (and luckily automated) linting…

In the bad/broken code it again sounds like poor management - instituting the 'bums in seat' checklist of was present for a code review, versus the qualitative check of 'had done work that was worth reviewing'.

Re: Beware of Developers Who Do Negative Work

#179

Earlier quoted context omitted.

That's a valid point of course, thanks for pointing this out! I assumed that the organization in which you work is at least partially functional and that management has an interest in ensuring good working conditions, which as you say is not always the case. But even if you're not in a position to do hiring/firing decisions there is still a lot you can do to make it harder for other people to do bad work. One of the…

I agree. Funny story with the code review, we had that. But several devs kept submitting broken/bad code, so they could tell their manager "oh, I'm waiting on a code review". The loss of productivity due to other devs trying to do constructive code reviews was staggering. One guy was asked to leave a project after he submitted 17 updates to the same commit, and all of them failed basic (and luckily automated) linting…

Of course there are developers who bring problems to projects.

However, many of the problems are organizational: I have seen some projects place sizeable incentives on any bug fixes (e.g., highly value number of such submissions / week), which encourages people to do quick fixes for simple things, not important ones and does not penalize for poor performing software and convoluted code. If one finds itself in this environment, IMO it is best to run away.

I wonder why such organizational behavior is very difficult to change -- I have seen, twice, smart people brought in to clean up a project stuck in this state. They were given freedom to run it the way they saw fit (upper management knew the project is failing) and both times they failed to change it.

Re: Beware of Developers Who Do Negative Work

#180
post #87

Earlier quoted context omitted.

Absolutely. SQL is great, and having the DB just give you the correct data from the get go is convenient. But in the case where complex logic is necessary, SQL is much more difficult for correct implementation than something more expressive. You _could_ delve into cursors or long merge statements or what have you, but in business logic specifically, the code will be read and altered numerous times by several differen…

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 helps to describe that complexity in a way that is easier to grok for a larger number of developers.
Post reply on HN