Tales from the jar side: Unwritten rules in company culture, Property-based testing using jqwik, and Rainbow capitalism
We here at Yoyodyne Propulsion Systems support both Red and Black Lectroids equally, despite what you might have heard from Buckaroo Banzai and his Hong Kong Cavaliers
Welcome, jarheads, to Tales from the jar side, the Kousen IT newsletter, for the week of May 30 - June 6, 2021. This week I spent most of my time preparing my latest book, Help Your Boss Help You, for publication. I also attended a webinar on property-based testing using jqwik.
If you’re not one already, please consider becoming a jarhead by subscribing to Tales from the jar side using this link:
First, I want to talk about company culture, which has been on my mind a lot.
The Unwritten Rules of Company Culture
This week Facebook posted about the former president (and current loon, but that’s neither here nor there) on their own “about” page: In Response to Oversight Board, Trump Suspended for Two Years; Will Only Be Reinstated if Conditions Permit.
There is a lot to unpack in that decision, but others have already done that. Instead, it reminds me of an old story, which goes like this:
In a faraway kingdom, a man is condemned to death by the king. The man then pleads for his execution to be postponed by a year, during which time he will teach the king’s horse to talk. The king agrees.
Later the man’s friend asks him what he plans to do. “You can’t teach a horse to talk!” he says.
“I know,” the main replies. “But now I have a year, and a lot can happen in a year. The king may die, or I may die, or the horse may talk.”
That’s what Facebook did here. Rather than actually make a decision which could have far-reaching consequences, they postponed everything for two years, and a lot can happen in two years. The company may die, or Trump may die, or Trump supporters will lie and claim the horse is chatting up a storm, because they lie about everything else so why not that?
Yeah, it’s a talking donkey, but do you really expect that difference to matter? Also, feel free to insert your own joke here based on the other word for donkey.
Will this strategy work for Facebook? Seems unlikely, but I guess we’ll see.
The whole process says something about the ethics of Facebook as a company. Unlike most people, I don’t regard Facebook as inherently evil. I see them as the very definition of the word amoral — they lack any moral code of any kind whatsoever. Facebook’s only goal is to increase their reach, and they will do anything to make that happen, good, bad, or otherwise. If it gets them in trouble, they’ll back off, issue a mild apology, and retry the same thing later in a slightly different form.
This behavior is part of Facebook’s company culture, which flows directly from its founder. When you watch how Mark Zuckerberg behaves, it’s clear that he views any competitor as an existential threat. Despite the size and reach of the company, he truly seems to believe that they are one or two decisions away from extinction. That’s why whenever a possible competitor emerges, they either try to replicate their technology (like what they did when Snapchat turned down their alleged $3 billion purchase offer) or just buy them outright. Their acquisitions range from small ones, like friendster, to giants like Instagram, WhatsApp, and Oculus VR. I’m mildly surprised they haven’t already bought Twitter, and I expect the only thing keeping them from buying TikTok is the Chinese government, though antitrust concerns might be a factor.
How could a company the size of Facebook manage to still be so paranoid about competitors, despite having a net worth of $300 billion? Like their amorality, it’s part of their company culture. The culture of a company is defined as the set of unwritten rules for how it does business, which normally emerges from its history. Every successful company goes through a period of growth where they transformed from a small, plucky startup into a stable, powerful organization that thinks in terms of years rather than months. The decisions made during that time are given credit for the company’s success, and become the heart of the company culture, whether they actually were the real reasons for the company’s success or not.
Culture is very ingrained. It’s hard to change the unspoken assumptions about why the company is so successful, even if they’re not true.
Another industry going through convulsions right now because of unwritten rules is Major League Baseball. This article on baseball’s stupidest unwritten rules lists several of them, and you can see them play out especially when older (usually white) managers have to deal with younger (especially non-White) players and complain about their behavior, like showing any joy whatsoever.
Guess it’s okay if MLB can make money from it, right?
Company culture is why Facebook is still afraid of every new technology that comes along and is willing to try anything to grow. It’s why Google acts like an overgrown college campus, with competing fiefdoms and the company equivalent of student protests and claims about doing good rather than doing well. It’s why Apple still mandates secrecy to an absurd degree and insists on controlling its entire supply chain, even if that means placating the Chinese government and looking away from its human rights abuses.
Why bring all this up now? I realized while thinking about these issues of company culture that hey, I’m a company too, even if I only have one employee. I’ve been an independent organization for over 16 years, and I consider myself reasonably successful, so the question that occurred to me is, what’s my company culture? What principles do we here at Kousen IT, Inc, believe in so strongly that we don’t need to write them down?
I started listing some of the principles that govern how I run my company, formed from when I first entered the workforce back in the late 80s:
My customers are clients, not friends, and should be treated in a professional manner. I’m happy to be friendly with them, but this is a business and should be treated accordingly.
Giving clients good enough answers right away is much more important than giving them complete answers that take a long time to figure out.
My clients need to know that “I got this,” meaning I’ll handle any responsibilities I agree to.
They also need to know that “I got their back,” meaning I’ll support them publicly whenever anything goes wrong.
My clients know that I’ll push back if I disagree with their decisions, but not in any public way that might threaten our constructive loyalty relationship. I’ll also cooperate with them as best I can by default, and, if we do have a disagreement, I’ll tell them about it and then get back to work. Conflicts are not crises; they’re issues to be discussed and possibly resolved later.
In other words, I realized this week that I just spent the last few years of my life writing down my company culture in book form, which I called Managing Your Manager — er, no, Help Your Boss Help You.
(Some day, and that day may never come, I’ll get used to the new title. That day is not today.)
The real question is, why should anyone else care about my company principles? Why should the things I believe be of any interest to anyone who doesn’t work here?
I’m hoping that these principles, formed over many years and recently re-examined in detail, will help you in your job. Hopefully by showing you the mistakes I’ve made and what I’ve learned from them will help you avoid similar problems in your career. The fact that several reviewers used expressions of the form, “I wish I knew all this twenty years ago” is an indication that at least some of what I have to say is applicable to others, and if that makes your life and your career any easier, I’ll be glad.
Property Based Testing with jqwik
I want to add a brief technical comment to this week’s newsletter. On Friday I sat in on a webinar by Dan Hinojosa on Property Based Testing using the jqwik library. That library lets you define “properties,” which are quantities that should not change depending on inputs. The library lets you tell it to generate random inputs (including nulls and edge cases), and report whether or not they passed.
The example on their homepage in the (in)famous FizzBuzz exercise made famous as a coding kata used to teach Test Driven Development. The idea is that you start counting from one and say each number out loud, except:
If the number is divisible by 3 you say Fizz instead
If the number is divisible by 5 you say Buzz instead
If the number is divisible by both 3 and 5, you say FizzBuzz.
The first twenty numbers are therefore “1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz, 19, Buzz”.
One Java solution to this puzzle is to transform each integer into a String this way:
Here is a property-based test, where the properties are (1) that every third element starts with the word Fizz, and (2) every fifth element ends with the word Buzz:
The tests use the private method fizzbuzz to get the sequence from 1 to 100. Then the first property test checks each third element (33 tests) and the second test checks each fifth element (20 tests). All pass, of course, or I wouldn’t be including them here. :)
I have a lot more to learn about this API, but it looks quite promising.
Happy Pride Month
June is Pride Month, and speaking of culture, one indication of how much the national culture has changed is (1) how many companies want to be seen as supportive of LGBTQ people and (2) how adding rainbows to their advertising is no longer considered enough. Despite whatever culture wars appear to be going on around us, companies have learned that if they want to avoid active rebellion by their own employees, they have to at least appear to support women, under-represented minorities, and other traditionally ignored groups.
People in the LGBTQ categories have been fighting for representation, and even basic human rights, for generations. In the US, there has been some progress, in that at least now they’re allowed to marry, and even simple partnership agreements avoid the heartless cruelty of the AIDS years when people couldn’t even visit their dying partners in the hospital. I lived through those years in the 80’s, and I found the treatment of suffering people during the Reagan administration appalling. That was supposed to be my generation’s civil rights battle, and like so many things, we couldn’t handle it.
Then along came Trump administration and extreme evangelicals who tried to reset the Overton window on what behavior is socially acceptable. I am GLAAD (pun intended) to see all that progress has not been completely undone. As an outsider, I’m also glad to see that trans people are now a real part of the discussion, though the world is still far too hostile and dangerous for them at the moment.
Pride month is a real thing, though, and many companies try to get credit for being supportive by adding rainbow colors to their logos or backgrounds. This process is known as Rainbow Capitalism and made freakin’ USA Today, believe it or not. See the linked article for the rainbow LEGO set (among other examples) and while that’s nice, it’s not exactly fighting to preserve basic human rights in the legislature.
Humor is a great way to make serious comments, however, and I loved these from @InstantSunrise.
Cyberdyne Systems, makers of SkyNet and a whole series of Terminators from the future. Good for them and for their sexy death machines.
In case you don’t get the reference, the Weyland-Yutani Corporation is “the company” in the Alien films. Aliens, specifically, was set on LV-426. Game over, man! Game over!
I loved the R at the end of LGTBR. Like tears in rain, replicants from the Blade Runner universe need your support, too.
Not quite the same thing, but I thought this was funny too:
Yeah, Simba would like a word, though it’s pretty common knowledge that Scar was queer coded.
I recently watched several YouTube videos discussing the queer coding of Disney villains, but if you’re looking for a simple summary, see this article in SyFy Wire.
My best to all my LGBTQ friends, including the ones that are not out yet. If there is some way I can be an ally to you, please let me know.
As a reminder, you can see all my upcoming training courses on the O’Reilly Learning Platform here and all the upcoming NFJS Virtual Workshops here.
Last week:
No classes. Just worked on preparing Help Your Boss Help You for publication.
This week:
What’s New In Java, on the O’Reilly Learning Platform
Beyond Managing Your Manager, an NFJS Virtual Workshop