Pages

Subscribe:
Showing posts with label Software Engineering - Effects and Defects. Show all posts
Showing posts with label Software Engineering - Effects and Defects. Show all posts

Wednesday, October 20, 2010

Stupid Sam - Not so SOFTware learnings!


PS: Stupid Sam is an imaginary character. I'll come up with the character description when I like it.

Wednesday, January 06, 2010

Minutes of Meetings (MoM)

There is no such fun like a meeting where you play a responsible part and a set of dummies report to you and look upon you as the sole savior. You keep giving them instructions and learnings from your side. You see enthusiastic faces beaming at you (Beamer), a couple of them constantly suggesting ideas (Suggester), some of them making notes interestingly (Noter) and some even constantly sipping from their water bottles (Sipper) to keep alive and afresh. Except for the one round the corner, who has been keeping silence (Silencer) since the start of the meeting, you are happy with all the dummies sitting around you. You don't get enough of such meetings, do you? Finally, you decide to end this session of the meeting. The group disperses.

Once outside, the dummies get into a discussion.

Beamer: Hey Suggester! Looks like you have a complete idea of what is going on. I did the mistake of beaming in the beginning, I had to carry that on till the end.

Suggester: Are you kidding me? I just had to get words out of my mouth to keep from falling asleep. I guess Noter would share with us all he took down.

Noter: Well, if looking at a weird, hairy guy with muscles sketched out of a ball pen, I'm ready to share it right away. Well, Sipper had come prepared with a water bottle and all. We'll see what he has to say?

Sipper: Each time I sipped some water, I wanted to keep it in my mouth without swallowing, so that I stayed awake. It always works for me, but today, I fell asleep every time and kept swallowing. I have to rush to the restroom now. Before that, the only one left is the Silencer.

Silencer: All the time, I was cursing the guy who dragged me into this project. He promised me that there would be something that I had worked on before.

And you go to your equal and say, "I never knew the people would be so attentive. I need to actually prepare next time."
There are a lot of mannerisms and one-liners that constitute the body language understanding in a meeting.

1) If you have a list of tasks to be completed within a specific date and your manager says he'll give you a wishlist, it means, he is going to convince you that all the tasks are to be done.

2) Starting with "I want to know exactly" and ending with "approximately what I want you people to find out" implies, one has no idea about what has to be done.

3) "Lets take it offline" - a polished way to say, "Will you stop the crap?"

4) "Well, I was wondering about it too. We have to look into that", is a reply that most often (kinda always) means, "Woh! You caught me there dumbo!"

5) Turning the mobile to the silent mode - Meeting starts.
Turning the mobile back to loud mode - Meeting is too long, hoping to get a call and take a break.

6) "I'm done with this, any comments from your side?", is the statement that every dummy waits for so that one can give that gracious smile, a quick thanks and rush to the rest room.

PS: 1) This is just a right-to-left or left-to-right ear post. Don't think too much about it. Personally, I "love" meetings.
2) My B'day wishes to the Mozart of Madras. God Bless Him and He Bless us with his Music. Long Live Rahman! :)

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 MathOperations.cc (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):
ARGGHHHH!!!
XSET (says): Ok. I'll do that.

Friday, August 21, 2009

Looking up and around

I look up and around,
A fresh breeze blows within.
An occasional smile.
The aroma of fresh filter coffee -
I get going.

I look up and around,
A swarm of bees flying around.
I search for the INVISIBLE hot-air vent
But in vain.
I keep going.

I look up and around,
Its definitely time for a break.
I signal for some time,
But I know.
I will have to go.

I look up and around,
They don't want to frighten you.
But, their look does.
Don't have a choice,
I better keep going.

I look up and around,
The steam engine at its peak.
Calm faces of the cuter sex,
Work better than the chillers.
I know I have to keep going.

I look up and around,
Known faces beaming at me.
Meaningless blink of the eyes,
They seem to keep going.
I try to keep going.

I look up and around,
The back of my head exercising.
Hunt for freshness starts,
I know it doesn't exist.
But, I have to keep going.

I look up and around,
Few called it a day.
Few laze around.
Few stay put.
I force myself to keep going.

I look up and around,
There are definite echos.
Yet I'm still here.
I'm not lonely.
No other go, have to keep going.

I look up and around,
Feel the souls resting.
Spot-lights on the rest,
I work a smile on my lips.
I keep going.

PS: Dedicated to all those I ditched this weekend. Sorry guys! I have to keep going.

Saturday, October 18, 2008

The (ef)/(de)fects of software engineering

Disclaimer
All characters and incidents in this post are fictious.
(M)any resemblance(s)/similarity(ies) to anyone/anything, living/dead is/will be (im)purely coincidental/accidental.

Assumption: God maintains this world similar to a Software Company. God is the president/CEO, at the highest level in the organization. There are a set of Ministers under him who lead every department, like Birth Services, Death Services, Nature and Vegetation Control Administration etc. Once in a while, there would be a Product Performance Meeting(PPM). Basically, this is a tele-conferencing kind of procedure, where various issues are discussed, good performances are appreciated and awarded etc. The only exception is that they don't need devices for the conferencing. It is just buzzing in the mind and talking with the people. 

And there goes...

God: Good Morning to one and all! I welcome you all to Nine Hundred and Eight Seven Million, Six Hundred and Fifty Four Thousand, Three Hundred and Twenty First PPM in the Kali Yuga(Modern World). I call upon CULMIN(Call-name for Cultural affairs minister) to list out the agenda for today.

Cultural Affairs Minister: Good Morning all! The agenda for today would include (1) Performance appraisal for the last batch of Angels and Demons (2) Laying-off few years experienced personnel in birth and death services and (3) Last week's continuation on India.

God: HUMIN(call-name for HR Minister), What is the current market pay for the last year freshers? 

HR Minister: For the previous batch, the CTC for Angels range between 400-600 watts rings. For the demons, it ranges between 2.5-3.0 inches of teeth. 

God: We'll pay the angels 450, 500 and 550 watts rings respectively for appraisal points 2,3,4 out of 4. For the demons, let it be 2.6,2.7 and 2.9 inches for the same criteria as angels. 

HR Minister: So be it, Highness(Call-name for God)!

God: With regard to the laying-off the personnel for birth and death services, what is the status? 

HR Minister: The death services project personnel are not performing well these days. After the successful installation of Tsunami 4.5, there has not been an effective mass destruction software release for almost four years now, whereas the birth project team is over performing, especially in India. 

God: The world technology development team has done a good job all these years. The artificial intelligent systems forecast such destruction software releases to the end users and help them reduce the effect of destruction. Since no much businesses are available in the death services area, we could lay-off few employees. 

HR Minister: I'll instruct my team to develop a training programme where poor performers are given the pink slip. 

God: That would be an effective strategy! Bring up the issue of the birth services lay-off, after you are done with the death services personnel. 

HR Minister: Very well Highness! (Addressing the entire gathering)Any clarifications about the two issues? (Pauses for a minute and continues). Good then, let us get back to the argument about India.

God: Basically, i would blame the Career tuning services. Their Indian Politicians 3.2 project has failed miserably, giving defects and bugs at a regular basis. 

Career Tuning Services Minister: A detailed analysis on the crash of the project has been made. Further research is going on.

God: What was the lesson learnt? And did you make an entry into the Lessons Learnt Log(LLL) book?

Career Tuning Services Minister: We have found out that mistakes were due to a bug from the Attitude Control Module. 

Attitude Control Minister: Our module was a Critical To Quality (CTQ) one but the QA team did not perform usability testing properly. 

QA Minister: The design was tested extensively. Usability testing was not in the agenda. The defect is in the design.

Design Minister: The requirements mentioned that the product criticality level was Level E. Hence, the defect is in the requirement analysis.

Requirements Analysis Minister: Customer had given the approval before we sent the requirements to the Design team. Probably, customer requirements changed after the Baseline was drawn. Change Control Board(CCB) did not notify this to the requirements team.

CCB Minister: The project was undertaken before 1947. The customer environment changed after 1947, which was not foreseen properly. The project, on first hand was not feasible. Who approved the project?

Feasibility Analysis Minister: First hand analysis as per our company standards was done at the customer site. Previous experiences like Gandhian Politicians 2.3 were considered before closing the feasibility study.

God: How did Indian Politicians 3.2 impact the entire system? 

R&D Minister: The Indian Politicians 3.2 module was under criticality A that released outputs to the Indian Society 6.1 module. Then and there, defects in the form of terrorism, corruption etc were fed to the society module. 

God: What happened to the Reformation 1.0 project that was launched few weeks back?

R&D Minister: A bug from the Politicians 3.2 crashed the Reformation module!

God: Take educated people as input and create a new Politicians version. We'll test it in the customer's environment and imply changes if necessary. 

Feasibility Minister: The study has been made long back and it is not feasible. The educated people inputs work only with foreign modules.

God: Take adored people like actors as input and study the feasibility.

Feasibility Minister: We've made the feasibility study and a strange input called TR has been sent to R&D, for which we've not got the results. The outputs we got are way too hillarious to attend.

R&D Minister: If the TR input is given to the system, no clever test cases can be framed to test the system. Hence, we're working on the test cases currently. 
 
God: What about the students category? That would be an innovative try. 

Career Tunings Minister: If politics is passed as a parameter to the career guidance method of the students class, we get no constructive outputs.

God: (after thinking for a long time)Instead of bringing a new Indian Politicians module, we are going to eliminate the errors in the module. Everybody work on it and the discussion will continue in the next meeting.

Days passed by. God did not have any minister come up to him with any issue the whole time. God was anxious about the response and came eagerly to the next meeting.

God: Good Morning to one and all! I welcome you all to Nine Hundred and Eight Seven Million, Six Hundred and Fifty Four Thousand, Three Hundred and Twenty Second PPM in the Kali Yuga(Modern World). I call upon CULMIN to list out the agenda for today. 

God's Secretary: Due to the absence of CULMIN, i'm delivering the agenda. The agenda for today is: (1) Recruiting new ministers for all departments and (2) Last week's continuation on India.