Victor Stone
Microsoft Corporation
November 13, 2000
Sometimes it's hard to fit into a new environment. Despite the wheelbarrow-full of handbooks, guidebooks, pamphlets, contracts, leaflets, and brochures from HR, security, payroll, benefits, the copy center, the cafeteria, the diversity training group, the anger-management team, the carpal-tunnel ergonomics staff, the phone guys, the network crew, and the plant lady, the newbie developer is still likely to cause check-ins so bad the tree has to be frozen for three days to recover, build breaks that delay the shipping of the product, and show-stopper bugs they never realized were assigned to them that fall through the cracks. Not to mention the unbathed smells that waft through the halls.
But the most costly pitfalls revolve around the intangibles. Even industry veterans might not immediately recognize the subtle nuances of office and e-mail chatter after a transition to a new group or company. Apart from the sacristan tome of political correctness known as "The Rules of E-mail Etiquette," the missing piece from the initiation ritual is a parser and translator for the language of the realm. Such a parser could follow these rules (expressed in modified Backus-Naur form):
input:
input-elementsopt
input-elements:
inane-element
input-elements inane-element
inane-element:
comment
white-space
blank-stare
token-praise
comment:
fear-based-derision
jealous-hormonal-imbalance
dysfunctional-home
dysfunctional-home:
mean-mommy
[detached | missing] daddy
A translator could then use a parser built on such a rules engine to help new members of the team make some sense out of the dialogue they might encounter in those first few steps toward assimilation. The table that follows contains some examples of how that translator might work, given valid, parsable input.
Input |
Parses to |
I'm confused. |
Try making sense for once. |
I'm probably missing something. |
I'll try to talk slow. |
I'd be curious to see the results. |
I've seen this done a 1,000 times by better people than you and they failed. What do you think your chances are? |
I'm evaluating the technology now. |
I can't find a single redeeming facet. |
Our customers |
My Uncle Friedrich |
Fixing bugs |
Adding features |
Working late |
Playing Quake |
Dinner |
http://www.jonessoda.com/whoopass/index.html |
Developer's conference |
Boondoggle |
Marketing genius |
Joke [of the oxymoron type] |
Coding guru |
Infantile ego |
At a recent architects meeting |
At last night's poker game |
Your name came up. |
We had a huge laugh at your expense. |
He's perfect for that job. |
He's your problem now. |
Good grasp of the big picture |
Can't code to save his life |
A whiz with details |
Has no clue why anything happens |
A thinker |
A danger |
Management is starting to get a grip on the project. |
Do you have any openings over where you are? |
We're doing leapfrog development. |
We will never ship. |
<all lower caps> |
You're not even worth the shift key. |
I've been heads down. |
I was hoping you forgot I worked here. |
The executive staff asked me to look into this. |
We can't find a single customer who wants this. |
Marketing is all over this. |
We don't have an engineering solution. |
Documentation is evaluating options. |
Resumes are out. |
Testing refuses to sign off on the bits. |
Call manufacturing. |
The API is very powerful. |
The API is impossible to use. |
The API is very simple and straightforward. |
The API has never been used in a real-world scenario. |
The API is oriented toward productivity. |
The API runs like a lame dog. |
We decided to go strategic instead of tactical. |
We're shipping with lots of bugs. |
We decided to go tactical instead of strategic. |
We're shipping without any real features. |
We think we've hit the strategic and tactical goals. |
I am a liar. |
We punted that feature to the next version. |
Your idea sucks. |
Imho |
wtf |
imvho |
rotfl |
Good luck! |
You're doomed. |