Ego and software
June 2, 2011 § 2 Comments
I have had this feeling for a long time that software industry, the industry I am part of is full of highly egotistical individuals. We seem to say that software is a craft but at the same time like to believe that individuals should come out of the womb with understanding what is genetic algorithm or some similar complex algorithm. More often than not I meet software engineers who love to talk in complex patterns just to show how smart they are and god forbid if you don’t understand what they are saying, you are quickly tagged as a lightweight. It just seems so very silly.
Just like wall street creates unnecessary complex vernacular, the silicon valley and the software industry does the same as well. Just like wall street is running towards the latest and the greatest thing in the market, so is true for the software industry. There is an air of superiority amongst members of this industry. Everyone very easily forgets how it was for them when they first started using computers, that they learned the craft and that someone helped them when they were starting out. This holds true for when people are learning a new language/environment or method of programming. People learn things and then suddenly start treating every new guy coming into the field as an idiot.
The other issue is that because everyone has a computer they believe they understand what it means to write software. We have an influx of too many MBA’s, generalist who apply generalist rules to build software. They don’t have the basic understanding that this is a craft. They bring the same stupid judging rules to judge software engineers.
Software is a team sport. Sadly this is something that is not taught when this craft is taught to individuals. What is taught is that you have to know everything and be a lone warrior. These very same individuals may end up writing some great piece of application, but add them to a team and they are like nepam for the team. There ego destroys the team. I don’t care if you are a super star but if your ego gets in the working of a team, I would rather not have you on the team. For this very reason I like to hire young graduates who have not yet acquired the air of superiority and are willing to look stupid and learn and also teach. I have found the best teams are the ones where everyone acknowledges that we are all learning this craft and are willing to teach each other tricks of the trade.
If software is a craft shouldn’t we be looking for individuals who show tendencies in learning a new craft, an open mind and the ability to be diligent and willingness to learn when they don’t know what is going on. I can only wish that this industry was filled with less egotistical individuals, but sadly we have a long way to go.