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.
Thursday, September 29, 2011
How Different Companies Respond to New Requirements
Friday, September 23, 2011
Showing Off Without Showing Off
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.