Tuesday, November 8, 2011

"Finding Great Developers" by Joel Spolsky on Joel on Software

Really an amazing article!

I was reading it basically to know where good employers search for great developers/employees, but it is written the other way around: it is written for employers to find great developers.

It is well written, gives nice insights, simply great!

So if you have a company or someday decide to do a startup and want to be successful by employing great employees, I would definitely recommend you to take a look at that article. As it was written in 2006, in my opinion its beginning might not be totally true with today's market circumstances after the crisis, but the 3 methods (Go to the mountain, Internships and Build your own community) that he explains later on about how to find and employ great developers are simply amazingly written.

Joel Spolsky is the co-founder of "Fog Creek Software" in New York and this post is from his "Joel on Software" blog. 

Let me know your opinion about his methods!

Finding Great Developers by Joel Spolsky on Joel on Software


  1. What exactly is amazing about the article ? he dismisses the majority of the programmes and he thinks that a great programmer is a geek that will have at most 4 jobs in his/her career and that he will be accepted to every job he applies for. he thinks that if a programmer advertises himself in the market then he is not qualified. I wonder how he can think that, there are 1000s of successful companies with great software and their employees everyone and not Joel geeks.

  2. First, I would like to thank you for your comment!
    In response, well, as I said, I read it from a different perspective: I am searching for a job, not searching for employees, so this article gave me lots of insights as to how and where some employers search for employees. I also found that the article was very well written, very easy to follow and doesn't get you bored in the middle. Most importantly, I wasn't considering who wrote it as much as what is actually written. One more point, I am actually a developer searching for a position and I am advertising about myself because I can't find a job otherwise, nevertheless I didn't feel offended nor disqualified according to his point of view after reading his article.
    I wonder why is your opinion biased this way? Is it because of Joel's beliefs in general or this article specifically?

  3. Thank for your comment. I agree with you that this is a well written article and i agree that Joel is a good blogger. I just dont agree with the opinions mentioned in this specific article, and my comment was that I wonder how you can be amazed by this article (and that you agree with it). The writer claims that great developers (1) are not found in the market (2) they get hired for any job they apply for (3) they wont send their resume more than 3 or 4 in their entire career (5) they are hired for the first job as intern with the help of his professor because they are smart.

    What i think is that he means that only geeks should be employed, so only geeks niche should be employed and the other is unqualified. That means his dimisses the majority including you ( you have advertised your cv)

    I advertised my cv many times and have been rejected many times, and many times because i didnt fit the team. I was rejected recently because that manager thought that i will get bored with their projects so he rejected me, another one rejected me because i was not technically strong enough, but i felt that my techncical background is stronger that his background, maybe he just didnt like me. I know that im qualified, but according to this blogger im not qualified.

    I can tell you that Geek developers can be harmfull, they doesnt neccessary produce good code, they tend to find a clever solution that doesnt solve problem, or a complex solution that solves 20 percent of the problems. From my experience i found that actually non geek developers tend to create better solutions that solves the probelm, they have a better skills in seeing the whole picture and providing the right solution.

    I agree that a specific niche of great developers might be needed for specific typenof work, like building sophisicated algorithm to control unmanned airplain, for a bug tracker i think that Joel unqualified developers will qualify. I havent used his bug tracker, but it doesnt seem to me that his great developers have made the best bug tracker because otherwise it would be widely used and it is not.

    So i dont think that im biased I just dont agree with his opinions.

  4. Wow! Seems you did your research about Joel more than I did! :)

    So I totally agree with what you are saying that's why I had this part written: "As it was written in 2006, in my opinion its beginning might not be totally true with today's market circumstances".

    And yes, it's true that he dismisses the majority including me, but I can also relate with the fact that most internship positions that you get while still studying turns out to be your real work positions after you graduate if you did a good job during your internship at that specific company and didn't move to another city/country after graduating.

    I can also say that I have been searching for a position for the last few months and I know that it's normal to get rejected many times before landing the perfect job but that doesn't mean that you are not qualified, it just means that this position was not a right fit for you.

    Interesting point you give out there about geek developers. I think I still don't have enough experience to judge that though.

    I also haven't used his bug tracker, so I can't really say how efficient it is.

    Yeah I get the picture now! Thanks for sharing and I wish you good luck in your job hunt if you are still looking for a position! :) Btw don't hesitate to contact me if you would like to exchange experiences in job hunting and please keep commenting! :)

  5. The author is trying to create a niche of "elite" developers including using community like stackoverflow, i really appreciate people who contribute their time and knowledge to help other people, but it turns out that some people "drifts" with The author proposed approach, i have been asked in one of the interviews if im active in the opensource world and if i active in forums, the interviewer was trying to find out if i belong to ths "elite", not everyone have time for opensource and forums , but that doesnt mean he is unqualified. Personally i have no time for opensource and i even against free software.

  6. I agree of course that not everyone has time to reply on forums and to dig into fixing a bug in an open source software, but I also fully believe that we are in a time were we have to appreciate the effort done by others. I think we are a lucky generation to be living this.
    If I may ask, why are you against free software?

  7. Let me elaborate, I'm not against free software, I'm against using free software in commercial software. Free software is usually not well maintained, might not get support when urgently needed, might leave developers "powerless" because they have no way to solve the problems caused a bug in the free software. I can tell you that I wasted long time dealing with bushleague and amateurish software bugs / bad documentation. open source is not tested, users function as Testing team. I think commercial software should use tested and supported 3rd party software. today free open source software became like a religion, for some people open source free software is accompanied with holiness. Eclipse is widely used, who said eclipse is the best or good at all ? after years working on eclipse and other non-free IDE I really wonder why companies use Eclipse, Eclipse well waste developers time and is not convenience, fill of bugs, not very usable. if you ask some open source evangelists why you use eclipse, and if you also prove to them that "eclipse is bad" for example, their answer will be "but it is free!".
    I don't believe that someone is willing to work for free. there must be a price, even the free software that you will use, it might end up that you are testing it or implementing someone's agenda without knowing that.

  8. This is for Anonymous who posted the comment on: December 10, 2011 4:18 PM. Well, after this second post of yours, it's now clear why the interviewer was asking you about free software, COZ YOU KNOW NOTHING ABOUT IT. Free software is "Free as in Freedom" (http://oreilly.com/openbook/freedom/). Are you seriously saying free software makes the developer powerless? I wonder how did you come to that conclusion.
    Here are two scenarios, you are using a software that has a bug, and you don't have the code.
    You are using a software that has a bug, and you have the code. Which one makes you _quote_ "powerless" because they have no way to solve the problems caused a bug _unquote_?

  9. To Andrew:
    I knew that some people will criticise me. however, I don't think that you comprehended my point. I'm not against Open Source, even I'm for open source, open source means that you can see the source of the product, that doesn't mean that you can use the product for commercial use, this will depend on the license. you can find open-source companies who sells their software. I'm against the "holiness" of free software. free software doesn't mean that the software is good. free software might be Amateurish software which is not suitable for commercial use, it is suitable for you to try it at home. and even if the free software is widely used, it is someone's else agenda, I would check if that agenda is good for me and usually it is not.
    I don't know what is the relationship between freedom and free software, what is it exactly? do you work for free? I doubt it. no one wants to work for free, This casual remark has been made ​​to be holy, not sensible if you think about it a little bit. You confidently asserted that I "KNOW NOTHING ABOUT IT" without knowing the that I have many years of experience in the software industry as a software engineer and I've used vast variety of free and open source software in a companies who eagerly uses free software. and I know how long the time I and fellows wasted on getting these things to work.

    It doesn't seem to me that you have real experience in the industry. anyone who had to deal with open source problems knows that " you have the code" doesn't really help in most cases. who have time to start debugging complex project?
    The time we spend at work is paid by the employer, so it might cost him more money than buying a solution, a solution means that you get a working and tested product with support, rather than something that you should wire and twist by yourself.
    A good example why free software is not better than non-free software is Linux against Windows/Mac/other UNIX. Linux for example, is far from being usable at home. but Windows and Mac is usable at home, can you please tell me why?

  10. Let me try to rephrase that. You should open the link I included in my previous post and at least skim through whatever is there. _Free_ software is not the same as _Free_ beer, which is what you are talking about. Free software has four types of freedom, which are the following:
    Freedom 0: The freedom to run the program for any purpose.
    Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
    Freedom 2: The freedom to redistribute copies so you can help your neighbor.
    Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.
    It has nothing to do with the price of the software. It has to do whether whoever wrote that software will allow you those freedoms. Not having those freedoms is usually very very limiting.

    About Linux not being usable. Do you hear about something called Android? There is a possibility that your phone has it. Android is Linux. I personally have been using Linux exclusively on my own laptop, and I have never been more productive. Almost all research at the Universities is done on Linux machines. AND I am posting that comment from my laptop that's running Linux.