Fog Creek Software
Discussion Board




Hiring

I would like to know what experiences others may have had with hiring programmers.
I have a web application business in addition to my job. The business is just a friend and myself -- he does graphic design and HTML and I do all the programming. We have quite a lot of work and sometimes it's just too much, since I also have a job.
I once tried hiring a guy who had done a little amateur programming but had no real experience. It did not turn out well because after 2 weeks he decided he had already surpassed me in knowledge and ability and was ready to make all the major decisions (it was an application I had been developing for about 2 years, and I had already been a web programmer for over 6 years).
After this experience I am reluctant to hire a programmer. If I hire someone without much experience I have to check and correct their work, which might take longer than doing it myself. An experienced person would charge more than we can afford to pay.

PC
Wednesday, December 04, 2002


Overseas?

(sorry, couldn't resist)

Leonardo Herrera
Wednesday, December 04, 2002

Hello! My name is Florin Serbanescu. I live in Romania. I have a lot of experience in Java and PHP. I have worked to software projects for romanian companies, but also for canadian ones, so I have experience in work remotely. If you want to know more details, if you have questions please do not hesitate to contact me.

Florin Serbanescu
Wednesday, December 04, 2002

PC, how would your experience with that kid make you leery of hiring a professional? You get what you pay for. If you hired some kid with no experience to paint your house and they dorked it up, would that make you leery of hiring a professional painter? Probably not.

So are you just trolling or what? You're blatantly comparing an amateur with no experience to professionals. Do you think the programmers that frequent this board will respond well to that?

Troy King
Wednesday, December 04, 2002

This is my experience; your mileage may vary.

The large majority of good, professional programmers typically aren't interested in working for one or two man shops. They tend to prefer to work with other professional programmers and really small companies can't usually offer that. (Note: I said typically, I'm not making a blanket statement of all programmers. Some do prefer small shops. So no flames.)

But with job market for developers still in tatters, you might have more luck finding a true professional who is willing to work in a tiny company.

Mark Hoffman
Wednesday, December 04, 2002

You said he decided he had surpassed you in knowledge and ability.  Did he actually surpass you?  Is it that he actually did surpass you, or that he thought he was that good but really wasn't?

T. Norman
Wednesday, December 04, 2002

A professional programmer who works for a one-man shop will probably demand a substantial ownership stake in the company, not just a salary as a mere employee.  Unless you plan to hire them on a short-term contract, which will cost you more per month than a regular employee.

T. Norman
Wednesday, December 04, 2002

No, I was not trying to hire someone here!
I wanted to know if others had good or bad experiences with this.
And no, how could the guy I hired have surpassed me after 2 weeks? The problem was I couldn't stand dealing with his tremendous ego.

PC
Wednesday, December 04, 2002

2 weeks working with you does not mean 2 weeks of lifetime programming.  He could have been writing lots of code for years as a hobby, and have a natural talent.

I'm not saying that that was necessarily the case, but there are some programmers with zero professional experience who are better than some other programmers with decades of experience.  See the thread on this site "Why are some programmers 2X as productive".

T. Norman
Wednesday, December 04, 2002

No, he just had a big ego.
His programs had global variables, no modules, all kinds of bad practice because of no experience.
He THOUGHT he was better, based on zero evidence.

PC
Wednesday, December 04, 2002

You get what you pay for. If you cannot afford actual superstars, perhaps you can hire a recent college graduate who has stellar experience with real-world-like school projects. They are especially desperate in this job market!

Z M
Wednesday, December 04, 2002

Finding someone good is tough.  That is why there are so many discussions here about how to find good developers.  Of course you will need to compensate them.

If a business is growing there will simply come a point where you cannot do all the work yourself.  At that point your job description must change.  You must develop less and supervise more.  Period. 

Part of the incident you described may have been your fault.  If the programmer had clear marching orders, and was told what to build, then he was simply insubordinate and should have been fired (as I suppose he was).  If he was not given technical specifications, then you inadvertently forced him to make design decisions (where his lack of experience/talent would have had terrible results).  If his ideas differed from your specifications, then he should have discussed them with you and gotten approval before deviating from spec.

Ideally, you will form a team of good people that work well together.  This will allow you to accept much more work and make much more money that you could do alone.  However, you cannot wish yourself into this state.  Teams must be built. 

Ran
Wednesday, December 04, 2002

What happened was that I hired him to help test the application I was trying to finish, with a very short deadline. But he got bored with testing and wanted to help with the coding (which I did not need any help with at that time -- I was going to give him coding work gradually, and not starting near the end of a project that was a big rush). He argued and wouldn't accept no. He also argued about the design, and I listened which I now realize was very stupid of me. The trouble was I had never been a manager. In the future if someone is working for me I will make sure they know it isn't the other way around. And they will do everything the way I tell them, unless they have a great reason not to (just like I have to at my job).

But why are good developers hard to find if the job market is supposedly so bad?

PC
Wednesday, December 04, 2002

I'm not sure.  I think that it's because the superstar programmers are the last to be laid off, they are the type who gets hired despite a hiring freeze, etc.

And also because the large number of people who aren't brilliant, who are in the computer field because they wanted to get rich, who got subsequently laid off and are desperate for a CS job, pretty much drown out the good ones.

w.h.
Wednesday, December 04, 2002

There are brilliant programmers and then there are all the ones who are just trying to make money. But there must be an awful lot who are between the extremes, who have a natural ability and love coding but aren't necessarily at the highest possible level.

PC
Wednesday, December 04, 2002

"why are good developers hard to find if the job market is supposedly so bad"

Because there are very few of them.

Regarding the testing work you gave the guy, here's a solution for next time -- have him do the testing by writing unit tests and the like. This way he gets to spend that creative energy and feel like he's writing some real code, all while developing a good understanding of your code base in preparation for more advanced involvement.

Just having testers poke around at buttons looking for errors is asking for trouble. That work is boring. Writing code to test other code keeps one from getting ticked off about one's boring job.

Sarain H.
Wednesday, December 04, 2002

"I think that it's because the superstar programmers are the last to be laid off,"

Conventional wisdom among superstars is that they are actually the first to see the writing on the wall and move on. That's one of the major problems with the layoff strategy -- only the really lame people are left. Of course they console themselves by saying that it is the superstarts that were left behind and that makes them feel a lot better about the bloo bath.

"they are the type who gets hired despite a hiring freeze, etc."

That part is more correct.

BTW, any good solvent company with competant management and real products is always hiring. They might be laying off at the same time, but they are always hiring.

Sarain H.
Wednesday, December 04, 2002

My company has noticed the same thing regarding hiring good programmers and project managers.  They say now it's actually harder now to find somebody good than it was a few years ago, for a number of reasons:

1.  People aren't into job hopping like they used to.  If somebody is reasonably satisfied with their existing job, they aren't trying to jump elsewhere - because they know job hopping isn't easy anymore.

2.  The mass of resumes makes it difficult to pay enough attention to each applicant to determine who is really good.

3.  When they do find somebody and make an offer, they often want boatloads more salary than their previous job, because they are more nervous about being laid off from a new job with all its unknowns, especially if their length of service in their current job would qualify them for a decent severance package.

On the other hand, keeping good people once you find them is now easier.

T. Norman
Wednesday, December 04, 2002

Hi PC, If you decide to go with an overseas shop, please post your experience on the board, It would be interesting

Daniel Shchyokin
Wednesday, December 04, 2002

Don't worry, I won't hire overseas when people in my own country (US) need jobs.

PC
Wednesday, December 04, 2002

It sounds like you have a pretty good idea what went wrong that time:  you hired someone whose assessment of his own skills was (to put it mildly) erroneous, and whose expectations of the tasks at hand differed from yours.

Part of what you need to do is pretty obvious when you look at the above:  you need to better evaluate your candidate's actual abilities, and you need to make sure you set appropriate expectations and boundaries.

A word of caution on laying down the law, however:  assuming you hire someone with half a brain, let them challenge your design specs.  If they come up with a better way, and can argue well for it, you both win.  I had many such discussions with my last boss, and the products turned out better for them.

The danger here is that you could become so strict (as a reaction to the last guy) that you kill your next employee's initiative.  Really good programmers have a creative urge they can't suppress, and suppressing it for them is a Bad Thing.  Looks like that's what you were saying, but just wanted to make sure that's clear.  (=

<<"why are good developers hard to find if the job market is supposedly so bad"

Because there are very few of them. >>

Hear, hear.  Of the 10 or so programmers I've worked with directly, 2 of them could consistently write code that met or exceeded my standards, and I'm self-taught, for cryin' out loud!

As for the relative cost of hiring a good programmer, there is an article elsewhere on this site that addresses that very thing, if tangentially to the main point of the piece.  ZM has it right:  you get what you pay for.  You may luck out and be able to pay less cash money for someone decent, but you'll pay another way -- in the time and effort it takes to find them.

And if you're thinking in terms of making more money (which I hear is important to some people), you might also factor in the cost of another experience like the one you've already had, as well as the cost of the opportunities you may have lost by not having the additional firepower to take on more work.

(And yes, I know you're not looking to hire from here, but some of us *are* in the market, prefer working for small companies, and would rather rack up free time than a portfolio.  Inquire via email.)

Sam Gray
Wednesday, December 04, 2002

"...why are good developers hard to find if the job market is supposedly so bad"

Good/superstar developers are hard to find because just about every employer (and programmer) has their own definition of who these people are.

The fact is, employers tend to have very different needs or hiring requirements. Some companies look for programmers who have specific industry experience, some companies look for someone who has extensive experience with very specific technologies, others look for someone who has prior project management experience, blah, blah, blah....

Just about everyone in the world agrees that Michael Jordan is a superstar basketball player. Why? Because it is easy to judge his performance against other basketball players. He competes against other players in a well-defined and level playing field. That is, everyone on the basketball court must play by the same set of rules. Metrics used to judge a basketball player's performance and productivity are easy to gather and dissect.

Superstar is a nebulous term in IT industry. Programmers come from a wide variety of backgrounds and bring a wide variety of talents and skills. Some programmers using [insert any programming language here] are less skilled than others. And some coding requires less skill than other coding. Some programmers can do more than just write source code while others cannot. One of the problems going on in the industry right now is that many employers (staffing firms, consulting firms, etc.) tend to treat all programmers as exchangeable commodities (i.e. H-1B workers) - believing they all can do the same tasks equally well.

I consider Karl E. Peterson (among many other things he writes technical articles for VBPJ magazine) to a be a good if not a superstar programmer. What I didn't know until recently (read about this 2 years ago in a newsgroup) is that he has never written a database application during his professional career! My point? Pretend for a moment that he never wrote a book or a magazine article. Would he find it easy to get full-time job or a contract via a broker if nobody in the IT industry knew his name and reputation? Imo, I think he might have a hard time right now. Why? Because in some ways his programming experience is very different from 95% of the VB programmers he would be competing against. Joel Spolsky would probably hire Karl without giving the decision a second thought.  However, other employers would probably put his resume in the reject bin simply because he doesn't have prior database programming experience.  Stupid?  You bet, but that is par for the course in this industry.

one programmer's opinion
Wednesday, December 04, 2002

Hiring someone is always a crapshoot. You make your best guess about how someone will turn out, based on their resume, interviews, references, and impressions, but you can't know in advance how things will turn out. Just do the best you can and try to learn from your mistakes.

And, of course, being a manager presents its own challenges.

Julian
Thursday, December 05, 2002

"Don't worry, I won't hire overseas when people in my own country (US) need jobs."

I am not so much worried (1 job does not an economy make, although the concern is apreciated and felt) as curious

Daniel Shchyokin
Thursday, December 05, 2002

"Don't worry, I won't hire overseas when people in my own country (US) need jobs."

While we are at it, why use some OS originally developed by some Finnish kid when good ol' Bill in Redmond needs that licence fee. :-(

tapiwa
Thursday, December 05, 2002

I don't know. Why? Is this a riddle?

Sarain H.
Thursday, December 05, 2002

All I am suggesting is that we *ALL* have to be professional enough to make the best decisions for our clients, irrespective of our personal biases and motives.

For example. Use Windows where it makes sense. If Linux is a better solution, use it. Never mind the fact that it was originally developed by some Finnish teenager.

In the same vein, if you have a choice of paying someone £200 to do grunt work, and you have the option of someone else doing it for £20 in a third world country, and you can be assured that the results will be identical, then it is a no brainer.

Saving your client £180 and having them decide whether to use that to hire someone to solve new and interesting problems is a lot better for the economy, than overpaying someone just because they are American.

tapiwa
Thursday, December 05, 2002

Seems to me, PC, that you did something really dumb. Never, ever hire a programmer to do testing. That will always be a bad idea. Second, you hired someone with no experience when you were not in a position to train them up. Hire someone with a couple of years experience and you may well find it works out better. More expensive of course, but better.

Mr Jack
Thursday, December 05, 2002

Why shouldn't you ever hire a programmer for testing (I agree but just want to know your reason)?

About overseas programmers -- it isn't just my compassion for Americans; I don't speak any of those third world languages. What am I supposed to do, hire an interpreter as well?
Yes, I know they all learn English in school but if they have not actually lived in an English-speaking country for years they may be able to read and write but can't communicate well with spoken English.
This was one of the points made in The Rise and Resurrection of the American Programmer.
Communication is essential in software development.

PC
Thursday, December 05, 2002

Unless the guy is living in the same town as you, then your problem is quite likely to be the same whether he lives in the next state or the next continent. You'd be able to check out the English level; if you were trying to outsource to a whole group then the problems increase exponentially.

If it's somethng that requires collaboration that need not be local or full time then start contacting the people you find making intelligent comments on the forums (not me - I'm not a programmer and some would say I never make intelligent comments either). You'd have to take their coding ability on trust, but at least you'd know you're on the same wavelength.

Stephen Jones
Thursday, December 05, 2002

[A word of caution on laying down the law, however:  assuming you hire someone with half a brain, let them challenge your design specs.  If they come up with a better way, and can argue well for it, you both win.]

He argued and argued and I listened and changed the design and it was a BIG MISTAKE. Don't ever do it. If you have experience and half a braiin (or a whole brain) TRUST YOURSELF. Experience counts.
I agree that managers should not be dictators. The important things is what makes sense. But be skeptical of egomaniacs who enter a new field and immediately know more than the experts.
I admit this guy was exceptional. He refused to read anything about computer science or programming practices. He wanted to reinvent all the wheels because his way would have to be the best.

 

PC
Thursday, December 05, 2002

PC, u should be glad he was *working* for you, and not the other way round:-)

Prakash S
Thursday, December 05, 2002

PC> But why are good developers hard to find if the job market is supposedly so bad?

It doesn't sound like you've really tried. You had one bad experience (based on your own poor hiring judgement, no less) and have colored the entire process against that experience. You even admit you changed your design, and it was a mistake. And now you're saying good developers are hard to find? Good grief! You didn't even try to hire a good developer! You cheaped out and hired a beginner with no experience. Do you blame other people for all your mistakes?

Troy King
Thursday, December 05, 2002

PC> He refused to read anything about computer science or programming practices. He wanted to reinvent all the wheels because his way would have to be the best.

And somehow he talked you into making all these changes? It doesn't sound like you really knew what you were doing either. It sounds to me like this kid bullied you into thinking his way was better, and you, truly not knowing any better, believed him, and now you're moaning that you can't find good programmers. Are you sure you're asking the right question?

Troy King
Thursday, December 05, 2002

This story sounds a bit strange. If you understand your field enough to dismiss the guy after two weeks, you should have been able to assess his capabilites.

Also, I can't understand why, if you really have better understanding of these things, you weren't able to explain them to the new guy. And why he didn't respect that. If he's condemning your work within two weeks, there's something a bit suss.

.
Thursday, December 05, 2002

[And somehow he talked you into making all these changes? It doesn't sound like you really knew what you were doing either.]

Oh come on, I didn't make all those changes. At the beginning I listened to his ideas and wasted time arguing and then I did use one of his ideas that made sense, but it made the project take longer and cause problems. He was so extremely sure of himself it convinced me. Later, I saw his confidence was much greater than his knowledge.
And I haven't blamed anyone for any of it!!!

PC
Thursday, December 05, 2002

And I did NOT say I had a hard time finding anyone. It has been stated here repeatedly that they're hard to find, and that doesn't make sense if it's a bad job market.

PC
Thursday, December 05, 2002

I haven't tried.

PC
Thursday, December 05, 2002

This thread is interesting.  What are you developing? a url? If you really want someone worth while , use your network of IT friends to find someone that suits your needs.  Every serious IT person has his/her circle to count on.

Moose
Thursday, December 05, 2002

*  Recent Topics

*  Fog Creek Home