Friday, December 04, 2009

A swapped mistake

Warning: Clueless/Helpless Software guys will definitely get this

Date: Some date in 2019

It is a normal, sunny (rainy?) day in Chennai. People have somehow made it to their offices amidst the jam-packed roads and the unpredictable weather. In short, it was just any other day for a Software Engineer Trainee (SET), except that he was assigned a high priority issue to deal with. For the sincere employee in SET, he immediately sets off to work and opens the file called (a c++ codefile that has code for the various Mathematical operations - say addition and subtraction).

It is not that complicated to understand what was in there. He starts reading the code to get a gist of what's been done. The start couldn't have been breezier and the flow smoother. For someone, looking at his face, they could have easily read that he is definitely enjoying what he is doing.

As he was reading, he saw something. His eyes constricted, nostrils widened, mouth curved and his cheeks bubbled up. Something is wrong! This is when the camera focuses on the screen that reads!

Sum = num1 - num2; //Sum is num1 - num2. COMMENT HAS NO TYPO
Difference = num1 + num2;//Diff is num1 + num2. COMMENT HAS NO TYPO

Now, its obvious that the SET gets so angry and frustrated. It is understandable that he abuses the coder who did this so many years back. It is right that SET thinks that the coder was nothing but stupid. But, what the SET doesn't know is......

10 Years earlier... (spiral swiveling)

Feature Lead (FL):
This is a funny problem. Are you sure it is swapped?
Ex-Software Engineer Trainee (XSET): Ya, it is swapped. I've checked my part of the implementation. I don't think anything is wrong there.
FL: What about the middle part that calls your implementation and assigns the sum and difference?
XSET: Well, thats just assigning my sum and difference to the respective variables right? It is fine. I've double checked.
FL: Do one thing. Check up with the Interface part and see if they have displayed the right values for sum and difference.
XSET: Fine. I'll get back to you after checking.

Two hours later...

System Architect (SA): Oh! They have swapped it in the interface part, huh?
FL: Ya.
SA: Send a mail to the team in the headquarters and request a change. We have 2 more weeks time for the delivery.
FL: Ok. I'll do that.

Two weeks later.... The Delivery Day!

FL: Finally, the team from the headquarters replied. It seems that they are not going to change it there. They have asked us to change the implementation by swapping the sum and difference.
SA: Oh! Do it that way. Raise a bug on your side and swap the values in your code.
XSET (thinks): So, all that is left to do is inform the Mathematics forum (who maintain math standards) that we are swapping the meanings of sum and difference of two numbers.
XSET (says): But, wasn't this design reviewed and approved? Wouldn't changing this defeat logic?
SA: I understand that there is a logical mistake here.
XSET (thinks): Oh, is it? I thought I did not concentrate in my first grade math class.
XSET (says): So, aren't they supposed to change it?
SA: The thing is the headquarters have released the customer documentation and in that they have gone by the interface definition. If we request a change now, they might come to a conclusion that the architects of the company are stupid.
XSET (thinks): Well, Can we blame them?
XSET (says): So, I'll change the code and look stupid to some guy who looks at this code in future.
SA: Well, you can add a comment near the implementation that points this out.
XSET (thinks): A comment that says "To really know who is stupid, check the interface part"?
XSET (says): Well, lets see. Even if I add a comment, it is human tendency to think that the comment has a typo rather than understand it the right way.
SA: So, you add the comment and write in CAPS: COMMENT HAS NO TYPO.
XSET (thinks):
XSET (says): Ok. I'll do that.

4 Expressions:

$ph!nX said...

ROFL!!!! And I'm willing to bet that the SET in 2019 is gonna add similiar code :

//As per the current Architect
Prod = num1 / num2 //NO TYPO
Div = num1 * num2 //NO TYPO

Guess who the architect is?? Our very own 2009 XSET :P

Chiju said...

I guess thats unlikely! A couple of more swapped incidents and the XSET would have to re-architect his career in first place! :P

VJ said...



so much for planning!

Chiju said...

well.. had to pay the price! :P

Post a Comment

Drop your feedback about this post here!