Live data from Hacker News

Beware of Developers Who Do Negative Work

blog.professorbeekums.com

151–160 of 271 posts

Re: Beware of Developers Who Do Negative Work

#151
The way I've seen it happen is this: you have some developers, some are good, some are not that good. The good developers leave, the bad stay. In time that bad developer will be the only one on the team that has 10 years experience. It will be the only person that knows all the little details of your project and so he will even get a management position, or a senior title. Of course, all those details should be documented somewhere but they are not.

Re: Beware of Developers Who Do Negative Work

#152

Earlier quoted context omitted.

Logic in the Database has the following issues: 1. it doesn't work well with source control 2. deployments, rollback, replication, synchornization - they don't work very well with db procedures 3. unless you connect directly to the db, then you must have some logic on the serverside, usually you end up replicating logic from the db to the serverside 4. Databases languages (even advanced ones like PL/SQL) are not expr…

4, 6 and 7 are my main problems with this. i occasionally have to work with a big application which is essentially written 100% in sql. you simply can't easily change parts without testing the whole thing from start to finish because automated testing at a granular level is horrible. and sql does not lend itself to encapsulation, it does everything to make it hard to break stuff down to manageable pieces and in sql e…

Its not that the logic goes into SQL that is the problem (that I usually see), its usually a poor database design and a load of code at the application level to compensate for the poor database design.

Re: Beware of Developers Who Do Negative Work

#153

Earlier quoted context omitted.

I feel your pain. Scientists & data scientists are notorious for spaghetti code. Refactoring scientists code was how I got into software engineering. I used to be a scientist, and I found restructuring/modularizing the analysis code more fulfilling than the actual analysis.

As someone who is currently in that exact situation, and is considering switching away from science, how did the actual switch from science to software go?

Really well. Dev work is way more fun than science! If you want some advice then:

- Take some time to learn some CS fundamentals.

- Make sure you know a language that someone that might employ you knows (just so they have a point of reference).

- Write some toy applications in the field you want to move to.

Re: Beware of Developers Who Do Negative Work

#154
post #119

Earlier quoted context omitted.

What's the solution for source controlled database logic?

What's the problem with source controlled database logic? Have your statements (including those that create stored procedures on setup, migrations, etc) on text files, and just load those into your Git or whatever.

The problem is ensuring deployment matches up. It's very easy to end up with subtle differences between a newly deployed database instance and a database instance that was deployed with an old version and then updated. For code you would think very hard before deploying each version as a patch to the previous version - it's easy and effective to just deploy the code afresh each time, with a complete artifact built from a specific VCS tag. It's much harder to do that with databases; the tooling just isn't there and it's hard to ensure that you wipe out previous logic but retain previous data, because data and logic are commingled. You could possibly build a system for this kind of thing, but the standardized tooling just isn't there.

Re: Beware of Developers Who Do Negative Work

#155
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.

Well, for one thing, auth logic can only live in the database when your application uses no third-party authentication providers, and while "archaic" is maybe a strong word, that's a less and less common situation these days. Even in the "enterprise" world, single sign-on via LDAP is generally the order of the day, and good luck doing that in a stored procedure...

Re: Beware of Developers Who Do Negative Work

#156
The solution to this problem is code review. Good developers do not want bad code in the codebase. If you give them authority to stop bad code getting in, it won't.

Unfortunately, 'negative work' developers are often perceived by the rest of the organisation to be doing good work. They can make quick changes and deliver results fast. It is almost impossible to measure the real impact a developer's changes has, but easy to measure how much they are doing week-by-week. Therefore, the only practical way to make the issue apparent is by stopping the bad code getting in.

So when the developer says my work is "done", it sits in code review for another 2-3 works until it is "done done".

Re: Beware of Developers Who Do Negative Work

#157

Earlier quoted context omitted.

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…

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, and so shifted into the maths degree (on the grounds that I was confident I could teach myself the computer science degree if need be, whereas I wouldn't be able to learn the maths without teaching). Now I work as a programmer.

Most of the best programmers I've worked with have had non-CS degrees - mostly mathematics/physics, but a few from chemistry/biology/engineering, even one historian. I would sooner trust a straight IQ test than CS exercises like reversing a binary tree - the first selects for general intelligence, the second selects for general intelligence plus having sat in a CS class and/or read some CS books, and is no more relevant to day-to-day programming work.

Re: Beware of Developers Who Do Negative Work

#158
If A. Random Developer can't tell that/if her changes work before checking them in, then ... how are they to justify checking them in at all?

A first alternate to actually testing things might be "conformance to a model of Best Practices for changes that we think might - maybe - do minimum damage."

Re: Beware of Developers Who Do Negative Work

#159

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…

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

To be fair a lot of people seem to have their personal identity invested in poor communication abilities, or see it as somehow "fake" to work on them. E.g. I see How to Win Friend and Influence People recommended here, but you'll see a lot of people who refuse to read it on principle.

Re: Beware of Developers Who Do Negative Work

#160

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…

Yeah, but everything takes 10x as along to fix as it took to break. There is no "average developer".
Post reply on HN