In the tradition of Matt Groening’s Life in Hell…
“We really need a Factory Pattern for that Factory Pattern.”
Pros: Produces really really really loosely-coupled systems.
Cons: Output will never escape the layers of code.
“This enterprise needs to move to a service-oriented paradigm in the cloudplex to encapsulate polydactylism!”
Pros: Impresses the heck out of people who don’t know better.
Cons: Someone will eventually call bullshit.
Note: For fun try putting two in the same room to watch them throw nonsense at one another.
“Why don’t we just replace the company phonelist spreadsheet with a FOAF browser plugged into an object database?”
Pros: Thinks outside the box.
Cons: Must regularly be beaten back into the box.
“I’m auditing the process, not the person, and this person is not following the process!”
Pros: Will keep your organization ISO 9000 compliant.
Cons: Will make it so that’s all your organization does.
The Local Guru
“Oh yeah, this bug is usually caused when a stray cosmic ray flips a bit in the system. I’ve got a workaround for it.”
Pros: Knows every little odd detail about the system bits-to-gigabits.
Cons: Probably put a lot those odd details in the system to begin with.
“Can you help me debug this script I got from scriptkiddies.ru?”
Pros: Great at finding existing solutions online.
Cons: Will copy 10,000 lines of code into a program to make use of a custom replace() function on line 437 rather than figure out the regex themselves.
“Going home already? Must be nice…”
Pros: Work ethic of steel.
Cons: Works harder, not smarter.
“This would be so much more [efficient, elegant, convenient] in [Ruby, Python, .Net, etc]!!!”
Pros: Really knows their solution of choice in and out.
Cons: It’s never the solution for the project you’re currently working on.
“The answer is.. (tappa-tappa-tappa) …42!”
Pros: Can find the answer to absolutely anything online.
Cons: Will blackmail you over those photos from the party last weekend.
“Did you see the new min max algorithm in this month’s Communications of the ACM? It saves three steps over the current standard!”
Pros: Produces lots of White Papers on fantastic, revolutionary solutions using pseudo code.
Cons: Never produces a line of actual code.
Warning: Not to be teamed up with Bleeding Edge.
The Train Wreck
“Should I have put a WHERE clause on that delete statement?”
Pros: Means well.
Cons: Feeling sorry for them prevents proper dismissal.
“Object-Oriented, shmobject-Oriented, it’s all just assembly when you get down to it!”
Pros: Lot’s of great stories about the “old-days” of punchcards and renting time on mainframes.
Cons: Will use Fortran as pseudo code and give it to you to figure out in implementation.
“Software crash? That’s what you get for selling out to the Evil Empire. Sniff.”
Pros: Will save you tons of money on software licenses.
Cons: Will cost you tons of money on software maintenance.
“Instead of fixing the input, we should just rewrite the whole Cobalt application in .NET.”
Pros: Has fantastic vision.
Cons: Has fantasy vision.
“I pulled the area codes out of the customer_phone table and migrated them to a phone_area_code table and added an id to reference them. You’ll need to modify all the database views and procedures.”
Pros: Might actually achieve the fabled 6NF.
Cons: Database will grind to a halt from all the cascades and rule-fired procedures that go off each time you update a record.
“The variable $i is used as a counter in the following FOR loop which…”
Pros: Makes it look like your team is really good a documenting their code.
Cons: Makes your team look like they can’t read code.
“I found an unused variable in that class you just checked in… I prefer not to have such inefficiencies in my code, but that’s just me.”
Pros: Keeps an internal scorecard of every error every other programmer has made in the organization.
Cons: Isn’t keeping a scorecard on his or herself.
Note: These are caricatures of people, stereotypes, not real people. If you know me personally, please don’t think any of these were inspired by you. : )