The person I got in a fight with is kind of a big deal. He is basically a manager; that's not his title but that's the basic role he does. One of the things he manages is an Android app that uses the thing I own. We'll call his team "Partner #2." This guy knows nothing about Android. It got as far as him being on a call with a bunch of super important people, telling people in my organization that we should rewrite the WebView control. In two weeks.
My real beef with him wasn't actually the stupidity. I mean, stupidity by itself? That's just like a normal Tuesday in the corporate world. No, this guy decided to (or was told to) use the software my team owns in the android apps his team makes. So I can understand if he's not happy about that. I mean my team has literally spent a year and a half corrupting our code for partner #1. However, instead of talking to us about Partner #2's needs, he had his team just take our source code and fuck around with it. Then he did come to us, to tell us what we should to with our component, and also to tell us that we should use the same development tools as those fuckers, to make it easier for them to fuck around with our code.
Given that I'd had a constant stream of headaches and a six month project delay caused directly by Partner #1 fucking around with our code, I wasn't about to allow a second partner to do it. I jumped all over this situation, trying to quash it. Unfortunately, this guy was better at politics. He called me defensive or embarrassed or something, so I gave him a list, from memory, of every single problem that happened because partner #1 fucked around with our code, and he ended our conversation.
That was then. Since then, a bunch of bullshit with partner #1 happened. We are, theoretically, shipping our crap to them a mere 6 months late. I've stayed at the office past midnight on a number of occasions in order to make that happen. I still don't believe that it is going to happen. For example, those layoffs in the news? Yeah, they fired the entire test team. During the test pass. For the release that is 6 months late and which will slip another two months if we don't get it out in a certain window. Its cool, though, man, because...because "test automation."
So partner #1 is placated for the moment. Back to partner #2. According to the PMs, partner #2 was breathing down our necks for an early drop. So I burn the midnight oil once more and get the feature working a week and a half ahead of schedule. And this is where things get interesting, and this is how I accidentally learned a very specific political move.
One of the tricks I used to get the feature done earlier was to not use Test Driven Development (TDD) and, to actually not write any unit tests (yet). I just coded the entire feature in one shot and ran a few tests by hand to know if its working. Without unit tests though, I can't check in the code. I can only provide the built version by email (obviously since M$ didn't write Git we have to use a centralized source control system instead of Git, and this source control system is allergic to java, so...email becomes a surprisingly key component of our build system).
Sounds like a simple detail, right? It is. But it becomes very, very important when you are dealing with a team that needs to stop sticking their fat fingers into your source code. They need this particular feature I wrote, badly. They need it more than all of the bullshit reasons they made up to fuck with my code without talking to me first. And the only way they can get this feature is if they integrate with the thing I own properly, using the built jar file I provided. This, my friends, is called leverage.
And, sadly, I literally didn't realize that a strategy like this could exist until I did it by accident.
So, I doubt, dear reader, that you will ever need this exact strategy. I am simply sharing it to add to the knowledge base that you will draw on for your own political battles.
Unless you work in one of those places where all you do is write software.
They should really make a version of the office, but for jaded corporate programmers....