2009-03-23

Thoughts on Medium-Sized Companies


I was going to go ahead and do a decription of medium or large-style companies I've worked for, and talk about experiences and whatnot, but I think it's gotten old already in my brain, and I also still work for one or more of these companies, so I'll leave it out.

I wanted to talk, though, about some general fallacies of working in a medium-sized company. When I say 'medium', I'm talking about a company with a few hundred engineers. However, my main tipping factor is that a medium-sized company is one that has a dedicated recruitment department, and that has a large enough organisation such that more than one team can be working on the same or a similar thing at a time, without it being blindingly obvious. This is the important bit, we'll get to that.

Competition is Good. Duplication of Effort is Good. Failing is Good.

Competition is good, and this applies internally. Some of the most rewarding projects I've worked in internally were ones where I could talk to a co-worker about it, and have them say "Oh, well project Xarnypoopalinger does this too". It means you have an actual incentive to get the job done well, as opposed to just done. Obviously this doesn't mean that you launch two versions of your online widget, but it does mean that you should at least tolerate the fact that there's more then one web toolkit, IDE, etc that people can use, and i the end, the result is what matters.

Low-level APIs used internally become as integral a part of the methodology as IDE and method of programming used after a while, and people are people. Making informed decisions based on data begins with having that data, and a lot of the time, you gather data by failing.

In his last lecture, Randy Pausch said "Experience is what you get when you don't get what you want". The collective experience of a project that failed because you tried something new doesn't mean that idea will never work. It means that you tried something, failed, and you know that the other way of doing it (because you're trying more than one thing at the same time, right?) will work out better.

That, and it is in the nature of humans to be competitive. We work best under duress, and under the shadow of a competitor or bogeyman, no matter how friendly or even unstated the rivalry.

Also, not absolutely everything in the company has to be making money. If it's going to stick around for a few years, it'd be nice if it wasn't bleeding money away too hard, but in general you should plan to have a nice balance of bread-and-butter, and batshit insane. Google, for example, uses a 70/20/10 split of stuff that makes money, stuff related to stuff that makes money (or enables it to) and batshit insane. It doesn't have to be that explicit in its aim, of course.

You Can Impose Culture, But You Probably Don't Want To

By this I mean two things, of course. The No Asshole Rule is a decent read on how even one employee can sap the energy away from 50 others (I've seen this happen myself), but I'm also talking about setting the direction of the 'company culture'.

Engineers are, by nature, pretty cynical people. If you have an offsite that's fun and decent, they'll go on it. They may even have fun. However, there will always be some who won't go on it. This is a solemn fact of life. Some people just aren't into corporate team-building. It doesn't reflect on them in any way apart from how they're not.

Similarly, your average good employee will know when they're being led. Sitting in a focus group and trying to direct the corporate culture does not work. Here's why:
  • People know when they're being railroaded.
  • Culture is self-perpetuating and cannot be directed by fiat.
  • If your complaint is that everyone's being an arsehole, then you work in an office full of arseholes.
Office culture is just that -- it's an amalgamation of the personalities of the people who are there. If you find yourself in a situation where you don't like where the 'culture' is going, then you don't need to fogure out more effective ways of managing it. what you need to do is identify why it is you think the change is unacceptable, and try to do something that fits with the culture as it is. In the vast majority of cases, your reasons for wanting to effect cultural change will be personal in nature. You want people to be like you.

So, if your office is full of lazy slobs who work hard, but never leave the office, then stop patronising them and buy them some fucking donuts, dummy.

The best thing you can do for a group of people is to give them the freedom to define their own boundaries, so that as well as building the product, they build the culture, the standards, the lore, and the dynamic around it.

That's all for now. I'm not sure what I'll write about next when it comes to the workplace. Perhaps I'll actually think of something else to write about. Stranger things have happened.

1 comment:

  1. Interesting! Again!

    There's billions of articles about OC/OD (I have to read quite a few for kollij) but the area is particularly interesting to me because I work for an uber-company too.

    In my experience - and in most modern literature - the culture in the workplace is almost completely impossible to influence in any kind of short or medium-term timeframe. There's so many factors - turnover, individual power, recruitment and selection, compensation and budgeting systems, even stuff like GLOBE and Hofstede has a part to play.

    Personally I think culture, OC and OD should be a core part of any serious large-scale company; it should certainly take feedback and considerations from its worker (any efforts to drastically alter culture against the whims of the populace is surely doomed to failure), I'm not sure I'd be quite as willing to hand over all the control to the front lines.

    ReplyDelete