Cowboy Coders are programmers who write code according to their own rules. They may be very good at writing code, but it doesn't generally follow the standards, processes, policies, or anything else derived from the group. Cowboy Coders work well alone, or in the old-style CaveProgrammer environment, but they rarely, if ever, work well in a team. Often times, they are a burr in the saddle that keeps the team from getting positive work done.
The above elicits mixed emotions. I have often been a CowboyCoder; in some circumstances I didn't have a choice (I was the *only* coder on the project); in others, it was inherent in the context : no team rules, standards, or processes, and a division of labor which put senior developers in charge of different projects, with little opportunity to elaborate such standards as a team. I didn't like having the pattern thrust upon me, and I'm pretty sure I'll do much better in a team.
CowboyCoders are identified more by their attitude than by their circumstances. CowboyCoders prefer -- nay, insist! -- to avoid standards, processes, and policies, and hate working with others.
Some CowboyCoders work in packs as GuerillaCoders, self-supporting their behaviors. See RamboCoder.
See also CowboyCoding, ShootFirstAskQuestionsLater, LoneRangerCoder.
The Cowboy Way:
-- RusHeywood [list appended to by other WikiZens]
Judging by the traits and attitudes in the list above, narcissist coder would be a much better term. Cowboy remains ironically a propos as a good example of the kind of romantic ideal false self image that a narcissist coder would maintain.
Alas, alack. To be free to roam on the plains again.
A good Cowboy knows how to handle his pony. And knows a few things about roundin' up cows too. A good Cowboy is skilled.
Sadly this excellent name for a coder with excellent qualities has fallen into poor use. It's been conflated with one who would be a HackishRogue?. A KludgeCoder?, a brain that instead of firing on all cylinders gets foggy and fuzzy (and mixes metaphors to boot). Nope, a good CowboyCoder is easy in the saddle. Smoothly expressing clarity of thought.
Let's reclaim this hero of our frontier past! Long live us CowBoysAndGirls?! Let's dust off our hats and sit tall in the saddle.
Giddyup oh silicon pony!
-- EzraEpstein
The term "Cowboy" is these days used more likely for the prototypical dumb american hick instead of any ideal type. It has been in that use for ages.
Someone who has no idea about manners or established science but stumbles around with common sense that works and is essential on the range but falls way too short when dealing with matters strange to him. Matters such as civilisation where justice no longer means every man for themself and may the fastest gun win.
They are usually mostly oblivious to that condition and insist on not learning anything that doesn't fit into their old thinking of "dats my saddle, dats my horse and that's where I shot the last injun came snoopin *spit*".
You still need to deal with the RuggedIndividualist? issues of the Cowboy. He'd rather strike out on his own than change to fit the society around him.
Right you are. But lonely coyotes sometimes do croon together. Still the best cowboying I done did was with one or two others. I think marketing grabbed onto this and called such HotGroups?. If the work gets done in the order needed, what's so wrong with that? -- EzraEpstein
This is a bunch of baloney. Real agrarian livestock handlers work always in pairs or small teams, never alone. They only used tried and true methods, and they "feared God"; their term for risk management. -- PhlIp
Indeed. Most of the Western mythology deals with lawmen, outlaws, and "injuns", with six-shooters a-blazing; not folks whose profession it is to drive/herd cows. Cattle drives generally make for boring narratives--it's long, hard, dusty work; with nary a shot fired.
Not to spoil the effect of identifying heinous coder personality traits, but I've known a cowboy or two (heck, I've even been a cowboy or two). The "cowboy" you describe would certainly never have made it on any of the ranches of my acquaintance.
These seem to describe the gunslinger or cardsharp. The cowboys of my personal acquaintance were more aligned with XP practices (simplest thing, pairs, etc.). I understand that it's a common (often non-USA) perception that the cowboy is "rude" but I'd have to say mine have all been courteous to a fault.
I suppose we're stuck with the term, since it enjoys popular use, but I would certainly be inclined to hire a programmer whose resume included "worked for 5 years as a cowboy." So, don't be offended, all you cowboys out there. You cast a long shadow, so you're gonna be mis-characterized. You're welcome at my place. -- GarryHamilton
Indeed, "Cowboy" as it's used here has nothing to do with Cowboy as it's used to describe actual, breathing cowboy-hat- and huge-buckle- and skin-tight-bluejean-wearing cowboys that populate, at least, my region of Texas. Those cowboys are stereotyped more by their practice of partying Saturday night and showing up at First Baptist Sunday morning (in case you don't know, most Baptists say drinking is wrong) than they are by their rugged individualism. Heh. And yes, they're polite, and generally very outgoing and jovial.
Much to Terry Redlin's dissappointment, the term Cowboy has probably lost its last bit of pop-culture nostalgia with Kid Rock's rap anthem [I wanna be a] "Cowboy". Kid Rock's individualistic lyrics ring closer to this CowboyCoder. Cowboy 1 is not Cowboy 2 is not Cowboy 3. -- DeanGoodmanson
I've been tempted to cover a CowboyCoder's desk in these on April Fool's day: http://en.wikipedia.org/w/wiki.phtml?title=Wikipedia:Bad_jokes_and_other_deleted_nonsense/ASCII_cows
I have also found a sense of accomplishment (for the sake of it) in the cowboy programmer in me.
The cowboy gets his glory performing trickroping shows; he prides himself of doing tricks like few. So...the cowboy programmer is for the glory moment, the ego-feeder flash that puts him above ignorant and poor sub-beings (in his view).
That is all that counts for him.
Quality, professionalism, accountability, communication, good design, etc., are bored things for him.
He is ever looking for the next opportunity to get his glory, no more.
For me eXtreme Programming values, principles and practices represent an anti-thesis of such a mindset -Marco Dorantes
This term represents a total misunderstanding of what a real cowboy was or is.
Possibly, but the term has stuck, for good or bad. "Indian giver" was based on inaccurate stereotypes, but it's now on the (slow) road to removal from everyday usage, being considered ethnically offensive. I'm not sure if "cowboy" qualifies as an ethnicity. It's a profession. The stereotype is based in part on the perception that a cowboy mostly works alone, and the "rugged individualism" stereotype of the so called "wild west" where civilization and the rule of law was sparse, as portrayed on movies and TV.
I come from a small town outside Austin/San Antonio...so I naturally dress like a true cowboy (minus spurs and chaps of course)...guess I might be sending a message I wasn't aware of!