this post was submitted on 25 Apr 2024
680 points (97.4% liked)

Programmer Humor

18961 readers
986 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 106 points 3 months ago (3 children)

What if I told you a lot of companies don't have solid review requirement processes? Some barely use version control at all

[–] [email protected] 32 points 3 months ago (2 children)

Sure, I understand... but if you're at one of those companies you should introduce it.

[–] [email protected] 27 points 3 months ago (1 children)

Yeah... Usually if you join a company with bad practices it's because the people who already work there don't want to do things properly. They tend to not react well to the new guy telling them what they're doing wrong.

Only really feasible if you're the boss, or you have an unreasonable amount of patience.

[–] [email protected] 3 points 3 months ago

Usually, the boss (or people above the boss) are the one's stopping it. Engineers know what the solution is. They may still resent the new guy saying it, though, because they've been through this fight already and are tired.

[–] [email protected] 9 points 3 months ago (2 children)

Eh, if everyone knows what they're doing, it can be much better to not have it and rather do more pairing.

But yes, obviously Steven does not know what they're doing.

[–] [email protected] 8 points 3 months ago (2 children)

Better to not have version control!? Dear god I hope I never work on anything with you.

[–] [email protected] 16 points 3 months ago* (last edited 3 months ago) (2 children)

Pretty sure they meant to not have review. Dropping peer review in favor of pair programming is a trendy idea these days. Heh, you might call it "pairs over peers". I don't agree with it, though. Pair programming is great, but two people, heads together, can easily get on a wavelength and miss the same things. It's always valuable to have people who have never seen the new changes take a look. Also, peer review helps keep the whole team up to date on their knowledge of the code base, a seriously underrated benefit. But I will concede that trading peer review for pair programming is less wrong than giving up version control. Still wrong, but a lot less wrong.

[–] [email protected] 2 points 3 months ago

Agreed. Even self-reviewing a few days after I wrote the code helps me see mistakes.

[–] [email protected] 1 points 3 months ago

Well, to share my perspective – sorry, I mean, to explain to you why you're wrong and differing opinions are unacceptable:

I find that pairing works best for small teams, where everyone is in the loop what everyone else is working on, and which don't have a bottleneck in terms of a minority having much more skill or knowledge in the project.

In particular, pairing is far more efficient at exchanging information. Not only is it a matter of actively talking to one another just being quicker at bringing information across, there is also a ton of information about code, which will not make it into the actual code.

While coding, you've tried two or three approaches, you couldn't write it as you expected or whatever. The final snippet of code looks as if you wrote it, starting in the top-left and finishing bottom-right, with maybe one or two comments explaining a particularly weird workaround, but I'd wager more than 90% of the creation process is lost.

This means that if someone needs to touch your code, they will know practically none of how it came to be and they will be scared of changing more about it than at all necessary. As a result, all code that gets checked in, needs to be as perfect as possible, right from the start.

Sharing all the information from the creation process by pairing, that empowers a team to write half-baked code. Because enough people know how to finish baking it, or how to restructure it, if a larger problem arises.

Pairing is fickle, though. A bad management decision can easily torpedo it. I'm currently in a project, where we practically cannot pair, because it's 4 juniors that are new to the project vs. 2 seniors that built up the project.
Not only would we need to pair in groups of three to make that work at all, it also means we need to use the time of the seniors as efficiently as possible and rather waste the time of the juniors, which is where a review process excels at.

[–] [email protected] 2 points 3 months ago (1 children)

Ah, no, I meant a review process. Version control is always a good idea.

[–] [email protected] 2 points 3 months ago

Ah, yeah that makes a lot more sense

[–] [email protected] 1 points 3 months ago

That's a big fucking "if"

[–] [email protected] 12 points 3 months ago* (last edited 3 months ago) (1 children)

I've seen people trade zip archives like Yo-Ge-oh cards useing excel as a source control manager so it could be much MUCH worse

[–] [email protected] 10 points 3 months ago* (last edited 3 months ago)

Dude, put content warnings on this. I have trauma from shared drives and fucking Jared leaving the Important File open on his locked computer while he takes off for a week, locking out access to anyone else.

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago) (1 children)

Those companies probably also pay ABSOLUTE SHITTER

[–] [email protected] 2 points 3 months ago

Competence is expensive. Supply is low and demand is high.