Unstable Terrain

Software development in the real world

Archive for the ‘Organisational Theory’ Category

Office Politics

leave a comment »

It took me many years to realise this...

Written by Trent

May 7, 2011 at 2:09 pm

Growing Pains at CCP Games

with 2 comments

CCP Games is the company that develops the MMO game I play. In the last decade, it has grown from from a startup to a respectably-sized software game studio in three countries and employing hundreds of staff. It also holds the largest party in Iceland every year to celebrate its games, but considering that CCP has more customers than people in Iceland, this may not be so noteworthy.

It has also, anecdotally and otherwise, shown that it is struggling with growing pains, and while CCP has exceptional public-relations skills, cracks are beginning to show in key metrics such as player count and player retention.

One web site that is populated with current and ex-EVE players is Scrapheap Challenge. It has a high percentage of burnt-out players (also called :bittervets:) but also has some stunningly insightful threads and posts about Eve, CCP and, sometimes, society in general. Perhaps a degree of bitterness is inherent in a user base that cares about the game so much.

A thread that caught my eye was about CCP’s latest customer survey, which segued into ‘What This Says About CCP’s Internal Politics” which in turn spawned this wall-of-text post (possibly NSFW). An excerpt is reproduced below:

But this isn’t some new and unheard of phenomenon. […] the basic story is always the same:

A group of people have some plan, and through luck and a lot of hard work they actually succeed in getting something to market. Doesn’t matter if it’s games or clothes, or something else.

Now in the beginning, that small group of people, they all know each other well. The ‘boss’ is basically the guy sitting next to you in the office, eating from the same pizza at dinner, and you have beer afterwards in the same pub. Communication lines are short, and business matters are talked about pretty openly within a group of friends.

But then the success requires more people to come in. And soon, what was a group of friends all working closely together turns in the little separate groups each with specific tasks and discussions. No more shouting around the room: “This is now about dragons in space.” and everything joining in the laughter. Each group has its own targets, it’s own responsibility, and don’t share the same bathroom any more. Sure, there is the raving homosexual-tank, the gym, the free food, but there’s us and them too.

The old boys/group of friends is still there of course, and as they are there the longest, they naturally float to the top of the food-chain. They are now little bosses in their own right, and have responsibilities for their own to attend to. Now there’s a lot of group dynamic, but basically, the new kids on the block are left out of the most of the discussion on business matters, or really anything that matters, really. They are new, you don’t know if you can trust them, we’ve been here longer, we know what is going on, just let them do the job we assign them, and lets keep the discussion among ourselves.

But now comes the hard part. And that is that some of the old group are nice guys to have beer with, and hang around with, but not all of them are necessarily fit to run part of the show. In fact, some are really not fit to be anything except grunts, however long they’ve been there. And some of these new guys maybe new, but they may actually do know what they are talking about, perhaps even more so then some of the old friend group from the beginning.

How to deal with all that is difficult, but essential, and some of the old boys group, especially if they are sub-par, they aren’t quite ready to let go of the reigns of influence. And this is where all the Chinese whispers come in. Who does he think he is (anyone really)? Let’s not have a procedure for staff development; before you know it, they’ve out developed me? You are one of the old group, ofcourse you deserve to earn more. To bad he’s so good at his job, but if we promote him, he could eventually replace me. I want to be one of the old boys as well, so lets make sure they like me. And so on and so forth.

It happens all the time when companies grow from a couple of friends into a proper outfit. Hell, it even happens in outfits that are old! Shit like this is ancient!

And these problems are what you are reading about […]. All those guys were not part of the in-crowd, otherwise they’d still be there. And they weren’t meant to be part of the in-crowd either. So no more information sharing then is necessary with those guys. People who don’t know enough about things can’t make a point. No career advancement plan or employee development plan, that can only make them more indispensable and the old friend group less so. A lot of old hands basically more interested in hanging on to their own position of ‘power’ and ‘influence’ than actually pushing the company forward. And certainly not more transparency or accountability, because, god forbid, some in the old friends group has to basically tell one of the other old friends that he’s just not good enough for the position he’s in. No, far easier to just fire one of the new guys, with little or no warning or reason behind it. Let’s keep the grunts all scared for their livelihood, mostly in the dark about what’s going on, on low pay and with little encouragement to do something exceptional. That way, we, who haven’t really grown along with the company, but who are still in charge here, we, the old left-over of the old friend-group, can keep all the cards to ourselves, keep our cushy over-paid position, and keep smacking down all possible threats to that position.

This isn’t just about information hoarding, that’s just an instrument. This is about bullying. Bullying everyone in submission, keeping them as much as possible in the dark, smacking down any challenge, and maintaining the old hands in the position they know, in their hearts of hearts, they are really not good enough for. Cutting down everything down above your level is a most effective way of making sure no-one notices how poorly you actually are at your job. Especially if you have the power to do so. String along some wannabes as and when you need them. Divide and conquer. This shit is so old and recognisable.

Now, as I said, CCP isn’t particularly exceptional in this. It really happens a lot when small ‘group of friends’ companies grow into companies proper. It is perhaps a particularly crass example of it, mostly I suspect because of cultural influence (on an island where everyone is related, firing someone means upsetting half the island about it, and this may, and probably will, include some of your own family members. And more of that), but all such growing companies go through a phase like this. We’re now a couple of years after those reviews though, and it astonishes me that from what we hear and see, this stuff still hasn’t been resolved. This is what […] I mean with little kingdom syndrome, and a segregated workforce, and all those fancy words.

Good competent management, or rather, upper-management, at one point recognise what is going on. Still doesn’t mean that it is easy to deal with (unless you delight in upsetting the relatives, in this example), but they recognise that this is a threat to the longevity of the company as a whole. Because, as you said, and lets not mince words here, this is what brings companies down from the inside.

It’s not just incompetence. Incompetence is always a problem to look out for, but without the group dynamic, it can be measured (hence the emphasis on :metrics:) and be dealt with quite effectively. But with the group dynamic, the favouritism, this is much harder. This is why like-minded people, for example, ex-CSM [CCP player representatives] who tow the line, get a job at CCP. This is why people who know what they are doing, are good at it, after a while just give up and leave, or fall into near total apathy. This is why NDAs are slapped on so many things, because if word came out to the public, the whole house of cards would collapse. And this is especially why these clingers-on hate the current CSM. Because the current CSM doesn’t take bullshit, is more professional than they are, exposes shit that shouldn’t become known to the grunts and the public, demands a level of accountability that the in-crowd can never live up to and never has been able to (What? Someone can ask my why I want to do stuff? That wasn’t in the contract!), etc., etc., etc.

And, before you start wondering, this is also why [scrapheap challenge] isn’t particularly liked with the in-crowd. Ohh, fuck it, let’s call them by their proper name, by Team Awesome. Because between all the +1s, lolcats, pics of dongs, epic smackdowns, electric boobylube threads, etc., we do actually play this game (well, some of us), and call bullshit on things when we see it. Team Awesome can’t control what we say on our internet spaceships forum, that’s one thing, and we expose for shit the crap that Team Awesome peddles out (if only for the lulz) but which it wants to keep hidden from their own grunts and their own players. Seriously, I’m laughing my ass off. PCR Media Solutions Inc. (of whatever their name is), actually collects all our stuff, and hands a summary of it to CCP leadership (not to CCP grunts, no, that would be too much now, wouldn’t it be! Not that it would matter). That’s right, it’s hilarious, it is easier to get your message through to CCP leadership sperging on this forum than it is actually working for CCP!

Now, what needs to be done by CCP is clear. It’s not going to be easy, by no means, but there are countless examples to learn from. It’s going to be hard for CCP’s upper-management to smack-down on their friends. They’re probably not going to be best-friends-forever (no relationship to the team that’s doing excellent work fixing EVE BTW) with those guys. And there will be some awkward moments at the dinner table, no doubt. And that invitation of the first or second birthday party to you godson or daughter. That’ll probably not land in your mailbox either.

But guess what, being in charge means showing leadership, and that means making hard decisions. It’s lonely at the top, but don’t worry, you get paid well for the privilege, and you’ll be laughing all the way to the bank, so stop complaining. Please stop buying into the reminiscing about dragons in space and lag-fest 3000 player fights, and do the job you get paid well for: make the hard decisions, and move on. The first and practically only directive of a company is to secure it’s financial future. This shit is a direct threat to it. Seriously, deal with it and move on to the next phase. It’s about time now, most of the people involved are losing patience, and that includes your customers. We’re sick an tired of being called terrorists and worse. Get your damn ship in order already!

Passionate, crude, but insightful.

Perhaps you know of other companies where this situation has arisen?

Written by Trent

February 6, 2011 at 11:09 pm

Posted in games, Organisational Theory

Tagged with

Company Culture

leave a comment »

I started a position at a new company this week, and the differences in approach are eye-opening.

The development manager asked for opinions on a divisional philosophy, citing the example of NetFlix’s excellent explanation of what they do and why. It’s reassuring to see such an open and flexible management style at work, and especially interesting to see the kinds of examples they aspire to.

Written by Trent

January 21, 2011 at 4:50 pm

The Dead Sea Effect

leave a comment »

In Australia, we’re coming out of what is colloquially called the GFC (or Global Financial Crisis). Due to an uncommonly-persistent bout of common sense by past Australian Governments, Australia has weathered the GFC relatively unscathed, although the signs a year ago were substantially more bleak.

This all means that the private sector (and by inference, each company in it) is moving from survival mode to growth mode. From past experience, this is a tricky time to be a manager, because the pendulum rapidly swings from “My employees are lucky to have a job” to “My employees are all leaving for better offers”.

An interesting opinion piece on this subject is The Dead Sea Effect. Check it out – I’m interested in what everyone thinks about it.

Written by Trent

December 12, 2009 at 11:43 pm

A Disturbing Triangle

leave a comment »

I’m keenly interested in metaphors for a company’s organisation and practices. Here’s one I haven’t seen before:

Hugh Mcleod's Company hierarchy diagram

The Gervais Principle – or, ‘The Office according to The Office‘.

It has been featured on Slashdot with surprisingly few comments, perhaps because it’s quite confronting. Regardless, Venkatesh is going straight on my list of blogs to follow.

Written by Trent

October 16, 2009 at 9:00 am

Clear Costs and Technical Debt

leave a comment »

Israel Gat wrote about putting technical debt on the balance sheet. It sounds appealing, but when you try to bring the concept of technical debt into the financial world, you start butting up against the finance domain, which is where your trouble starts. Strangely enough, you must play by their rules.

Accounting Principles 101

From a finance point of view, software development must be categorised as capital expenditure (capex) or operational expenditure (opex). In general, new software applications or new features on existing apps is classed as capex, and the maintenance of existing apps is counted as opex.

The treatment of opex and capex on a balance sheet differs.

Opex activities are simply costs that show up in the month they are incurred. This is a good thing from a finaincial guidance point of view.

Capex activities result in a new asset on the balance sheet (or increase in value of an existing asset), and thus can only be amortised over the course of many years. This means that a $100,000 capex cannot be written off in the year it was accrued, which impacts the balance sheet. Yes, it does leave the company with a capital asset, but unless the company is looking to be acquired, that’s not an actual benefit.

Technical Debt as capital liability?

Consider this situation:

  1. A customer comes seeking a solution
  2. We quote them $200,000 to deliver a complete solution
  3. The customer, after advice from their finance department, negotiates for a solution that costs $120,000 but would incur approximately $80,000 in technical debt (rework to meet more nuanced requirements, removal of important items from scope, unperformant code, unmaintainable sections of the app; you name it)

What should happen from a financial point of view?

From a pure technical point of view, the customer would pay us $120,000 and receive a $200,000 piece of software with a technical debt of $80,000 associated with it. The customer knows the true state of what it paid for and can see that many thousands of dollars must be spent for the app to perform as intended. Everyone is happy. Rainbows and unicorns ensue.

From a financial point of view, the technical point of view is pure fantasy. Accounting standards don’t allow provisions or liabilities to be shown for “not performing enough maintenance” or similar intangibles. There needs to be a present obligation before a liability is incurred and a present obligation is only usually formed through a contract.

The accountants will note a $120,000 asset on the books, congratulate themselves for saving $80,000 of capex and chalk up the increased opex of maintenance as the cost of doing business.

Written by Trent

October 12, 2009 at 9:00 am

Signs your web design company is unprofessional

leave a comment »

I’ve heard horror stories about some of the zany things that go on at work; the company I work for has a number of books written about it, filled to the brim with humourous or scandalous anecdotes.

Some things at work are more frustrating than amusing, though.

In this post, I shall skip some of the more serious faults I’ve seen or experienced at workplaces, such as bullying and abusive behaviour, fraud and misrepresentation, empire-building and so forth, and instead turn my eye upon undesired work practices that relate to the production of software.

You may raise your eyebrow at the title of this entry, but my experience has shown many of these problems to be endemic within the web design and web development part of the software development sector.

So, onto the list.

1. You don’t use version control

I won’t go into the benefits of version control systems; they are well documented. Suffice to say that I’ve seen web design companies that didn’t use version control as late as 2007 and, frankly, it was a mess. Going into a directory and seeing a horde of filenames such as

default2.asp.william.20050812

is particularly disconcerting, because it requires you to

  1. log into the production server and download the production site because you can’t trust the version on the Windows share because it’s in active development
  2. Search through the codebase, looking for references to the file you want to change to make sure it is the file you want to change.
  3. For good measure, search the codebase for files you guess might be different versions of the same file, in case the app references multiple versions of the ‘same’ file

…just to make the smallest change.

2. You use version control, just badly

Someone I know joined a web design company and was initially impressed by their tool set: Subversion, Jira and many other good tools. Then she found that they didn’t believe in tags. “How do you know what changes happen between versions?” she asked.

“Oh, every time someone does a deploy, they provide the sysadmin with a list of files to update and he uses Subversion to update them on the server,” was the reply.

“So I need to provide a manual list of each file and the revision to update to, for the sysadmin to apply manually?” she queried for confirmation.

“Oh, you don’t have to worry about the revision number; he just updates from the trunk,” the team lead replied.

<Facepalm ensues>

3. Thinking correct spelling is optional

Face it: web development is a customer-facing part of IT. While back-office developers churn out COBOL in darkened rooms, the dashingly-handsome web devs with their spiky hair and megawatt smiles get all the glory. That’s fine; someone has to be the face of IT and I’d prefer web devs to IT Helpdesk any day.

However, customer facing apps need correct spelling and punctuation. A web site is the public face of a company. Spelling mistakes, in addition to being universally acknowledged as being unprofessional, engender a lessening of trust. The reasoning goes that spelling and grammar mistakes indicate:

  • a non-zero error rate for simple tasks
  • insufficient or negligent QA
  • a lack of attention to detail

You only get one chance to make a first impression; don’t screw it up.

Written by Trent

October 7, 2009 at 9:00 am