Stick To Your Guns

A phrase meaning, "Do what you know to be right regardless of consequences." An anti-AntiPattern.

What's an AntiAntiPattern?? Just a Pattern? Or does it form a third distinct entity, so that there's an infinite hierarchy? AntiAntiAntiAntiPatterns??

It doesn't always mean "regardless of consequences", BTW; sometimes the nuance is "despite strong opposition".

It is neither Pattern nor AntiPattern - it's just a neutral behavior. PlayToWin? is the non-AntiPattern.

[Hmm. "Despite strong opposition" doesn't seem to capture the sentiment I grew up with in learning and using this phrase. Is there an AmericanCulturalAssumption here, maybe?]

Nope. See this UK site, for instance:

Hmm. It's a military idiom, then - not a wild west one. 'Guns' probably means 'Cannon'.

Note that in general, personal experience with language can acquaint one with a meaning, but it's harder to be sure of lack of other usages. Lack of evidence isn't evidence of a lack, and all that.

The phrase refers to remaining at your post during a battle, instead of running away. That's an example of playing to not lose, not playing to win.

Ahh. In the light of this context, the phrase makes even more sense. "Guns" would refer to artillery pieces, of course.
Someday, I'll tell you how I got sacked this time.

By sticking to your guns, I expect.

Absolutely not. I quietly and politely floated the idea of daily builds (helpful if you have >3 million lines of code, all of it receiving sporadic upgrades from various sites). The idea was viciously trounced. So I decided not to advise them to stop forking the code base when the wind blew, or to give all programmers equal access to the entire CVS tree, or to give everyone equal access to Bugzilla, or to let their build create all product lines simultaneously, or implement web-based acceptance test fixtures, or let domain experts pair program with software engineers instead of write endless cruft, or doing all the things this wiki advises, etc.

So I hunkered down and quietly but efficiently did every job assigned. I did them TestFirst because I know how, and this reflected in my velocity. But, because ethnicity was more important than metrics, mine were ignored.

They hired me because I talked about tests during the interview. (_That_ was sticking to guns, and taking a risk!) But it turns out they only wanted magic fairy-land tests that would find their bugs automatically without changing any of their fucked-up process.

The CTO's favorite game was to keep all the projects in his head, and micro-manage everyone by e-mail. That's how he told the owner he "runs a tight ship". It absolutely destroyed teamwork. You weren't allowed to help anyone without getting permission in your minute-to-minute schedule from the CTO.

Each e-mail goes out with an absurdly short time estimate announcing how soon the feature will be done. The CTO himself was regularly way over-time on the trivial projects he would take on. His excuse was probably that he was too busy micromanaging everyone else, so it was their fault. I became one of his favorite excuses, even on unrelated projects.

My big summer project was the GUI tools with a non-Latin user interface. It had only been localized to Latin languages like English or German before. But it was full of speculative code to deal with the alternative character set. All of that code had been typed in (by a GUI "expert"), and none of it had ever executed before.

Did you know speculative code is bad?

Every time I dropped non-Latin into the damned thing, a bug would pop out. I would add it to the list, and then demand the CTO sort them in priority. Plenty of the bugs were in the logic code that I could not touch. Those bugs are still there now; the executive who owns that code still has not fixed them. Further, he repeatedly announced I should just put in some dumb patch to un-do the bug before displaying. I would add the exact patch requested, and it would cause more bugs.

So, after half a year of me writing no new bugs, writing lots of new features with squeaky clean code, cleaning up the build process for their GUIs, and finishing all his time estimates very closely, the CTO (who has his position by marriage) decided to try to get rid of me. [Of course I was looking for a new job at the time, but not as hard as I should have.] The CTO told me to report to my two-faced office mate. We had already done some very successful project together.

This guy now had the option of defending me each time the CTO called him up and busted on me in their native language, or keeping his lips firmly planted on the CTO's sphincter. Then the non-Latin distributor sent a mail requesting 15 more bug fixes. Of course 8 of them belonged to people of the same ethnicity as the CTO.

My office-mate sent me an e-mail requesting I read the mail from the non-Latin distributor, document all the bugs, and fix all the bugs. Trying to behave like his boss, he estimated two hours. I then tracked, with daily e-mails, a velocity of 2 bugs per day.

When I finished a week later, he then sent an e-mail everyone, including executives who never heard of me, announcing that I had deliberately ignored his time estimate, and that every single thing I eventually did right on the project had only been because he had caught me doing the wrong thing and then ordered me to do the right thing. He made political kindling out of minor issues that I had accidentally thought resolved when we encountered them.

Because I am the wrong ethnicity, I was not allowed to challenge this e-mail, or appeal to anyone. And because he is the right ethnicity, this bullshit made him look good, and oppressed by me.

During this entire time, the home office containing the CTO had never downloaded and compiled my code, using my build scripts, or run all my tests. I asked them to months ago.

Finally, the CTO started the new guys on the next version of the project - at his site so he wouldn't need to (literally) lie awake at night worrying about what they were doing. They proceeded to write the usual sloppy VisualBasic code without build scripts, or tests, and with the usual high bug rate that makes the CTO feel secure and happy.

So I suppose I could have guessed the end would come soon when he sent me e-mails saying he had (finally!) checked out my source, and was looking for ways to take out all these UnitTests.

Today, I wonder what their bug rate and velocity is, but I'm certain they still don't track those, or write tests. They have a history of losing engineers who got tired, and losing them because "it wasn't working out". Their excuse for firing me was the same symptoms as the MicroManagement gave everyone else - low "velocity", and poor teamwork.

-- Names withheld to protect the guilty (although it's obvious they were PhlIp [as usual] and Try for a few good laughs, or an easy-to-land job in sunny SanDiego)

You should be happy to be out of there.

Delirious. But, fortunately, anyone I'd want to work with next would laugh their 'nads off, not blame me for this shit.

{After widely-distributed criticism, I'd probably tell them what's really going on from your perspective, along with examples. If you do everything with a purpose and reason, you can always defend your actions logically. You might still get canned, but at least leave knowing you did your best and were a straight-forward person. Of course, paying the bills is another matter (LieOrStreet). Corporate tribalism is common; though not always related to ethnicity.}
In the Good Ol' US of A this story would end with an account by the local news media of a "disgruntled ex-employee" entering the building with a handful of armaments and blasting away at the PointyHairedBoss and his cronies. You know, all my former clients know about my firearms collection. Phunny, but I've never had this particular problem. (Heh.) -- MartySchrader, who makes jokes about things Yerpians and other furners don't think is very humorous at all

Uh, the PointyHairedBoss and his sucker-up were Yerpians. That put them out of range for conventional tactics... But rest assured the ScapeGoat was a red-blooded 'Merrikin.

Hey! You misspelt "'Murkin."
CategoryIdiom, CategoryRant

View edit of August 28, 2012 or FindPage with title or text search