Tuesday, March 30, 2004
The pragmatic, socializing programmer
Programmers have always been described as being nerds or geeks with close to zero social skills. They have been said to be more comfortable with machines than people. It struck me that if there exist programmers that behave normally, people are more akin to think that they are not as competent in their craft! To put it another way, the more social skills a programmer has, the lesser he or she is good at his/her work. I sincerely hope people do not gravitate towards this opinion, if they haven't already done so. With the emergence of terms like "pragmatic programmer", the tide seems to be turning. Dave Thomas and Andy Hunt talk about programmers that work pragmatically, ie churning out the best work with good, easily available tools so that the software created actually helps to automate business tasks, and makes the customer see actual value in creating software.
I sincerely believe that if this approach is not taken, the programmer will not be seen as an asset anymore to the organization or customer. In fact, I think that one has to go beyond this and also set right the "people" aspect. By this I do not mean social skills outside of the workplace. I am referring to the ability to be as comfortable talking to users and managers as to other developers. Granted this is a tough task. However, some things make this easier - like thinking about the big picture of what your program is trying to accomplish. Once one starts thinking that way, it is easier to be more social. Here are some things that might help to be that way:
- When talking to users, give them the impression that you can do anything with the software. That, in most cases is not true but it will at least get them comfortable enough to talk about what they really want - and only they know what that is. A customer who feels that you really want to give him value will be more willing to negotiate on features and times.
- Make it a point to frequently demo the software - like every week or two weeks so that the customers get reassurance and also get comfortable with what they will be getting.
- When talking to managers, be clear about what you can estimate right now and need time to estimate. Your estimate will be off many times but the key is to not be off by say 100%. This will be easier when you get more familiar with your application.
- Give frequent status updates to the manager even if they do not ask - either through an informal chat at the coffee machine or cafeteria. If that's a challenge then there's always email.
Of course all this is a way to broadcast to the public that you are working. Keep in mind that all this is utterly useless if you don't actually do what you say! The ultimate indicator of your "worthiness" to a company is frequent output of "good-quality code" - or as Ron Jeffries says "clean code that works".
Programmers have always been described as being nerds or geeks with close to zero social skills. They have been said to be more comfortable with machines than people. It struck me that if there exist programmers that behave normally, people are more akin to think that they are not as competent in their craft! To put it another way, the more social skills a programmer has, the lesser he or she is good at his/her work. I sincerely hope people do not gravitate towards this opinion, if they haven't already done so. With the emergence of terms like "pragmatic programmer", the tide seems to be turning. Dave Thomas and Andy Hunt talk about programmers that work pragmatically, ie churning out the best work with good, easily available tools so that the software created actually helps to automate business tasks, and makes the customer see actual value in creating software.
I sincerely believe that if this approach is not taken, the programmer will not be seen as an asset anymore to the organization or customer. In fact, I think that one has to go beyond this and also set right the "people" aspect. By this I do not mean social skills outside of the workplace. I am referring to the ability to be as comfortable talking to users and managers as to other developers. Granted this is a tough task. However, some things make this easier - like thinking about the big picture of what your program is trying to accomplish. Once one starts thinking that way, it is easier to be more social. Here are some things that might help to be that way:
- When talking to users, give them the impression that you can do anything with the software. That, in most cases is not true but it will at least get them comfortable enough to talk about what they really want - and only they know what that is. A customer who feels that you really want to give him value will be more willing to negotiate on features and times.
- Make it a point to frequently demo the software - like every week or two weeks so that the customers get reassurance and also get comfortable with what they will be getting.
- When talking to managers, be clear about what you can estimate right now and need time to estimate. Your estimate will be off many times but the key is to not be off by say 100%. This will be easier when you get more familiar with your application.
- Give frequent status updates to the manager even if they do not ask - either through an informal chat at the coffee machine or cafeteria. If that's a challenge then there's always email.
Of course all this is a way to broadcast to the public that you are working. Keep in mind that all this is utterly useless if you don't actually do what you say! The ultimate indicator of your "worthiness" to a company is frequent output of "good-quality code" - or as Ron Jeffries says "clean code that works".
Thursday, March 11, 2004
The magic of Ramesh sippy's "Saagar"
Very few times has a Hindi movie provided attained excellent quality like the movie "Saagar". The film stars kamalHaasan, Rishi Kapoor and Dimple Kapadia and is excellent entertainment for over 2 hours. The great thing about it is although its a simple love story the concept of which has been repeated umpteen times in Indian cinema, its one of those few times when most of the situations and flow of the story mirrors real-life.
Kamalhaasan gives an excellent performance, as expected, as the hard-working fisherman secretly longing for the pretty barmaid Dimple. Dimple, not very applaudable in the acting department, provides good eye-candy without resorting to any vulgar dresses or dancing. The surprise of the movie is the brilliant performance of Rishi kapoor, who given a very simple role as the rich boy desiring a poor girl, makes the best of it.
Last but not least, the film waltzes on the magnificent music of R.D.Burman, who had notched up another flawless score. Besided the lilting songs, the background music at certain places is just mind-boggling. Its a pity that the casettes or CDs for this movie dont carry that music and this is the sad case for many of R.D.Burman's scores.
Bottomline is while I was watching that movie, I did experience a joyful feeling many times. Its a feeling thats different - you can feel it in your heart and you want to feel that way more often and look for more sources that give you the feeling. I happily found out that "Saagar" was one source.
Very few times has a Hindi movie provided attained excellent quality like the movie "Saagar". The film stars kamalHaasan, Rishi Kapoor and Dimple Kapadia and is excellent entertainment for over 2 hours. The great thing about it is although its a simple love story the concept of which has been repeated umpteen times in Indian cinema, its one of those few times when most of the situations and flow of the story mirrors real-life.
Kamalhaasan gives an excellent performance, as expected, as the hard-working fisherman secretly longing for the pretty barmaid Dimple. Dimple, not very applaudable in the acting department, provides good eye-candy without resorting to any vulgar dresses or dancing. The surprise of the movie is the brilliant performance of Rishi kapoor, who given a very simple role as the rich boy desiring a poor girl, makes the best of it.
Last but not least, the film waltzes on the magnificent music of R.D.Burman, who had notched up another flawless score. Besided the lilting songs, the background music at certain places is just mind-boggling. Its a pity that the casettes or CDs for this movie dont carry that music and this is the sad case for many of R.D.Burman's scores.
Bottomline is while I was watching that movie, I did experience a joyful feeling many times. Its a feeling thats different - you can feel it in your heart and you want to feel that way more often and look for more sources that give you the feeling. I happily found out that "Saagar" was one source.
Wednesday, March 10, 2004
Keeping laws relevant
Many times we ponder about the uselessness of a law and go "what the hell were the lawmakers thinking when they framed this law?". Indeed, many laws seem to be ridiculous. However, it takes only a few seconds to realize that the law is not really wrong - just hopelessly outdated. Maybe with some research it would not be hard to see that the law was very valid in its time. This led me to think about the following.
Every law that is framed should have a "intent" section where the lawmakers also express their intent as to why the law is framed and what it is supposed to achieve. That way, if that law is looked at in the future and the intent no longer holds (because of changed conditions in the world), its easier to put up for modification.
Many times we ponder about the uselessness of a law and go "what the hell were the lawmakers thinking when they framed this law?". Indeed, many laws seem to be ridiculous. However, it takes only a few seconds to realize that the law is not really wrong - just hopelessly outdated. Maybe with some research it would not be hard to see that the law was very valid in its time. This led me to think about the following.
Every law that is framed should have a "intent" section where the lawmakers also express their intent as to why the law is framed and what it is supposed to achieve. That way, if that law is looked at in the future and the intent no longer holds (because of changed conditions in the world), its easier to put up for modification.
Subscribe to Posts [Atom]