Management announced today that it will be implementing a 3×1 cube policy effective immediately. Three employees will be assigned to one cube and only one wall per cube will be provided. The wall—made from recyclable scrap wood—can also be used as a portable desk top as seen in the picture above. Management says that the new policy saves money, promotes harmony in the workplace, and reduces the carbon footprint. Management is exempt from the policy.
Rams are tough. Sheep are timid. Rams like to butt heads. Sheep like to run away. To be the leader of a flock, a ram has to butt the hardest. This is how the lead ram earns its spot—by intimidation. Not all rams butt heads though, some rams are just buttheads.
I’m often asked during job interviews what I like least about being a tester. I usually reply, “The view.” No one ever seems to get this joke, but I think it’s funny because you can take it a few different ways. For me the toughest part of my job is working with developers who like to butt heads with testers for no good reason at all except for their clear lack of respect in what we do. Now, don’t get me wrong. I’ve been blessed in my career to work with some of the most talented developers in the world, but I’ve also been cursed with working with some of the worse—the butthead rams.
I also disliked working around testers who act like sheep when they encounter butthead rams, especially the QA managers who are supposed to shield us from these intimidating creatures. Now I know that a ram is nothing more than a male sheep, but did you know that there are two kinds of male sheep—those that remain intact and those that have been castrated? The former are referred to as tups—maybe a perverted form of the word tips—and the latter are referred to as wethers. Ewes are female sheep, but “ewe” already knew that, right?
As a tester, you are going to encounter a butthead ram from time-to-time. You must treat these battles no differently than the age-old struggle between good and evil. Testers are good and butthead rams are evil. You may be a person who dislikes confrontation and you may do whatever it takes to avoid it. You can’t avoid it though and I can prove it by showing you my emotional and physical QA scars in the privacy of a dressing room.
So here is my advice. Heed my words well, tester. You must stop with the self-castration. Be a tough tup, not a weak wether. Do what you do best and that is to find bugs. If the butthead ram persists in giving you a tough time, then you have no choice but to throw it down on the ground and shear it until there is nothing left but stubbles of humiliation. Then make a trophy jacket out of its wool. Wear it proudly and wear it always at work—for it will make you invincible to the insults spewed forth from the ram’s forked tongue. If that doesn’t work then just try to get along professionally or find another job.
[RENO]: Hey, John you got a minute?
[JOHN]: No, I am busy.
[RENO]: I’m writing my monthly status report and I need your help with something.
[JOHN]: Sorry, I don’t have time now.
[RENO]: I wrote this batch file that copies a file from one server to another. I want to include it in my status report, but I need to beef it up a little bit.
[JOHN]: What do you mean?
[RENO]: Well, writing the batch file was the only thing I did this month except for writing this stupid status report, of course.
[JOHN]: Of course.
[RENO]: Can I call my batch file a script instead or, better yet, can I call it a program?
[JOHN]: I don’t really care what you call it. Just get the hell out of here.
[RENO]: I think that writing a script or program sounds much better than writing a batch file. What do you think?
[JOHN]: I think you are an idiot. Please go away now.
[RENO]: Here…take a look at my script.
Reno shows John his batch file.
COPY reno.log reno.bak
[JOHN]: That’s it? You spent an entire month on this?
[RENO]: Come on, Bro. Help me out on this.
[JOHN]: Ok. If you leave me alone afterwards I will help you.
[RENO]: It’s a deal.
[JOHN]: Now, let’s get started. In order for something to be thought of as a computer program it must contain at least a variable, a loop, an if statement, and an execution command. The copy in your batch file is the execution command so that part is already done. Let’s add the other components.
John begins to edit Reno’s batch file.
[JOHN]: First we add a variable by assigning your file name to it:
SET fileName=reno COPY %fileName%.log %fileName%.bak
[JOHN]: Then we add the if statement. We call this branching, Reno.
SET fileName=reno IF EXIST %fileName%.log COPY %fileName%.log %fileName%.bak
[JOHN]: Finally we need to add some looping. We call this iteration, Reno.
[JOHN]: How long does it take for the file to copy?
[JOHN]: Reno! How long does it take for this file to copy?
[RENO]: Uh…probably about an hour.
[JOHN]: Perfect. Let’s copy it eight times in a loop as such:
SET fileName=reno IF EXIST %fileName%.log ( FOR %%A IN (1 2 3 4 5 6 7 8) DO ( COPY %fileName%.log %fileName%.bak ) )
[RENO]: Why eight times?
[JOHN]: Eight hours is considered a full work day, right?
[RENO]: Uh…yeah. Huh.
[JOHN]: So here’s how you’re going to write your monthly status report:
As a senior coding architect, I designed, developed, and implemented a highly sophisticated program to back up time sensitive, data critical content from one secure location to another eight times a day. Each copy takes approximately one hour. This means that my automated program offers a total cost savings for the company of one full-time employee per year. Using the latest in artificial intelligence and machine learning methodologies, my program is able to determine whether it can copy or not. My program is also designed to terminate by itself without human intervention.
[RENO]: Huh. That’s awesome. I really appreciate it.
Reno was eventually promoted to CEO for his program. John was assigned to maintain Reno’s code. John later shot himself eight times with a six shooter.