Tales about Aviation, Coaching, Farming, Software Development

Is it wise to focus on short-lived skills and knowledge?

Once in a while I get emails from recruiters that read like this example:

I’m looking for a Portal Pro who can provide expertise and hands-on support for internal and external projects surrounding Web Portal and Web Application Servers (WebLogic, Tomcat, Proxy, LDAP and Service Bus) for a direct hire position with an esteemed client in [location]. Cutting to the chase, here are the most important aspects: [list of application servers and technologies]

It is probably that I get those emails based on some keyword search they perform. Although I’m not currently working as a programmer I have in the past. My coaching work has a strong technical component so a lot of the keywords these people are using in their search will match. Don’t worry. I’m not going to rant about how recruiters should better read people’s profile before they send emails.

This request is also a bit similar to the one I was writing about earlier. Again, I don’t want to critize anyone’s decision to find an expert or specialist for a certain task. That’s perfectly fine to do.

What I’m thinking about is something else.

The recruiter in the above example is trying to fill a position for a company that is looking to hire an employee. They are not looking for someone to help them temporarily with a difficult task.

Based on the information provided, I would like to speculate a bit:

  • The company is probably a web service provider creating web applications for clients or is a large company with business units and something like an internal outsourcing organization.
  • The company does not like to invest into people but instead wants to find people on the market or convince someone to swap employers who happen to have the skills they need at the moment.
  • They likely believe that software development is merely a complicated activity where there are a few good ways to do it and they want a specialist for the narrow activity of portal development, which is tightly coupled to certain frameworks and server products.
  • Their company culture is likely oriented towards structure and the organization and probably also towards being technically excellent. Their culture does not favor growing people.

As they want to add someone to the existing staff, they are certainly looking for a good fit. Someone who is similar to the people already working there. Likely they will decide on someone who can show in his resume a long detailed list of relevant tools, technologies, and products the company currently uses.

Can a software developer hit the ground running when joining a new team?

There is an immediate benefit to find someone who can hit the ground running. However, that only works, if what the person has done before is, to a large degree, the same what the person will do on the new job.

If you are an expert welder, you will be able to perform your welding skills with the same tools you used before anywhere on the same type of material you have performed it before. It probably doesn’t matter much who are the other welders in the company or what purpose you are welding for.

For a software developer that changes quite a bit.

Unless the project is very small and there is no existing code, the new developer will have to figure out how the other developers are working. He or she has to read the existing code and probably learn the details of some internal framework that was developed years before. That might take several weeks. That’s not exactly what I would call hitting the ground running.

Even if the existing code is quite easy to comprehend, there are many different working styles. A developer who is not a practitioner of TDD joining a team that is quite good at TDD, has to work hard to learn it, which takes quite some time. And in the opposite the guy who really loves to do TDD will face a big obstacle when he is the only one maintaining the tests he writes - alone.

Amongst all the technical things there is also the social component. As software development is a team effort, it is important to get along well with the other team members and know their weaknesses and strenghts. It is important to know whom to approach how and when not. If the chemistry between people doesn’t fit, then they will likely not want to work together for long and it doesn’t matter how senior they are. In fact it is likely that two experts may not be able to work together but instead start a competition between themselves.

Growing people might be a smarter business decision

It appears that trying to hire an expert on something in software development for the purpose of adding the person to an existing group might not be such a good idea. It really isn’t a short-cut.

Growing people who have good attitude might be the smarter investment. It does take time and there is the risk that someone will leave later on. But so do hired experts.