Thursday, March 1, 2012

My First Data Structure Exam

Anyone who has completed their sophomore year in Computer Science should have learned about Time and Space complexity of algorithms. It is one of the most fundamental concepts in Computer Science.  I had a subject called 'Data Structures' for my Bachelors degree and there was a question like this for the 1st class test. "Explain time and space complexity of algorithms.".
And, this was my answer.
"Whenever a programmer writes programs, if he tries to reduce the time taken for execution of a program, then the space required would increase. If he tries to reduce the space required, then the time required would increase. So a programmer is confused as what to chose. This complex situation is called space and time complexity". - and I also wrote a couple of examples as well.
I was particularly proud after the exam as I was able to 'answer' that question even without reading any text book.  It was only after a long time I actually learned about space and time complexity. (the Big-Oh notation etc)

How smart!!

Friday, January 13, 2012

Software Development Process....

Software Development Process in IT Services company 

I do not know how many will agree, but this is what I think!

1) The project manager along with onsite co-ordinator gathers overall requirements from the client.

2) Using some models like COCOMO, the duration for development will be estimated to be around 12 months. ( Note that COCOMO relies heavily of previous projects delivered by the firm) But business managers inform the client that the project will be delivered in 10 months (to prevent competitors from grabbing the project away.)

3) Delivery managers splits the project into 2 parts – 1 to be developed at unit A of the company, and other at unit B.

4) The project managers at Unit A and B will be having an internal competition and so each will try to deliver the project ahead of the other, so givens a time of 9 months to his unit to complete the job!

5) The project begins at both units, and Software Engineers start the development.

6) Since the software service industry is heavily 'process-oriented', the developers are required to submit their 'activity reports' every week. This report will contain, among other things, the duration spend on each specific activity within the software cycle (like designing,test case preparation, reviews,coding etc). 

7) Developers were told this by their managers. “This process is estimated to take 10 hours, so if you want to get a good appraisal next time (Out-performer), you should finish it in 9 hours or less!”. (The original estimate would be definitely above 12 or more hours!)

8) The developers works hard but sees that it is going to take much more than 10 hours. But to get that 'Out-Performer' tag, he decides to work extra hours every day, but while submitting the 'activity report', he says the job was completed in '9 hours', (it actually took 15+ hours ) 

9) Developers themselves will be doing a lot of peer review and testing, and they are supposed to enter the defect information found in deliverable in some internal tracking tool. This internal repository is to be used for training purposes and to prevent the same in future. But most developers will not enter the defects found in peer reviews into this system, but informs the peer (usually his/her friend) about this offline. (in person). This 'mutual-help' habit is followed by all developers to prevent their bugs/defects from being recorded in the system.

10) The entire duration of the project will be like this, with developer submitting 'excellent' activity reports. Finally the project is completed and will be delivered to client and everybody is happy.

11)The end-result : Project will be delivered in time. All the internal systems will show that there weren't any defects/bugs at any point of the process and all jobs were completed well before the estimated times!

12)Now, the next project (very much similar to previous one) comes in, and the estimating models will be giving a much shorter duration for this, because the internal systems says these jobs can be done faster than ever thought of!!!!

13) And now the cycle repeats itself, with developers ending up working late nights/weekends and spoiling the good part of their lives.


"The trouble with the rat race is that even if you win, you're still a rat."

Sunday, December 26, 2010

Christmas releases..A Review...

After bit busy schedule at work, watched 4 X'mas releases back to back...Here goes a brief review on them..

1) Tournament(malayalam) - Scripted and Directed by veteran Lal, this is truly a youth movie. Excellent direction and script is the highlight of this movie, but the climax couldn't live up to the expectations. All the newcomers did decently well, and the songs were colorful and well choreographed. Cudn't believe it was Lal who wrote a totally youth-special script! There were no unnecessary shots, and all the parts connected well with others. Excepted a lot in the climax considering the build-up, but nothing happened really and it ended silently. Anyway I would give close to 7 out of 10.. :)

2) Best Actor(malayalam) : I went with lot of expectations about this but it was a disappointment for me. Mammootty was just okey, and the only good thing about the movie was supporting cast. Lal, SalimKumar etc did superb and minus that, the movie would have been a flop. Songs were just average, and script was quite weak. Will give it a rating of 5-6/10.

3) Manmadhan Anbu (tamil) - Again, I went with a lot of expectations about KSR-Kamal movie, but it ended up as the most disappointing movie for me. Kamalhasan is my all-time-favourite but, even he was only a shadow of his classic performances. Kamal's introduction sequence was awesome, and the only other good thing about the movie was the lovely locations (Europe, and cruise trip) which was cinematographed well. 2nd half was utter crap (reminded me of Kamals Michael Madana Kama Rajan at times with a low-fi comedies!) . Anyway 5/10 for manmadhan anbu..
(I know its irrational, but I except of classics from the Genius Kamal sir!)

4) Marykundoru kunjaadu : Beyond doubt, this is the real winner for this christmas. Dileep has made an excellent comeback with Shafi, and this is a pure entertainer to the core. Nice direction, script and average songs. :) However, do not expect something like thenkasipattanam/kalyana raman..:) 8/10...

Also, seen Karyastan, and Thriller. Karyastan was okey, some comedy here and there, sahicable..But Thriller was horrible :(. Prithviraj's cooling glass shows only and it was among his worst movie!

Tuesday, November 9, 2010

Aiming for the stars......

Companies in IT industry can be very broadly classified into 2 tiers.
Tier-1 companies, which include the likes of Microsoft, Google etc,
make software products and technologies. Tier-2 companies, where
Indian players like TCS, Infosys etc fall in, are predominantly
service based. I.e. they make applications making use of
technologies/products developed by Tier-1 firms. Let’s see some
statistics on salaries.  A junior developer in a tier-1 firm gets
around Rs 800000/- pa whereas their tier-2 counterparts get Rs
300000/- pa. For more senior positions, the gap widens more. (refer
www.glassdoor.com for more salary comparisons)

It’s no secret that majority of maceians are employed in Tier-2 firms
even though MACE is always considered among the best colleges in the
state.  4 years of engineering college life at MACE is not an easy one
at all, with more than 40 theory papers, 10 labs, 2 projects and a
technical seminar which are among the most sought-after for
plagiarizing by others.

          Despite having vast and deep knowledge about computer
science topics, maceians typically end up in service firms. In such
firms, they typically make/modify applications based on requirements
given or handle support tickets from clients. Many end up in testing
jobs as well. These jobs are mediocre and don’t require core
engineering skills.  On the other hand, imagine the kind of
professional satisfaction one gets from being part of projects like
‘Google search’, ’iPhone’ which has dramatically changed people’s
lives. So which side you want to be in?

                                               The main reason why
maceians end up in service industry is that, they are the only
companies conducting bulk campus recruitment. And we hardly see firms
like Microsoft, Oracle etc visiting our campus. So, if we need to find
jobs in such firms then we have to reach out to them and this requires
some preparation as it isn’t a cake walk. Let’s see how you can
improve your chances of being hired by technology players like
Microsoft, Oracle, Google etc (naturally these will also improve the
chances of being hired by service players as well!)

                               The first step is Networking-It simply
means making good contacts with people in the industry and people
having similar interests as yours and it will play a very crucial role
in your career. You can know about the technologies in demand from
people who are in industry. The best way to get a call for an
interview in a tier-1 company is through referral. Even in cases where
you don’t quite match the company’s requirement, which usually is the
case, if you are backed by someone within the company, chances are
high that you get hired. Apart from Mace alumni, professional
networking sites like LinkedIn and other sites including Facebook can
be useful in making networks. Don’t just spend your time playing Mafia
Wars and Farmville….. Do more or your career will be at stake.

   Next important step when you pursue a big dream is developing
good communication skills, which is not merely explaining your resume
and project, but it can be in forms of casual talks with your
interviewer while catching up on a coffee  about a recently released
movie . Talks can also be formal in the middle of an interview as it
expresses your keen interest in terms of technology and domain.
Clarity and brevity is very important while articulating you ideas.
This is not something that can be achieved overnight.  It’s a long
term process which requires certain amount of dedication. Various
things like engaging in group discussions with colleagues or even
online discussion boards, promoting English inside class rooms,
seeking professional help, regularly reading English articles,
blogging, writing movie reviews etc. can help a lot in this.
              And finally, the most important of all: having strong
technical skills –both theoretical and practical aspects; be ready for
an interview with a big arsenal. Each of the weapons in that should
give the interviewer an impression that they need this person. Do some
projects of your own; there are plenty of resources in the servers
across the globe which are just a click away; all you need is an
attitude to explore and excel. Open source projects will surely help
you in developing and polishing your technical skills.  Make the best
use of sites like sourceforge.net, codeplex.net etc. Be aware of the
latest technological developments. Take a chance to watch the
procedures of a company as a part of final year project, rather than
forcing yourself into some technology which is outdated or will be
obsolete soon, this obviously need some support from the department.
It’s also very important that you have a consistent academic score to
impress top companies as most of them consider academics from 10th
standard onwards….even though talent play its own role.

Don’t lose hope even if you don’t end up with your dream job after
graduation. You have the option of higher studies and if you can do
your post-graduation from a reputed institute, you have a good chance
of being hired by top notch companies as they visit most good
institutes for campus recruitment.  So consider preparing for GATE/GRE
or other exams during long semester breaks.  Also, taking technical
certifications add lot of weight to your resume.

All this might sound humongous, but like it’s said…. there are no
shortcuts to success. However, don’t have the misconception that you
need to be “Mr. NERD” to achieve all this. You can bunk many classes,
party every weekend and still you can achieve this if you have passion
and an attitude with fixed focus. Remember, always aim for the stars,
and even if you don’t quite reach there…..you can still make it to the
tree top.
“The future belongs to those who believe in the beauty of their
dreams.” - Eleanor Roosevelt


NB:
This is an article written by myself and my friend Lloyd George. This was published in Zing20, a souvenir published   in connection with 20th year celebration of Computer Science Dept. , MACE,Kothamangalam. (my alma mater)

Wednesday, October 6, 2010

More Regulations or Better Regulators?


When I had my 1st gprs enabled mobile phone, there was a dedicated 'Internet' button in it, which gets frequently pressed by accident. And each time the button is pressed, a certain amount is deducted from my account towards data charges, even though less than 5KB of data was transferred. Also, by default, focus is set to some expensive downloads like Games/Wallpapers (approx. Rs30/-) in the home page. So if we accidentally pressed 'I' button twice a reasonable amount will be deducted from our account.

If someone went to complain about this to the telecom czar, Telecom Regulatory Authority of India(TRAI) we know what would be the response!

Now, a similar situation occurred in USA. Verizon mobile was accused of charging its customers around $1.99 for a single click of 'I' button even if negligible data is transfered. Though Verizon denied it early, once FCC (american counterpart of TRAI) started a formal investigation into this, they yielded and started refunding customers' money to avoid penalty. The total amount is a whopping $90million. (roughly 450crores INR)

This clearly shows how weak our regulators are. India arguably has the best rules & regulations in the world, but when it comes to execution we lags by a mile!
Another similar incident is the notorious bhopal disaster- for thousands of lost lives, court punished the company a few thousand dollars, but BP was fined billions of dollars for killing few fishes in gulf oil spill!

Like someone aptly said "We dont need more regulations, we need better regulators"

Sunday, September 12, 2010

From iPhone manufacturers to iPhone designers…

“Which company manufactures iPhones & iPods? “ – A question which I have asked many of my students. And after some googling, all will come up with Foxconn as answer. But my intention is never to find out who manufactures iPhone, but to allude to ‘outsourcing’ industry which is led by China and India in manufacturing and services sectors respectively.
The ’iPhone manufacturing’ jobs done by the Chinese and the Indians can aptly be called ‘low-fi’ jobs as it doesn’t require innovation or high-fi thinking. Of course, it’s the cheap labor at coastal china which enables Apple to sell iProducts at low costs; but it is the innovative design and features which makes an iPhone, an iPhone, not the docile Chinese workers. Yes, it is true that Indian firms supply parts for Ferrari’s and Lamborghini’s, but it is the technology behind their engines which makes them kings of roads, not the Indian made nuts & bolts.
Coming to the big question, why do we have to do these low-fi jobs, instead why don’t Foxcon design an iPhone5? Why don’t HAL design a Boeing 748? Why don’t Infosys & TCS make a new operating system to compete with Microsoft? Simple and most apt answer would be ‘we don’t know’. It’s not that Chinese or Indians lack brains, but the best brains of both countries have one thing in common – they no longer hold home country passports.

The root cause for this issue is nothing but our sub-standard education system. Our engineering students can write tons of pages about almost any topic part of their syllabus, but their real knowledge of the subject is a big fat ZERO. Writing an essay about a topic and having real knowledge about it are entirely different things, as different as true love and infatuation. University exams only test a student’s ability to write down ‘chavar’(crap) about a topic and nobody ever bothers to peruse the answers sheets. And this motivates students just to memorize something and reproduce it at exam sheets. And as long as this trend continues, we will remain ‘iPhone manufacturers’.

Now, what’s the solution? I think teachers and students themselves must be vanguards in this shift from ‘iPhone manufacturers’ to ‘iPhone designers’. If teachers were to play a bigger role in this transformation, then our colleges should hire and retain real talents, people with real passion for teaching and with substantial industrial experience, not the ones who opt for teaching just because they could not find jobs in industry. Also, the teachers should not be tied down to college; constant efforts must be taken to hone their skills by sending them for industry projects/consulting etc. Teachers must encourage students to take up projects which are not merely some automation systems (comparable to iPhone manufacturing). Unless real support is given by teachers, students will be reluctant to take up ‘iPhone Design’ projects as such projects are inherently difficult and there is no guarantee of a perfect final output!

Having good teachers is just half the thing. It is the students whose paradigm must first change. They must be willing to take challenges in life. They must understand that the teacher who sets easy questions for exams is their enemy. Always remember ‘A smooth sea has never made a skillful mariner’. If the sea is not rough, pray for Katrina’s and Rita’s to hit you. For e.g., if India govt. had tried to protect Indian automakers in 1990’s from global players, we would still be driving ambassadors and maruti 800’s. In India, it’s practically impossible for all students to gain an in-depth knowledge in all the subjects, so they must select few subjects which they like (and also welcomed by industry) and deep dive into it. Innovations come only if one truly masters the existing technologies. And that’s what going make the difference between ‘iPhone manufacturers’ and ‘iPhone Designers’.

This paradigm shift is not an easy one for students. They will have to wake up from their comfort zones and start working smarter than ever. The onus of making India a real, global super-power is on our young engineers. They must become uploaders of technology rather than mere downloaders. So, be ‘iPhone Designers’, or innovators of technology.

A related post:

Saturday, July 24, 2010

Social Networking and Us..

Q: "Hey! Hows your best friend?"
Ans: "He is fine, we met yesterday also.."

Q: "Hey! Hows your best friend?"
Ans: "He is fine,I couldn't meet him, but we talked over phone"

Q: "Hey! Hows your best friend?"
Ans: "He is doing well. Got his SMS today morning as well"

Q: "Hey! Hows your best friend?"
Ans: "He is busy. But we chatted over gtalk for hours".

Q: "Hey! Hows your best friend?"
Ans: "He must be busy with work. Anyway has sent some offline messages"

Q: "Hey! Hows your best friend?"
Ans: "He is good. Couldn't chat but has sent scraps."

Q: "Hey! Hows your best friend?"
Ans: "He is excellent! Didn't have to scrap/chat. His status was posted in twitter. He will read my status as well from my profile. Cool!"..

What next?

Tuesday, July 6, 2010

Me and Indian Telecom Players

When 3G auction started in India, Uninor stayed away from it, They responded "India is not yet mature for 3G". I didn't understand what the meant by that then, but my experience with mobile operators prove that 'Indian telecom companies are matured for nothing yet'.

Here's my story.

Lemme start with my first mobile phone. It was a Nokia 4300 (which had radio)and I took Escotel (current Idea Mobile) post paid connection. Unfortunately on the 1st day itself, the phone was stolen . I was upset and immediately went to Nokia office in Cochin, called up Escotel customer service and reported the theft and even gave a complaint at local police station. A month later , Escotel sent me my bill! Stunned and I called them up (calling Escotel customer care from Bsnl landline was not free!) and asked why am I sent the bill since I have already reported phone theft/sim loss. The customer care executive replied I should have given a written complaint to inform theft and also I will get my security deposit refund only if I present myself at their Ernakulam office in person!... GRrrr....

>If they really had good customer care, they should have told me about giving written complaint when I called to report the theft.

Months passed.I am now having a GPRS enabled cell phone and had activated gprs service from Airtel. There is a shortcut key to start internet in my phone and by default it goes to some Airtel home page. Since the connection is too slow, I pressed center button once. (the screen was still loading). Few minutes later, I found my balance lower by Rs30. !!! Later I realized that, in the home page of Airtel, the focus is, by default, set to a button which says "Download abcd game Rs 30. only". So when I clicked center button that download got activated and 30rs was gone, with NO CONFIRMATION asked.

> Its great business acumen to put default focus in home page to a 30rs download, but this is not the way to treat customers. (remember, mobile internet was not that common yet!)

Next one was with a CDMA landline from Reliance. We got a bill (along with a warning/threat) from them around 1 year after disconnecting the service. Got escaped from it anyway.(we replied with a counter notice with the help of an advocate)..

Similar story happened with us with Airtel Broadband, Mangalore. After disconnecting their service, one day we took the modem/phone to the local airtel office and asked if we have any pending bills. The customer care officer checked and said, "There is no need to pay the last bill amount (around 799rs) as we are entitled to get Rs1000/- security deposit back from them. Also keep the modem/phone at home, their representative will collect it from there.".. We went back home and one day a courier came from Airtel. We were all excited about getting some cash since it was month end and our wallets were almost empty. We were stupefied when we opened the envelope! It said "despite repetitive request from our executives, you have refused to pay due amount to Airtel and also you refused to surrender the equipments". It also threatened to initiate legal action if not responded in 15 days. Got really frustrated with the language they used, and I complained to nodal office. (the issue got solved in a weeks time with 3 or 4 Airtel executives deluging me with apology phone calls)

Next is with Vodafone! I took one add on pack from Vodafone, which deducts 56rs per month for getting all STD calls @Rs1/min. One day I recharged for an offer by which all my std/local calls rates were slashed to 50paise/min for 1 year. Still, that 56rs was deducted every month! When called at customer care they said I should explicitly cancelled that plan!

> No words to describe these kinda stupid rules to squeeze customers.

And the latest ones...
Airtel is back!!
I activated GPRS connection with Airtel. Went to a local airtel office and asked what should be done to get unlimited GPRS for a month. They said recharge for 98rs and 1 month GPRS free. I did as they said but still money was being deducted for GPRS usage! Tried calling customer care, but I was not able to connect to customer care executive. It took around 4-5 minutes to navigate to GPRS section , but there was no human support there.. Just automated advertisements of their offers and craps. I spend more than 2 hours finally to get to speak to an executive. He said he is from GPRS tech support, but he didn't even knew basics of mobile phones!
He said my balance is getting reduced because I have recharged with 98rs flexi recharge, instead it should have been paper recharge, which used a different set of settins bla bla bla.... I asked whats the difference and informed that it was a local airtel office which recommended this recharge. Then he said" I am from GPRS tech support, you should get in touch with regular customer care to get information on recharges". I wasted my next hour dialing customer care no to speak to a executive but failed! Somehow I found a *55%#5* or some number like this and spent another 98rs to get GPRS free.

And the latest one happened a week back..
Airtel again.
I got a message from Airtel, "dial *55*## something... to get 10 minutes free std/local minutes!!"..

Excited about it, I keyed in the number and Immediately a message came "Rs 5 have been deducted from your account for this service. You 10 minutes free call should be used with 24 hours! "

Is this what they call "free" ??

All this happening from a company headed by one of Asia's most acclaimed entrepreneur.

Hundreds of another instances have occurred to me/friends/relatives.
Yes, India is faster growing mobile market in world, but unless Indian operators learn basics of customer care, I don't see much future for them..


Regards,
Cijo

Tuesday, May 11, 2010

Few suggestions to online travel sites

I had a bad time searching for flight information last day, and here goes some suggestions.


1)For flight search, have an option to show flights available in chosen date +/-3 days. yatra.com and makemytrip.com has this feature , but cleartrip.com does not have it.
Additionaly if there is an option like "shift dates by 'n' days", in the search result, it would be really helpful. Silkair has this facility.

2) A frequent error encountered after selecting a flight from search results is the message: "sorry flight not available." If flight is not available why do they even come up in search results? A very irritating feature found in cleartrip.com is that, this error message comes up after we fill in all passenger information, and if we chose a different flight, then all the passenger information needs to be typed in again. This wastes a lot of time especially for people who are not that quick with keyboard. yatra.com also has this error message coming up very frequently, but the message pops up immediately after clicking book button, so there is no need to waste time entering passenger information.

3) All sites require us to type the passenger names exactly as per passport. But these sites has a limit of 28 characters for name fields. So what do people with long names do ? Most people who encounter this issue will call up customer care and the reply they get is, type in only as many letter as would fit in the space. The best solution would have been to increase the character limit or at least write down the message ("type in as many letters as would fit in the space given") near the name field itself, so as to avoid a expensive 5 minutes traffic to customer care.

4) Have a toll free customer care number which is available 24/7. Do not always expect customers to make calls to paid lines and that too during your office hours. (cleartrip.com doesn't show any toll free numbers to their customer care in any of the search results page and out of frustration I tweeted about this. ClearTrip replied saying that toll free number is available under the link http://www.cleartrip.com/support/. Why don't they just display the toll free number in search results as well, as done by other sites? You just lost a customer because of this.

5) Make a flexible payment option. For international travels, the total amount may be higher than the credit card limit for most users. And while booking via phone, only credit cards are accepted. yatra.com has a superb offer under which we only need to pay 35% of total amount upfront and the rest can be paid before flight dates. This is really helpful if one is booking flights too advance.
Also Emirates has an option for not paying any amount while making online reservation! The full amount can be paid in cash/dd to a Emirates offer within 3 days of online booking.

Wednesday, March 10, 2010

Picking a fight!

NO. I dont mean physical fight! I am referring to constructive arguments with people. Acc. to me , one of the best way to innovate and improve ones knowledge level is to engage in healthy fights between co-workers,college mates and friends. I can tell you numerous instances from my own life where I had fighted with friends over things which looked ‘silly’ for some others. But those are the moments which created sparks of ideas in my mind. My fights with one of my best friend Tarun which usually lasts for hours over phone and it mostly ends up in some new idea which we both never thought of before. Our paper presentation topic which fetched us plenty of cash prizes & certificates was the result of one such fight!
The urge to prove one’s idea superior to others will motivate you to analyze the situation much better than before, and even If at the end you lose, dont worry: you learned a lot more than you would have learned had you not fighted !
From my experience the following must be noted while ‘picking a fight’.
1) Be careful not to take the fights personal. One of my senior manager commented about his experience in Infosys “ this is the place where I can fight and argue with even my boss without the fear of red ink in my employement records and without affecting the personal relationship with my boss”. Never be afraid to ask questions with colleagues even to your boss. Only thing is, be careful not to take things personally. Like Michale Corleone says ’its not personal Sunny, Its strictly business’
2) Make sure you supply justification to your arguments. After all, we are not politicians. You should also help your opponent in finding out justification for their ideas. In this process you will not only understand you opponents stand much better, but also you will be able to provide better justification to you own arguments! Paraphrase your friends’ view just to make sure you understand their stand thoroughly.
3) Make sure you are going in right direction. Sometime in the spirit of fighting, we may deviate from our topic which results in unproductive fights. At frequent intervals, ask yourself the question “are we going in right path?”
4) Never be afraid to involve a third person if you think your fight is not finding an end in a reasonable amount of time.
5) And finally, never forget to appreciate you opponent for their efforts.

(I once had a beautiful experience in one of my project, where me and other 2 team mates had long productive fights over detailed designs. Each of us came up with our own ideas, but we fought over it for a good amount of time, until we found out new ways of doing things which none of us never thought about before!! Its really a good thing to work with team members with such fighting spirit.)
What are you waiting folks? Go and pick a fight!