Friday, May 28, 2010

Players as Inspiration in Browser/Web Games

I've talked about powerful players before, and about status (or score) as a game mechanic. Playing multiplayer browser-games recently got me thinking about the mechanic from a different light.

The Facebook games I played are built around having a persistent play-space (diorama) that you can customize, and then asking other players to stop by your space to do a little something that gives you (and them) some in-game benefit. This mechanic gives you an opportunity to see what other players have done with their space, and gives you a chance to show off what you've accomplished.

A Note on Dioramas

By 'diorama' I mean your farm in FarmVille, home island in TreasureIsle or Island Life, personal kingdom in Fantasy Kingdoms, and the like. Treasure Isle is probably the best example, because there is no gameplay there, whereas in most of the other games you need to build not just for aesthetics but game mechanics, too.

Artistic Ability

Building a nice-looking space is difficult. It requires some artistic talent, plus persistence to acquire the in-game tokens to build it the way you'd like. But the better and more complex the art assets, the easier it is to build a themed level. I remember some of the amazing hotels that people built with Roller Coaster Tycoon - which seems weird, but that game had very small elements; little boards of various colors. They were extremely flexible, which meant people could express a lot of creativity in building complex and interesting structures. Facebook games, on the other hand, deal with very large art assets with little flexibility. Your choice is basically what to put in each tile - which is a small bit of real estate. In RCT, one could stack tile on top of tile, creating layers and multi-storied buildings. Facebook games lack that.

Which means, actually, that it's easy to make a good-looking diorama in a facebook game - assuming you have access to the parts you want. Say, within a given game, there are several art themes, like architectural styles for buildings. Art deco, modern, classic, brownstone, castle, wooden - whatever. Building a themed level just means buying a bunch of items in the same style and then arranging them. This is a much lower artistic threshold than RCT; something almost everyone could do. Throw in a little bit of extra flexibility, and even average joe has a chance to build a cool-looking diorama.

But... that doesn't happen. The parts are grossly expensive. The only way to build a nice themed diorama is to play for a year, or drop $100 or more. Bleh?

Lego vs Duplo

One way to resolve this is to reserve the small, creative pieces for paying customers, and give the big, bulky, pretty-art but low-personal-creativity elements away for free. Give everyone Duplo blocks, and make them pay for the Lego. If they want to get fancy, they can pay for it. This can work because:

Inspiration

Others players are inspiration. When you go visit their play-space, if they've done something cool, you want to do it yourself. Some people thrive on an empty canvas, but I've found more people are inspired by seeing something cool and wanting to make something like it. It's the rare individual that wants to be given not just a blank canvas but a huge sack of tools to decide which tools to use. Give them acrylics and a bunch of landscape scenes and they might be inspired; charcoal and portraits, and they'll run off looking for a model. Show them a cool crafted item in Warcraft, and they'll want to be a crafter. Show them Ulduar loot and they'll want to go raiding. Show them a bunch of Lego spaceships, and they'll want to buy some pieces and build their own.

It's also motivation for them to work on their own dioramas / loot / whatever. Not only is it inspiring to see something awesome created by a friend (or even a stranger), but it can be motivation for them to put pen to paper themselves - or to play the game more.

Profit

And that's where we come in. We game developers give them the tools.

The model I've seen so far in Facebook games is to charge for the "cool" Duplo blocks, but to only provide (say) red and blue blocks, and only in a few weird sizes. I don't have the flexibility to be really expressive, but I also don't have access to enough blocks to build a single theme. If I could put together a skeleton of a cool diorama, I might be tempted to pay for the really cool bits that will make it distinctive. If the option is "pay or don't be cool," then ... well, do I even want to keep playing this game? What's the point of playing a slot machine if it doesn't give any prizes?

Fancy ads can draw players into your game, but so can user-created content. If your game already has some amount of user-created content, providing the tools to make it easier for that content to be inspirational improves user fun and thereby developer profit.

Ranting Conclusion

I wish I could play with my diorama. I want to build a piratey hideout in Treasure Isle, but (1) I've got to play for another six months maybe, (2) spend $100 buying the parts, and (3) I don't really have access to the parts I want anyway. Fuck that. Plus the game is a slot machine.

I really want that game to (A) have some measure of strategy to the play so that playing it isn't a grind, (B) give me the option of pursuing the parts I want, eg digging in Pirate islands for Pirate goods, (C) and gave me basic stuff for free, so that I'm not stuck with an empty island for months.

Thursday, May 27, 2010

Things I Hate About Web Games

I'm coding again, and somehow that also means doing "research" - playing new games for a bit. A friend suggested I check out Lord of Ultima, since I like Ultima and also played Travian for a year. I also wound up playing some Facebook games, and checking out some of the other online, browser-based RTS games, including Ikariam and Nile Online. I've played Evony before, and I checked into a few other real-time strategy multiplayer browser-based games, like NationStates and Monopoly City Streets.

I've got a few major complaints against these games. The time element tends to suck in these games. The facebook games are spam-based. Help and tutorials tend to be abysmal, and goals are rarely well defined. Tack on some obsessive play-to-pay rules and I don't wonder that they're not all making bank.

Time Element

The worst sin is the time element; you can't log in and play. Log in, hang out for a bit, watch, scroll around the map, contemplate your navel - then 10 minutes later you make a move. Great! Now wait another 10 minutes before you can move again. Most people play games because they want to play games; stuff like Lord of Ultima and Travian both are centered around a mechanic where you can't make any moves for hours. I'm on my fourth day of LoU and I have to tell myself not to play, because it's a waste of time. Come back in three hours.

Nile Online does this a bit worse, because the first thing you do is stare at the map trying to figure out wtf is going on. I'll get to that later, but when you finally do read the primer, it's basically "click some stuff for about 3-4 minutes, then go get caffeine. Come back in 20 minutes cuz you won't be able to do shit for 20 minutes." You read about it, looks like fun, sign up, play for 5 minutes -- then you're done. Quit. Go do something else now, please!

They like to compare themselves to a garden or other sort of tend-it-here-and-there activity. But if you wanted to, you could go out to your garden and weed & plant & water & fertilize & fence for hours, for a whole day. And if you run out of stuff, it's easy to leave for a day, because it's not a game. You can't really tend a real garden every 10 minutes, but these virtual gardens want you to do just that. Games are fun, and can be addictive - but an addiction that you can't feed is lame. Stupid. Why do you make me hate you?

The thing to do is to log in and chat with your buddies, possibly spending your evenings chatting - while occasionally making a move or two. That's what I did in Travian, and that game did tons of things right to make such socializing possible. Coordinating with other players is a big part of the game, and it's easy to make friends there. The stuff you have to do can be done in batches, once or twice a day, so it's easy to log in and putter around for a couple hours, chatting while you wait. Raiding, especially, is something that you can kind-of-actively do: send out some raids, wait twenty minutes for them to come back and chat while you wait. Poke around your other villages.

It sucks if you're lonely. One thing WoW did very right was to allow solo gameplay. Want to log in and play for a bit? Sure! There's quests, farming, crafting, the auction house - tons of stuff to do. If you're not max level, questing solo is cake! The game is made for it. These browser-based games? Bzz! Sorry, you're not wanted! Give your money to someone else, please.

spam

Facebook games are a bit better in the time-wasting department. They can be played in 20-30 minute chunks, then you run out of energy or mana or whatever. That's a great model; 20-30 minutes of constant fun, no waiting, and then a clear indicator that I should go do something else for four hours.

Nile Online was offensive with its 5 minutes of initial gameplay. After playing it for a week, I'm a bit more at ease with the 5-minutes-here, 5-minutes-there model, but it's not really a game. It feels like the tend-me-occasionally garden that it wants to be - but it's not really a garden. Guh. I'm not really drawn into that gameplay model. Maybe you'd like it, there's others out there that seem to like it, but I think my time with that game is over. Not my cup of tea, but at least I'm not saying it's a cup of piss.

Anyway, back to spam.

The big downside to the facebook games is that they're asking me to spam all my friends with a half-dozen or more posts in my 30-minute play session. Optimum play requires being one of those boring jerks that spams all their friends with crap. And I'm not going to be that guy; most of my facebook friends don't play these games. I'm not going to crap on their wall with what are, effectively, ads. Multiple times a day. In sets of 5+ posts.

Which doesn't address the fact that all of the facebook games I've tried so far are slot machines. I ranted a bit about that when I talked about designing fun, so I'll leave it alone for today. A slot machine that asks me to piss off my friends? Fuck you.

Help and Tutorials

Mostly these games seem to be built by companies that get the idea to clone someone else's popular game, shove it out the door, then start collecting money. Game design? We've got artists to make the pixels, that's game design, right?

Tutorials are essential in complex games. They're a way of taking what can be a forbidding mess and make it appealing to new players. Another alternative is to start with a simple, obvious game and gradually add complexity to it. One of my favorite city-building games, the Settlers series, does this great. It's the gameplan for PC-based RTS games: start the player off with a few tools, let him learn to use them through the play of a scenario, then add another tool or two in the second scenario. Somehow the makers of all these browser-games never learned that lesson, or didn't bother to apply it. They throw every single tool at you in the first five minutes. Confusing = lost = bored = quit = zero revenue. Negative revenue, after including the costs of hosting that player's little play session.

Nile Online has a Primer, not an in-game tutorial. It got me started, but it didn't mention the heart of the game: upgrade stuff, balance your workers, and upgrade your palace to get more workers. That's its core gameplay. Yeah, sure, you eventually choose a specialty good and make your mark in the world that way - but that's not what you do.

Games should explain what you do as well as what you strive for. They tend, generally, to put the shine on the game's goals, how the game can be fun, but don't teach players how to play the game. That's a great way to lose players! Someone went through the work and commitment to try your game out, create an account, and start playing - keep them playing! Show them the light!

Some of the games do have good tutorials, not all are necessarily bad. The worst documentation is reserved for the goals (see next section), but I wanted to split that out so I could talk about it more. Travian, Lord of Ultima, and Ikeriam all have decent tutorial/quest chains that get you started. They don't tell you where you're going, but they do tell you how to look busy.

Goals

Some games define their goals well (like Nile Online), others have good tutorials. The most popular games, though, feel like time-wasters because they don't explain their goals. Lord of Ultima seems to be grossly negligent in this way, mostly because it doesn't actually have a goal. The "goal", if any, is to "win" the game - apparently by being Rank 1 when it ends. Maybe it doesn't end? Maybe the server keeps going? Who knows? They apparently don't. So why are you playing?

"To have fun!" Ugh. These aren't games, they're toys - but competitive toys. Someone can come into your sandbox and kick over all your castles. That's one reason why people hate Travian and quit. It markets itself as a sort of multiplayer sim-city, but that's not what it is at all. That's a fucking lie. It's a competitive game. The goal is to help your alliance build up enough members, cities, armies, and allies to grab some plans, build a world wonder, and defend it against the other alliances. It's a team game! It's a fun team game! (One that just happens to have really bad time-demand issues.) Travian really should push what it's about. It doesn't. It does something really well, and they should brag about it. That's what I mean by goals: tell everybody what their goal is! Tell them how they, too, can be great!

"Do whatever you want!" I don't want to do whatever. I'm looking for a game - something with a goal, a way to win. What's your way to win? Nile Online does this somewhat well; it doesn't have a "win" condition per se, but it does lay out the promise of being a notable player. Everyone in the game has their own specialty; everyone can be special. That's a great promise, especially since everyone wants to be special and well-known.

To be clear: I'm saying it's a bad thing to refuse to specify goals. There's games, then there's toys - sandboxes. Trying to do both tends to piss off players; doing both well is extremely difficult, such that I seriously recommend not trying. Especially if you're gonna half-ass your way through the design process. Lord of Ultima is kinda bizarre in this respect, until you figure out what must have happened. Some suit must have said "Travian is popular, Ultima is IP that we want to make money from, throw a bunch of money at this!" They then refused to hire an experienced designer (or to listen to the one they hired) and built a pile of shit.

Play-to-pay

The idea of microtransactions is to give players some cool little doodad that they can buy with just a wee bit of money. Make it optional, so that people can still play your game for free (or cheap), but allow the guys willing to spend money a chance to set themselves apart.

Travian does this well. For about $5 a month, you can double your monthly growth. You only buy a small percent increase in production, but because the game basically runs on compounded growth, a small percent each day translates into integer multiples in strength each month. But if you don't pay, you can still contribute to your team's success. Plus, by spending a bit more over that, you can jump around a bunch of other restrictions.

The last is probably the worst microtransaction model. You don't want to make gameplay annoying, and then offer to make it less annoying for a small fee. The correct response by a player to that offer is "fuck you, I'm gonna go play a different game." This is one reason why WoW has gradually reduced the level when you get horses. Travel is a pain in WoW. At low levels, it doesn't matter too much because everything you do is right there. But at some point, you have "enough to do" in the game world that you want to travel further - and getting there by foot sucks.

But browser games often commit worse microtransaction sins. The thing you buy with money is the actual game itself. The facebook games I've tried are all like this. The game that you play for free is a slot machine version of Progress Quest: pull the handle, get your chips, and brag to all you friends about how many times you pulled the handle. (WoW is kinda this game, in that you get to brag about your level, but there's strategy to killing mobs; it's not just a button-press.)

Alternately, a player can spend $50 and get a sandcastle where they can build a cool little diorama to show to their friends! Now that sounds like fun. Give me some cool diorama parts, let me find (or better yet, quest for) some rare parts, and let me create something cool. Plus, show me other people's cool dioramas, so that I can be encouraged and inspired to create my own!

but wait! You gotta pay for that!

Ugh. It's bait-n-switch. It looks like a treasure-hunting game, or a farm sim, or somesuch - but it's actually a very expensive dollhouse. Why not just get rid of the slot machine? Or, better yet, let me choose to go questing for the parts I want? And replace the 'slot machine' with something that requires strategy?

-conclusion-

Yeah, in conclusion: that last paragraph. I don't mind microtransactions. Some games, I am willing to pay a bit to be stronger, to get something cool. Others are diversions I don't enjoy enough to pay for - which really means they're sucky games.

A cool browser game would be one that's (1) not a slot machine, but requires some strategy in its play, (2) allows players to specialize the way in which they're awesome, and (3) lets me play in meaty chunks. Tell me (4) how to play, and (5) what my goal is.

Game audiences are a stochastic thing. Some people are willing to pay for the diorama. Others get caught up in building their little world and don't mind paying a bit extra for it. Others have addictive personalities and get sucked in by slot machines. And others are too stupid to realize that there are better games out there.

Like WoW. Bye, Treasure Isle / Lord of Ultima / Nile Online, time for me to start getting ready for Cataclysm.

Tuesday, May 25, 2010

Game Design: Fun Challenges

Fun & Happiness
Happiness is the emotion resulting from the achievement (or preservation) of values. Accomplishing something you don't value doesn't feel rewarding. Players are happy when they achieve something meaningful. That could be game-defined goals, player-defined goals, or even just learning.

What's the difference between fun and happiness? Grammar, for one: one "has fun" but "is happy". Does happiness come from having fun? Generally our culture views happiness as a longer-term thing, but I don't think that necessarily applies to game design -- I think players can achieve happiness from playing their game of choice. I also think that being happy isn't the same thing as having fun.

Fun is amazement, curiosity, bewilderment, happiness, laughter, vengeance, and a host of other emotions. I've talked about boring before: if you don't have anything to think about, you get bored. But being occupied isn't the same as fun. I remember working at a fast-food joint during rush hour. I didn't have time to get bored, but I wasn't having fun, either. Generally stuff that's safe (ie doesn't threaten any values) and produces a non-negative emotional response is fun. There was nothing emotional about slinging fries, but interacting with customers (especially the cute kind) was sometimes fun.

The two main groups of fun emotions are those responding to new stimuli, and those responding to positive values (happiness-related). Achieving a goal that you planned for and expected to win isn't as much fun as an unexpected victory; the emotion in the latter is stronger. I also think seeing new wonders - whether it's high-level gear or foes in Warcraft, or funky new buildings in SimCity or Travian - is stronger than happiness-related fun.

I've heard (and frequently repeated) that designers of platformers like to put players into new environments every 15 minutes. Warcraft follows a similar model (tho the time delta is hours not minutes), and RTSes and the like put players into new environments every 30-60 minutes. Players also like new games, new graphics, new expansions, etc. They want something new, because new is fun. These players are explorers, and I think it's the dominant type of players generally.

I love new stuff, new areas, exploring game mechanics, exploring the nooks and crannies of game worlds, new graphics, all that stuff - but I can also sit down and grind through some resource gathering. I turn that into a game: how quickly can I pave through this set of creatures and take their drops? How many can I kill in an hour? That's a self-created achievement goal. Some people are good at that, but most people aren't. I'm tempted to call it autistic-spectrum (the ability to focus on a narrow goal), but I actually think it's just a reframing skill.

This is achievement again. Many Asian MMOs are very grindy; players in that market are used to this type of reframing. They view the grind as an achievement path, and they can focus on maximizing their achievement performance. To them it's fun. American players, by contrast, tend to be the "fun fun fun" type that want distractions and new, shiny trinkets.

Difficulty, Perceived Difficulty, and Choice

If happiness comes from achieving meaningful value, then how does one quantify "meaningfulness?"

I think one really has to scrape the bottom of the barrel to get game challenges that aren't meaningful. It's a continuum, obviously, and I think it's related to perceived difficulty. Not actual difficulty; rather, how difficult the challenge is perceived to be by the player.

The Facebook games I've played are basically slot machines. There is no challenge; very little strategy. Do you dig in the open areas first, or go for the plants (which require more energy), or open up the gates (which require no energy and give some XP)? Ultimately you're gonna click every damn little grid square that you can. Whether you click them "smart" or not is maybe a 5% change in effectiveness. These games win on two fronts: the user can perceive some kind of magical ESP or mental brilliance in what they're doing, which is great for the vast majority of players that are fucking morons. (They play slot machines and farmville, after all.) And they get random rewards.

The two are really related. The human brain is wired to see patterns; we look for patterns, because they help us survive. Sights, sounds, tastes, smells, and even touch came into play for survival. Should I eat these berries, or wait til they change color? Does that sound mean a jungle cat is about to rip my spleen out, or is it just a harmless forest critter? Give a player a bunch of random stimulus and he'll think he sees patterns in it.

It requires a lot of discipline to avoid latching onto that perceived pattern - plus the experience to know that your brain plays these kinds of tricks, and that you need to do something other than sit there with your jaw slack and let the emotions roll across your brain. But that discipline is only useful when there's an actual pattern to be perceived. That is, in a slot-machine game, all the patterns you think you see will be fake. In Facebook games, there might be one real pattern in a hundred.

One might say "good games have real patterns for players to discover," but I'm not sure how much that's true. (It depends on what you mean by 'good' game, of course.) The facebook games are popular, even though they're just slot machines and epeen displays. I do think if you want people to pay money for your game that you need to get them to want it, to have some emotional pull to the game more than just what you get from a slot machine. (Though people do dump a lot of money both in casinos and facebook microtransactions.)

Facebook games have choice, but it's a shallow, meaningless choice. Even perceived difficulty is low.

I think perceived difficulty is better than actual difficulty. Games that are actually difficult can produce failure, and that leads to bad emotions. But without evil there can be no good: people value achievements that came with high cost. It's one of the reasons why hazing is still popular - paying dearly for something, even a gym membership, leads the human brain to bias more value.

Too many apparently difficult choices that are actually trivial can burn the player out to the point where they realize how pointless their choices are. I think I burned out of WoW once because of that. When a player realizes that all their clever strategizing was meaningless, they can shut off like a switch.

That marks your boundaries: make the difficulty too real and players give up in frustration; make it too much of a smokescreen and you risk players finding out and feeling like they've wasted their time on your game.

Challenge and Accomplishment

I want to say "the best games have some real challenge, some perceived difficulty, and reward players for making smart strategic choices." But what does best mean (i.e. on what scale)? Is this just my preferred game style? Am I just deluding myself into thinking I like challenge? I guess I'd rather be fooled into thinking I'm smart than be given a game that I can't figure out.

The point of making games is merely to feed our own values. The two major values are (1) money, and (2) the pleasure that comes from making others happy, or entertaining them. #1 is a measure of #2 - if players are entertained by your game, they'll pay you for it. The more fun and happiness they receive, the more money they'll give you. I don't think these values are separate, and it's one reason why I think discussions of "true" art and good games are pretentious and miss the point. Make a game that makes you money, and that's proof that you're making people happy.

You could make a slot machine. You could fool a bunch of ignorant rubes into thinking they're smart; give the ESP types a reason to believe in their magical powers; and amuse the easily-entertained.

Alternately, you could put some real challenge into your game. Give players choices that actually matter; where choosing wrong will mean failure. Make success cost a bit, so they value it, but not too costly to burn them. Make some choices look difficult when they're actually not. But most importantly, play with their emotions. Players want a roller-coaster ride. Give them both achievement and entertainment, and they'll give you their money.

Monday, May 24, 2010

Real Effects of Cowboy Programmers

In my previous post, I talked about the perceived strengths and weaknesses of cowboy programmers. I described cowboy coders as isolated, shoot-from-the-hip, hardworking, and antiestablishmentarian.

Cowboy coders often write unreadable code. But it that a bad thing? When someone else needs to maintain the code, yes. When someone else needs to dig through an obtuse and confusing system to figure out which parts are the external interface, yes. When someone needs to look at a clunky, poorly-named set of interface methods, yes. But most often what cowboy coders have is unreadable implementations, which is mostly harmless. The output that matters most in team projects are (1) reliability, ie does it crash, (2) reasonable performance, ie as long as it's not abysmally slow, and (3) readable and understandable interfaces. If you know what a system does and the interface is clean, it doesn't matter what's going on under the hood. That's the whole point of encapsulation; hide the messy bits from outsiders.

Cowboy coders also rarely document. Yet this is a tenet of agile programming: code should be self-documenting. Parameter names, variable names, method names, class names -- all identifiers -- should describe what they are, semantically not syntactically. (This is one reason why I think hungarian notation is foolish; it focuses on something the compiler can do for you.) Variable names like "gc" and "q" and "theFileStruct" are horrible. If that's what any programmer on your team is doing, hit them with a stick. If their identifiers are well chosen, the external interfaces obvious, and the use of those interfaces clear, then again the lack of documentation is not a weakness.

Brilliant code rarely makes sense to other coders. Any brilliant person, scientist engineer artist or craftsman, is likely to be misunderstood. Not understanding them often isn't critical. In a team environment, the interface is what matters, and it's much easier to get a cowboy to make good interfaces than to try to force him to work like everyone else. He'll probably not do a good job, and the process will just piss the both of you off.

Loners can be brilliant cowboys or they could just be slackers. Be careful to not assume that someone that prefers isolation is actually getting something done. The best way to do this is to monitor checkins. Some good cowboys won't check in code for days, but when they do check something in their progress is obvious. Slackers might have the same lax check-in habits, but when they do finally commit what shows up is tiny. Slackers are a threat to your bottom line. Don't just tell them that you want them to check in more often; tell them that you're watching the volume of their check-ins. Slackers will either step it up and get work done, or find a way to quit or get fired. This is one of the important distinctions a manager needs to make about his employees - is he a cowboy, working diligently in the dark, or a slacker, surfing diligently in the dark?

Cowboys can also have an effect on the rest of your team. The best, brilliant cowboys might be reclusive but in my experience they haven't been anti-social. Slackers, on the other hand, are sometimes passive-aggressive or rude. Having a brilliant coder nearby is often an inspiration for the rest of the team; it makes them feel like they're someplace special. Beware of how the team views the cowboy. If the team respects the cowboy's brilliance, treating him like a misbehaving child can send a message to the rest of the team that you value conformity over performance - and that's what you'll get: a bunch of rule-nazis that do the minimum required and leave the building promptly at 5pm. This is the fine line of management: you want to give the cowboy room to do his thing without upsetting the rest of the team. Make sure the rules you impose aren't just to make you feel better; usually the purpose of a software team is to ship, not to measure code metrics. What matters are features and reliability. If you're getting those on a good timetable, be happy.

Your cowboys shouldn't be driving the rest of your team away. One of my favorite software-management stories is about a new management hire that refused to fire a problem coder that was pissing off other employees (driving them to quit). When the manager went to his boss, the boss fired him! Yet, after looking at the situation, the manager agreed with what his boss did. If a problem employee is driving others to quit, the thing to do isn't to coddle the problem employee; get rid of them!

Thursday, May 20, 2010

Perceived Traits of Cowboy Coders

"Cowboy Coders" shoot from the hip. They're lone wolves, programming heroes. They're respected for their work ethic, programming speed, and brilliance - but hated for their unreadable code, lack of standards, and arrogance.

There are many types of 'bad' programmers. The 'cowboy' label is used if the bad programmer has a high opinion of himself (deserved or not), ignores standards, and writes brilliant (if complex and unmaintainable) code. Cowboys aren't stupid, but they might be ignorant. They believe strongly in standards - but only their own. They rarely work well in teams, preferring to work alone. Many cowboys are also workaholics.

One of the perceived strengths of a cowboy coder is their ability to dive into tricky bugs, figure out what's going on (maybe spending all night working on it), and coming up with a complex and brilliant solution. Especially when a deadline is near.

One of the most hated traits of the cowboy is his habit of loudly disrespecting his fellows. This is one reason why cowboys work alone; they can't stand working with others, and others can't stand working with them.

But "Cowboy Coder" is a stereotype. Real people are rarely like that. It's fun to make up or read lists of programmer types, and "cowboy" is one of the stereotypes that I've heard the most. The qualities I've found distasteful in other coders are rarely like the perceived weaknesses of cowboys, and the strengths of good coders I've worked with are more complex that the "work hard" and "brilliant" attributes given to cowboys. Next time, I'll cover the strengths of weaknesses of cowboys that really matter in my next post.