Some of these people across the world have one thing in common; their passion for software development. That is taken for granted irrespective of thier domain, platform or programming language(:-)) they like. I also had the company of a lot more people who just consider their job nothing but just as a means to lead a better life. They are also experts in their own fields, but they don't like a lot what they are doing. If there is another profession that has better prospects, they will definitely choose to move on unlike a few of them who love so much about software development and dream nothing but a world of software development.
I call the first set of people Passionate programmers and call the later as Professional programmers.There is nothing wrong with any of them. I am just attempting to illustrate the differences and how they impact the organization. When some of the characteristics resonate with your traits and how you do your job, you know who you are.
I found that Passionate people dig really deep to understand the real problem and come up with solutions. They create solutions that are simple and clean. They like what they are doing and they typically spend more time than any body can think of or a typical managers budget for. They speak with enthusiam about their work. Their solutions mostly will be very few and specific in nature. Their ideas are often resisted by people around. But they will have a major impact. They also identify current problems and solve them, even before they are posed as problems, proactively act on things. They oftenÂ hate to spend time in non-tirivial things and make life simpler by creating lots of utilities. Many tools and enterprise software is often result of these small toolset.
But typical Professionals understand the issue on the face value and give generic solutions that look so good on the paper(but most often they don't work in real life scenarios). They useÂ lots of and allÂ kinds of fancy tools. They use a lot of jargon. They often quote nice-looking-ideas from text books/websites and they also lead by quantity rather than quality. Their solutions are generic in nature so also get greater acceptance from others(who are also typical professionals).But most of them have very low or no impact.
Unfortunately, it is not easy to seperate permanently, passionate from professional programmers. Partly due to, people some times become passionate about a project and some times act professional as they don't like what they are doing.
"You are not paid to do your best. You are paid to win the case." - The Verdict (movie).
To say the key difference in few words, keeping all things equal like expertise, Passionate put thier heart in while professionals don't. That makes a huge difference in what they can do.
Its not confined to software development. It is true in any walk of life.Â I read so many blogsÂ recently, and found out the same. There are passionate bloggers. And there are fancy, professional and paidÂ bloggers.Â Some of them have deeper understanding about what they are writing. Some just write because it is justÂ the most talked about thing and would bringÂ in more page hits.Â Most of the blogs provide 'advise', on things that they never experienced, leave alone mastered. Very few talk about their real world experiences with enthusiasm and notion of sharing with others, instead of 'advising' others to follow a nice looking path that they never knew existed. Well that is all part of the blogosphere.