Another Idiot Programmer Management Technique – A Branch For Every Feature

On a job interview, I saw a new stupid programming management tactic. I hadn’t heard this one before. If one clueless twit is using it, he learned it somewhere. It must be gaining popularity.

It was obvious after a minute of interview that I wasn’t going to be hired. An underqualified boss never hires someone older, more experienced, and smarter. Instead of walking out, I decided to see what he would say.

For some software company interviews, they had a separate install for each customer, plus some custom code. That led to a configuration management nightmare, keeping track of which customer had what version. This startup was a standard Internet store. There was no reason to have more than one “trunk” code branch.

Idiot: Do you use source control?
FSK: I’ve used Subversion and others.
Idiot: Have you used Git?
FSK: Unless it’s a huge project, the differences between Git and Subversion aren’t important.
Idiot: Git supports branching and merging much better than Subversion.
FSK: You only have one website. Why do you branch?
Idiot: Each bug and feature is a separate branch!

He was really proud of himself, when he said “Each feature is a branch!” He thought he was brilliant, for managing his software stupidly.

He’s in the world-class idiot category. That’s unnecessary overhead. That might make sense on a 100 person team. This was a 3 person team! Even on a 100 person team, you’ll be wasting all your time managing merges!

The sane way is one trunk branch only. One version is tagged “production” and another is tagged “qa”. If there’s an emergency production bugfix, you can make a small branch, but also put the fix in the head revision.  Major changes might justify a branch.  It’s stupid to do it for every bug or feature, not matter how small.

If you branch for every feature, that delays discovering conflicts. If A breaks B, you want to find out right away, rather than waiting for the merge.

If management isn’t completely clueless, two people should almost never be working on the same source file. It’s a 3 person team! It isn’t that hard to coordinate.

By adding management overhead, than creates the illusion of productivity. When people spend time making and merging branches, that creates the illusion of work, when you’re just wasting time. The merge process can never be 100% automated. There will inevitably be problems when merge conflicts are not properly resolved.

“Git makes lots of branching easy!” does not automatically mean “We should make as many branches as we can!”  Just because your tools allow you to do something, doesn’t automatically make it a good idea.

Idiot: We’re looking for someone with both PHP experience and Ruby on Rails experience.
FSK: Why are you using both?
Idiot: Before I was hired, version 1.0 was written in PHP. I’m rewriting it in Rails. I’ll be done in a year.

HAHAHAHAHA!!! I’ve heard that one before! It sounds like a disaster-in-progress.

At best, it’ll take him a year to do something that should take 2-3 months. It’s a simple website, an Internet store. With lots of wasted effort, he might get something that mostly works. He also might waste a year and produce nothing, while making excuses to his bosses and squandering their capital.

After some startup interviews, I want to call the investors and say “What is wrong with you? Why are you throwing away your money?”

The hiring manager thought he was a genius, when he really was a clueless twit. A pro-State troll will say “He has a job and FSK doesn’t. Therefore, he is smarter than FSK.” In our society, a good liar will always do better than a good worker. From the idiot’s viewpoint, he should not hire me, because his bosses might wake up and decide to dump him and promote me. Even though I don’t aggressively pursue promotions, a clueless twit is always thinking that when he interviews me.  When every hiring manager refuses to hire someone smarter than him, the most skilled workers become unemployable.

When State liars say “8% unemployment”, the correct question is “Which 8%?” In a corruption-based economy, the 8% unemployed people might be the 8% most skilled workers! People say “There’s a shortage of qualified programmers!”, but that hasn’t been my experience.  Instead of finding someone who’s pretty good and letting them pick up the rest, employers want a perfect keyword match for their fantasy ideal candidate.

A pro-State troll might say “FSK should learn to bend over more. Hide your competence, so you can get hired.” My answer is “Homie don’t play that!” It’s a waste of time to work for fools. I only need to find one competent employer, so I’ll keep looking. Besides, underqualified managers excel at identifying and rejecting competent people. That’s a key parasite survival skill.

That fool thought he was a genius, when he really was clueless. He thought he was brilliant, making a separate code branch for every bug and feature. That only adds unnecessary overhead. He was rewriting a working website from PHP to Rails. I’ve seen that fail before.

4 Responses to Another Idiot Programmer Management Technique – A Branch For Every Feature

  1. I’ve been in interviews where candidates like you were rejected. Usually the mimics can’t find a reason to not hire someone intelligent and they use the cop out: “The candidate is not a culture fit.”

  2. Anonymous Coward August 28, 2012 at 2:58 pm

    I went for an interview for at a Swiss bank in London. I had to make three different trips to their offices for interviews. I got 100% in their 45 minute written test. In a follow up technical interview I got all the questions correct, apart from a silly question about a specific proprietary name for a config file.

    I was told I wouldn’t fit in with their people when I got rejected.

  3. Anonymous Coward August 28, 2012 at 3:12 pm

    I remember in my first job a colleague was looking over a potential candidate’s resume (CV). He made a comment about “Why isn’t it about the programming anymore? We actually do stuff here.”

    I think he was saying that writing a working software product that really works and does useful work for users, is very different to just playing around with buzzwords and technology.

    I think he was right. Good programmers that can actually right good code get pushed out.

    In another job, a clown was going made about CORBA boxes. “Box, box, box” the clown said. A colleague commented that at some point you have to write code in between the curly brackets.

  4. Speaking for the other side (that being the “idiot hiring manager”) I can tell you what my thoughts would be in the same situation as this person. “Not a culture fit.” Or to remove the sugar coating, “Arrogant asshole that thinks he knows everything best.”

    I don’t really care if you agree with my technical decisions or not. I would be challenging your opinion, in this context, to see can you stand behind your opinion and can you defend it without sounding like a self righteous asshole.

    Going by the ring of your post, you completely failed the critically important asshole test.

    Hope you ended up finding a place that tolerates cultural cancer ;)

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>