Thursday, September 29, 2011

How Different Companies Respond to New Requirements

Apple

You don't need that functionality. We know what you need more than you. Don't argue with us. You don't need that functionality.

Open Source

That functionality is already implemented. You cannot come up with any requirement, which we have not yet implemented. May be they are just command line tools and may not have UI. Most of the companies just develop the UI on top of our libraries and sell as if they developed it everything themselves.

Microsoft

Nobody is asking us the requirements. Everybody is just hacking our software, and developing whatever they want. When we release newer version, and if those hacks do not work, then they just blame on us saying that, we don't maintain the backward-compatibility. The open source enthusiasts criticize us that, Linux is more windows friendly than Windows Vista, eventhough the fault is with those who hacked our softwares and developed applications with unsupported, undocumented, undisclosed internal APIs.

Google

We give 99% of the functionality required by 99.99% of the people. If you are in the minority, pray God.

Friday, September 23, 2011

Showing Off Without Showing Off

Do little bit of extra work everyday, which your manager did not ask for. Don't tell him/her that, you have done these things extra which he/she did not ask for. Later on, make them realize in an indirect way that, you have done lot of work, but your manager does not know about it, because, you never cared about the recognition, but cared about only the project and company. The recognition that you get would be much more than what you would have got by giving regular updates on everything that you have been doing [Provided that the manager is little good manager].

You left for the day from office and your manager called you saying, there is an urgent issue. Ask him the details of the issue, and tell him/her that, you would be in office in 5 mins. You know very well that, it would take minimum 15-20 mins. When you reach the office after 20 mins, don't appear to the manager, and directly start working on the issue. Once you reach a state, where you have some details and need your manager's decision on taking the next step, go to your manager, and give the update. Your manager assumes that you had come to office in 5 mins.

Your manager has asked you to do something of low priority, whenever you are free. With the work load that you have, it can be done in 2 days time. But, you are lazy and do not want to do it, but, have done only after 5 days. If the work is of something for which, the manager does not need to take any action after your completion, then don't inform him/her that the work is finished. Whenever he/she asks about the update of that task, tell him/her that, it is done long back. Your manager assumes that it is done in 2 days.

I have to accept that, I am doing these things shamelessly (few knowingly and few unknowingly).

Wednesday, September 14, 2011

Performance Optimization

My Manager: Is there any scope for optimizing the 8 reports?

Myself: I have to see.

(internally in my mind)

Four reports, I think, we can optimize because, they were written by others.

Other four reports, we can definitely optimize very well, because, they were written by me, and I know how crappy they are.

No offence meant to anyone

Thursday, September 08, 2011

Two Developers of Same Caliber Think Alike

If there are two developers who have same caliber, and if you don't like one developer (on technical aspects), and if you are not a developer, then don't criticize him/her at another developer who has the same caliber. Because, they think alike, and if you criticize one developer at another, then they will understand that it is your mistake, and not that of the other developer.

Many years back, in the company that I was working, a new project was started, and I joined that project with another developer who has almost equal knowledge as of me. Almost since the beginning, myself and the other developer had serious issues with two non-developers in that project. They used to give so many (stupid) suggestions on many design/architecture aspects, which we have thrown into garbage, and they were very unhappy with that. We used to rebel with everything that they used to say. We never interfered into their work, but, when they were trying to interfere in our work, we used to reject everything. They felt like, because of not using their suggestions, the project was going slowly. After few months, they had taken another developer who has more knowledge than me. Before he joined the team, these two non-developers had personal interaction with him. They criticized me and the other developer, and told him that, since, we did not take their ideas, the project was going slowly. They asked him to take the project in the proper direction by controlling me and the other developer.

After he joined the project, within few days, our work got reduced significantly. Previously, whenever the non-developers say anything, we used to spend lot of time in fighting with them. After he joined the project, he used to take the lead, and used to fight with the non-developers for everything. Myself and the other developer never needed to do any fighting and we were peaceful.

The non-developers thought by bringing that person, they would get the control of the project, but, it fired back on them. They never understood that, if one developer of some knowledge sees few issues in the design, then most probably, another developer of the same caliber would see almost the same issues in that design. Instead of trying to understand the problems in the others domain, if one gives suggestions and criticizes them, it would just fire back on them only.