I'm continually amazed at the cultural differences that I encounter across companies. I visit one company and discover that, despite the fact that they develop mission-critical code, they have a rather loose and light-hearted culture. A few weeks later, I visit another company and I discover that although what they are writing is important, it's far from mission-critical, yet they attack all aspects of their work with grim-faced seriousness.



The differences are astounding. At first I thought that they were more correlated with company lifecycle than application domain. Startups tend to a have looser culture. Companies that have cornered a market tend to grow a bit more rigid. Mature companies that are being attacked on all sides by competitors tend to be incredibly seriousness – about everything. Yet, despite this loose correlation there are plenty of exceptions. At this point, I think that company leadership has a lot to do with the feel of a company. And, sometimes, it's local leadership. I've visited companies that have radically different cultures at different sites.

One thing I've noticed about companies with "serious" cultures is that they are seldom serious about everything. In one case that I'm thinking of, a company with rigid plans for everything and incredibly comprehensive processes, I noticed there was a lot of passive noncompliance -- but it was subtle. The company had mechanisms in place for everything, including taking care of visitors, but every time I visited, one or another mechanism was slightly broken. The people involved would shrug and apologize. It seemed that they just couldn't take everything seriously. I notice the same thing in the software realm. Teams which are very serious about process and documentation are often less serious about their code. It isn't a perfect correlation, but visit enough teams and it is noticable. It makes me wonder whether there is only a limited amount of seriousness possible in any organization.

Before I go further, I want to explain what I mean by seriousness. We have to be serious about what we code, and how we code. Software development is serious work. It's easy to make mistakes that can have disasterous consequences. The seriousness that I'm talking about, though, is lack of levity. There are some places where you simply never see people laughing or joking with each other, or reflecting less than seriously about their work or their situation. It would be seen as evidence of lack of Seriousness (with a capital 'S') and grounds for shunning.

A few years ago, I read a story about a government worker who was playing Solitaire on his computer during his break. A boss, a couple of levels above him was visiting the office that day and he made a note of the employee, spoke to his supervisor, and had him fired the next day. I forget now whether there was an actual policy against using a computer for personal reasons during a break, but for the point I'm making it's pretty much immaterial. It was apparent that the boss wanted to communicate seriousness, and he did so. I'm just not certain that it ended up having the effect that he expected. If conservation of seriousness is true, the employees just ended up being less serious about something else.

I think there are things that we have to be deadly serious about, but they are narrow. I've never been to NASA, for instance, but I would expect them to be deadly serious about the flight control software for the space shuttle. I've read about their development process, and it seems serious, but I would be surprised if there isn't a bit of levity. In fact, I'd be scared if there wasn't.

What does this all mean? If conservation of seriousness is a real thing, I think that it means that if you are a manager or an executive of an organization, you really have to be selective about what you denote as serious. It's important to be very specific. Otherwise, people will choose what they are serious about and it might not be the same as your choice.