Thursday, June 25, 2009
Software Development – Ego Driven – Part III
Polite or Bully: It is very hard to understand whether a person really bullies or showing bully behavior out of ego. A same person act very polite with “inferior” than one and act very aggressively or bullying with “superior” than one. But the reality is all are equal and everything is illusion that one is above and below. It is very tough to work with those but flexibility and showing some weakness of our own to egoistic person helps and improves team environment. One interesting story is, I know a sales guy who is very egoistic and very successful but always do some mistake in total price or ask some stupid questions like “John, how many zeros for millions”. The secret is he wants to work with others very friendly manner hence some time act like he is also a prone to mistakes and he is not a super human.
Can Do or I can do everything: Can do attitude is really great and positive but we can’t do everything possibly under the sun. We have to depend on others and our success relies on how others also willing to working with us. For example, Software we have initiation, plan, design, code, test, deployment, support phase and each one required some team effect from everybody. Even though we were experienced developers sometime we need a support from a system admin who joined just today, so some level of politeness required to get some help from him/her.
Balancing Ego: Actually we are all ego by birth, but getting mature and interacting with others help us to taming or balancing ego. My best advise to use ego as weapon or we are in team environment and want to balance ego, we have to start using “we” instead of “I” and share credit with others.
But any ways not all are same, we are all having different traits and Ego is not a bad one, as i said it is major factor for improvements and use it as weapon but not always. Actually my tactics would be, when ever i play cricket i would be always with non-tamed-egoistic caption because i always want to be with winning team. Here I’m ending my psychology side of software development series.
Wednesday, June 17, 2009
How to become a Saint
So becoming saint required emotional trauma or high integrity or something unusual things that my friend did, or 30 days no food, or go out to forest to see some things or go to South Africa or Jerusalem. I think none of them are required to become saint. In fact, we no need to become something extra ordinary personality to become a saint. There are some important things we can follow to become a Saint.
1. Don’t talk about others when they are not in front of us: The talking about others and gossiping is like a playing highly addicted video game. Once addicted it is tough to come out from it.
2. Not addicted to money: As I said in previous posts, addicted to **anything** has some remedy to come out from it, but addicted to money is incurable. So making money and saving money is waste? No, money should be considered as a tool, we have to earn it as much as we can and save it but never go beyond it.
3. No to superiority and inferiority: We are all human, equal, each one living for some purpose, some where and some profession. There is no one is above and below. Opportunities are out there, system is fixed and any body can become anything. But what we had in mind is stopping us to become what we want. There is no place in this earth has dictate that one has to do this and that (other than some regimes). The point is most of us has freedom and choice what ever we want to achieve and we are forcing or liberating others also to join us, greater example is recent Iran protests.
4. Stop Unnecessary Fear: 6 months back we are all feared, what is going to happen to our economy and job market etc? But now things are slowly returned normal but we are not out of woods yet but better than 6 months ago. If we fear now is meaningless and unnecessary, the bad time was behind us and we have to think about future growth. So unnecessary fear is won’t make us Saint rather pull us down.
5. Learn as much as possible: When ever I say learn, some my friends mistaken that I’m asking every one to rejoin school or check out books from library. Learning means everything we try something new including cooking, going/seeing new places, playing something, writing about some new things. What ever we do for fun is also learning.
There are many other things helps us to become a Saint including helping others, volunteering, community service, laughing with others, playing with kids, going to worship places, spending time with friends, socializing with others and many other things. So am I a saint? No, not really but like any body else, I’m also trying to become Saint. Together we will all try our level best.
Sunday, June 07, 2009
Software Development - Stress Management - Part II
Our life is full of surprises and twists and turns, no one in this world meticulously plan for future, day by day activities etc. All we need is a brave heart to face unexpected. Stress management is really important in our life. We should not get stress easily and burn out ourselves. When i started software development, industry suffered a major setback is managing stress. But now due to the maturity of industry stress is not a big issue. What causing stress, actually stress is unpredicted one. For example, one is very easy go on many things but get stress whenever Christmas season is around the corner, major reason is how can i handle shopping for massive relatives, friends, kids? but s/he may be handles $10 million fund in wall street.
Stress can cause major damage to health, mind. One more important thing is, stress won't show up until it grows bigger and bigger in our own mind. Back in
1. Say what we can do, talk from our own mind, don't commit more than what we can achieve.
2. Learn to say NO, but not always NO. Balance between Yes and No is really important to manage stress.
3. Treat others as friends/helpers not competitors, competition leads to race which leads to stress.
4. Plan ahead, create a step by step guide to achieve end goal. Get professional help if we need to.
5. Go to new places and learn about new things.
Friday, May 22, 2009
Software Development - A new series 1
Lets take a example of construction field, it is heavy physical intensive work, it required some 250 lbs and 6 feet to perform the job but that is ideal. If a construction company wants to hire only 6 feet and 250 lbs, they can't hire enough employers to build a house and can't make profit. They want to hire any body physically fit for work and then divide work that heavy object lifting job goes to 250 lbs and some arranging, nailing job goes to other below 250 lbs. This is the system, this is how our society work, no body feels discrimination if 150 lbs not getting 50 lbs lifting job.
The same with software development, for a minimum level of coding one should have fundamental strong on the programming language, some working knowledge of database, a decent level of knowledge of Linux/Unix. The distinguish comes as form of expert level, which can be achieved with in 6-8 years of experience. There are 10 million software developers are here in U.S, all of them are not gifted and they are fit into this expert, medium and starter category. But other than that in Software there is one main aspect is attitude, the attitude is really important for developers. In fact attitude is important for any professional work, but i feel very strong about attitude and software development. Development required brain work and run through some analysis/processes in mind all the time hence good attitude required to develop quality software and within budget. More over attitude is really important for young industry like software development.
Why it is important? Again lets take construction field, construction is very old industry and all are well defined and well formed. Lets assume there are 100 people building a house, they may not even know their names each other, but the coordination and building process goes smoothly. All they want to know is what is their job today and when they have to finish it. But the young industry Software development, there was nothing defined, each day there are new development methodology, processes, each company has it's own processes and so on, nothing was integrated and everything working as it's own area. At end of the day, based on my 12 years of progressive development experience, each software developers attitude is making difference of successful completion of project particularly in IT industry.
Based on my experience, there are some main factors contributing good and bad attitudes, they are A. Context Switching B. Stress Management C. Ask other's help/ego.
Context Switching :
What i mean context switching, there are two types of context switching, first as soon as we start to work, we have to forget our personal and concentrate on professional one. second, with in work switch context between projects without losing temper. The first switch is something important and everybody should follow it, a successful career rely on how one separating personal issues with professional life.
[Contd]
Monday, May 18, 2009
Fallen Hero but after May, 21st 1991 Zero
During the beginning years, LTTE was considered as Civil Right Movement for minority Tamil people. Prabhakaran was considered as the leader for Tamils, but later on the organization was transform itself as a “Cult” like a movement. They want to kill anybody who are not supporting separate country demand and who are not willing to join LTTE organization. The relationship with mainland Tamil Nadu was fractured when LTTE killed India’s one last of hope for reforms Rajiv Gandhi for some lame reasons. LTTE killed Rajiv so do India’s ambitious dream of reforms, because of Rajiv’s murder, India’s reforms were delayed by at least a decade.
I hope now the onus on majority Sinhala government to protect minority Tamil people and slowly integrates them with main stream. It may take decades to achieve it but you just eliminated terrorists which was impossible for India still now even U.S.A couldn’t achieve the success yet. Nothing is impossible.
Source:
http://news.bbc.co.uk/2/hi/south_asia/8055015.stm
Saturday, May 16, 2009
Indian Election 2009 - Results
After i would say 2 decades, this is the clear sweep by a single coalition and Congress led Untied Progress Alliance (UPA) going to form government with no support from anti-globalization parties mainly Indian communists. This election was main and crucial to Indian economy, because we need a continuous, stable, globalization/progressive minded government to solidify the modern economical foundation. Now Indian people spoke the same language from
The exit polls suggested that UPA or NDA wouldn't get simple majority and they need support from leftist parties, who are very narrow minded and anti-globalization. But real results went other way. We need a clear exit poll strategy, it is failing consistently for all over the world's election outcome. All over
Here are some highlights from
1. Youth vote was the clear differentiator for this election, they want a stable government hence they choose UPA. It is clear indication that
2. No one can change democracy election outcome, even though here and there people voting based on caste, community and for money, the final outcome will be same from all over country.
3. 60%-65% people cast their vote for this election, which is not bad as per current democracy standard but everybody should vote and mainly urban people ditch their voting rights for various reason including lost hope with political parties and politicians. Political parties have to note this and work hard to win the trust again.
4. Glamorization and movie star connection to politics is old style. Nowadays one can't win people based on star value and attraction. For example, this time a mega movie star from state of Andhra Pradesh failed badly.
5. Political parties have to change their stance on several issues, if they are out of sync with people's day-by-day issues, future issues they will be kicked out. For example, a leading politician fighting hard for
Friday, May 08, 2009
Twitter Java API
In my opinion, after Apple's iPhone, iPod and Amazon's Kindle, Twitter is greatest innovation of this decade. The simple but powerful innovation allows us to share our thoughts, news, and opinion to 100K plus or even 1 million users within a single click. Amazing doesn't it? How will you share your opinion transparently within 140 chars? The twitter users also has amazing power, people sharing from all over globe by using a single entity is something powerful medium.
I was drawn into Twitter world like a year ago, so far my experience with Twitter is excellent. But every things has it is own drawback, in twitter world there are some a-holes try to deceive us by following us and make us to follow them and then silently unfollow us. I want to develop a small piece of code to find this mischief. But i found an excellent site www.refollow.com to do the same thing efficiently, i recommend all to use the refollow.com to find this rogues. But anyways i did this code to understand various APIs for Twitter. One of the great and fastest Java API for Twitter is from Google but there is no good documentation. Here is step by step guide to integrate with Google java-twitter.
1. Go to http://code.google.com/p/java-twitter/
2. Download Java-Twitter-*-SNAPSHOT.jar. Java-Twitter-*-SNAPSHOT.jar depends on following JARS
commons-beanutils-1.6
commons-codec-1.2
commons-collections-3.1
commons-httpclient
commons-lang-2.4
commons-logging-1.1.1
ezmorph-1.0.6
google-collect-1.0-rc1
httpcore-4.0
httpcore-nio-4.0
joda-time-1.6
json-lib-2.2.3-jdk15
3. Here is the complicated Google's Protocol Buffers. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats. Our job is to download bunch of C++ code and convert it to Java and jar it.
4. Download protobuf*.zip and protobuf*win32.zip.
5. Unzip protobuf*.zip and proto*win32.zip, and find a proto.exe from protobuf*win32.zip.
6. Copy the file to protobuf/src/ folder.
7. Go to protobuf/java and find README.txt for step by step guide to create protobuf-java-2.0.3.jar file.
8. After adding all the above JAR files, the code development is easy and refer http://java-twitter.googlecode.com/svn/site/apidocs/index.html
9. Make sure to install Java 1.6 and set JAVA_HOME variable correctly.
Here is code to find friendship exists call.