This was inspired by a coworker making production changes late one Friday afternoon. Someone commented that making changes right before the weekend is Wild West crazy, and wearing a cowboy hat would be appropriate.

That got me thinking - over time, behavioural patterns emerge which reflect the attitudes and habits of developers. The following are the main personalities as I see them. 

The Engineer

Typical quote: "Everybody ready? Stick to the plan, guys.”

Hard hat worn by The engineer

  • Has full overview of current status and consequences of potential changes
  • Makes backups of everything before starting
  • Makes no production changes unless absolutely necessary
  • Analysis, changes and result are all documented
  • Uses test scripts during development
  • Uses automatic build and deployment scripts

Watching the Engineer in action is like: "Morning Mood" by Edvard Grieg 

The Soldier

Typical quote: "Cover me, I'm going in!"

Army helmet worn by The Soldier

  • Has a strategy for deployment, execution and fallback
  • Often uses automated test, build and/or deployment scripts
  • Seldom enters a live situation without cover from squad members
  • Can improvise when needed, but makes rational decisions which can be documented and defended afterwards
  • Has a documented plan, and documents the results

Watching the Soldier in action is like: "Ride of the Valkyries" by Richard Wagner 

The Silent Assassin

Typical quote: "...[faint swoosh]..."

Mask worn by The Silent Assassin

  • Confident of own ability, always works alone
  • Likes to apply changes manually rather than use build/deployment scripts
  • Makes improvised changes without notification
  • Leaves no documentation or clues to what changes were made
  • Seldom makes backups
  • Risky tactics, but gets the job done somehow
  • Damaging consequences are not discovered until it's too late

 Watching the Silent Assassin in action is like: "Flight of the Bumble Bee" by Nikolai Rimsky-Korsakov

The Cowboy

Typical quote: "YIIIIEHAAAA!"

Wild West hat worn by The Cowboy

  • Shoots from the hip, deploys untested code and config changes
  • Lone gunman, often works alone ("this server ain't big enough for the two of us")
  • Often skips automated scripts in favor of manual changes to save time
  • Makes production changes at random times, without notifying customers and colleagues
  • Chance of successful outcome is like a duel - 50/50 
  • If the site/server survives, it is often full of "bullet holes"

Watching the Cowboy in action is like: "The Good, the Bad & the Ugly" by Ennio Morricone

The Berserker

Typical quote: "AAAARGH! Take THIS! And THAT!"

Horned helmet worn by The Berserker

  • Works without a plan, just attacking randomly until it somehow works, or breaks completely
  • Applying random untested changes without realizing the consequences
  • Improvises and applies changes manually rather than using automated build/deployment scripts
  • Provides no documentation of changes
  • Leaves the site/server in a ravaged state afterwards

Watching the Berserker in action is like: "Carmina Burana: O Fortuna" by Carl Orff

The Clown

Typical quote: "Oops, I did it again."

Jester hat worn by The Clown

  • Works alone, often at times when no-one else is available to help (nights, weekends)
  • Makes changes without notifying customers or colleagues
  • Takes no backups, documents nothing
  • Uses no automated scripts for testing, build or deployment
  • Manually deploys untested code and config changes
  • Limited troubleshooting ability

Watching the Clown in action is like: "Requiem: Dies Irae" by Wolfgang Amadeus Mozart

Developer hats

We actually have these hanging on our office wall as a reminder of our responsibility.

Which hat is yours?

We've all met variants of these developers. We've probably all been a little of each type ourselves at some point. These are of course tongue-in-cheek sterotypes, but there's an element of truth in all of them. 

I'd like to think most of us aspire to be a mix of the Engineer and the Soldier, circumstances allowing. 

Which hats have you encountered? Are there any hats missing?
Which type of hat belongs to you?