A Cult Programmer

12 ביוני 2009

תגיות: ,
2 תגובות

Last week, while conducting interviews for a Senior Software Engineer position, a candidate asked me a “red alert” question. A few moments after starting the interview and explaining the position, the candidate squeezed the following:

“What is the current .NET framework you are using and are you planning to move to .NET 4.0?”

I bet you wonder… Is it really a “red alert” question?

Allow me to elaborate. The candidate’s real motivation was to percept how technological is the company that interviews him. If the company is stuck in .NET 1.X or it isn’t planning to move forward with Microsoft’s future plans, it just not technological enough.

What alerts me is the idea that the specific version of framework used by the software is a measure to the software’s quality and not using a specific technology necessarily means something bad. Maybe the company utilizes the best practices of Software Development by applying: Analysis, Architecture & Design, Automatic Unit Testing, Static Code Analysis, Code Coverage, Integration Tests, Automatic Tests, Automatic Builds, Code Reviews, Peer Programming and etc… Maybe the company stands for writing quality software by applying the Object Oriented Principles like GRASP (loose coupling / high cohesion), Design Patterns, SOLID and etc…
Maybe somebody forgot that a good quality software doesn’t mean necessary using the dynamic keyword?

Allow me to emphasis. Technology is important! Choosing the right technology for the specific requirements of your application is important!
However, a technology is not the key factor in the software’s success.
It reminds me a good article discussing the technology leaps, by Joel Spolsky. Jumping from technology to technology seems to be just a plain “Fire and Motion”.

If you are asked whether you are planning to move towards .NET X.X, just ask the candidate to explain, why (or what) in his opinion moving to .NET X.X will contribute to your application. Most of the time, as in my case, the answer will be quit generic: “It’s just a better technology”. This clearly, as explained above, doesn’t stand! Such a candidate is being marked often as a cult programmer. A Cult Programmer is a programmer who seems to compensate sound Software Engineering skills solely with a specific technology evolution.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

2 תגובות

  1. Sasha Goldshtein14 ביוני 2009 ב 10:12

    You're taking it a little hard, I'm afraid. To begin with, the question is fairly reasonable — it's easier to ask which .NET framework version you're using than to ask whether you're using SOLID principles (which is not well-defined, either).

    Additionally, learning new technology is one of the most important qualities in a developer. And it shouldn't be surprising that a developer who learned a new technology wants to use it in a real environment.

  2. Uri Lavi14 ביוני 2009 ב 10:50

    I am afraid you are missing the point.
    I didn't say learning new technologies is bad!

    I just stated that if you are asked the question, take your time to verify that the candidate understands the benefits and the additions that the new technology brings to the table.

    In my case as I stated in the post, most of the candidates don’t know anything regarding .NET 4.0. and even more: they don’t know how the new technology can enhance the application they are working on.

    (Fro the end, the candidate from the post stated clearly later on, that he doesn't know anything about .NET 4.0)