Aware Recruitment. Part 2: Expectations

This article is a second part about recruitment in Java world. If you haven’t read first part you can find it here.

As I promised we will cover just one topic- comparing clients and developers expectations, then I will try to show you how to look at 2 real job offers.

Deep into client expectations

If you work for IT industry for more than two years as a recruiter, you can ask yourself a question- does “regular job offer” for particular position today is different than job offer for same position a few years ago? What about expectations of known technologies, about additional tools or infrastructure?

Of course answer for this question is yes. Technologies, methodologies and tools are different now than some time ago. You can expect, that in next two years they will change again. Probably some frameworks will be still in use (in new versions), some will disappear and there will be a lot of new ones. That’s normal situation- you need to get use to it.

How to manage it? First of all try to look at Technology Radar (by Thoughtworks) every month. It’s a place where you can find usage of frameworks, technologies, platforms, tools and techniques categorized as following:

  1. Adopt -Things that showed up recently and companies should think about using them
  2. Trial – Still quite new on the market
  3. Asses – Worth exploring, quite stable position on the market
  4. Hold – Usually if company use this technology it’s the moment when they should start thinking about migration to something newer

TIP: You can click on every item in radar and check why it is in specific category.

Note that technology radar is published every month so if you can’t find specific technology it does not mean anything- it could be hold and disappear totally, it could never been there, its still to new- even for adopt category. Look at A-Z Radar – maybe you will find history of particular item there.

Every time when you see new item in your client’s expectations it’s good to check it on radar or just search for it in web. You can find out that it  can be something interesting and could be attractive for some developers.

Remember that your client have some needs and requests which cannot be easily changed. Your task is to find items that can be potentially attractive to someone among this expectations and try to emphasise them.

What drives developers?

This part is far too complicated so it has to be simplified for this article purposes. If you need to explore this topic more deeply I can suggest Jurgen Appelo’s CHAMPFROGS presentations and articles (Example herehere and here :)). In my opinion the best information about motivation can be found  there. Also I encourage you to read chapter about recruitment in Sandro Mancuso’s Software Craftsmanship book (or even whole book).

However, I can briefly describe a few major factors which developers take care about:

Projects

There are three kind of developers out there. Those who like short-term projects with fairly new technologies, those who like stable long-term projects with technologies that are known to them and those who just don’t care.

First group can be called ‘explorer type’. They want to touch as many new things as they are able to. So if you have candidate that ask you a few times about some new technologies (Adopt or Trial from Technology Radar), then probably you are dealing with the explorer. So don’t waste your time on them if you have to find someone for long term financial project in old technologies. Explorer will never take such an offer.

Second group is a ‘stable type’. They need stabilization and probably don’t have time or just don’t want to learn new things and technologies. Developers from this category want long term projects so all financial projects or public project can be attractive to them. If you looking for somebody to be a part of short-term project- they will refuse an offer.

Third group just don’t care about project they are working in. This could be result of many reasons- they just want to earn money and don’t care about they every-day job, they’re looking for something else in their next job (for example they want to try new position or they are interested in specific organization culture).

Remember that every developer can switch to another group. Someone can be an explorer type but because of any reason he or she can become stable type or vice versa. Never put any kind of label to anyone for a long term.

People

Depending on needs this point is what keeps developers on their current position (mostly). One can look for people from whom he or she can learn and almost anyone don’t hesitate to work with friends and people with similar interests 🙂

Money

Simple one 🙂 For sure it’s hard to recruit someone offering salary below current one. But if someone decided to change job and have a few options with salary that satisfies his or her expectations then its not that important to offer more than your “opponents”. Of course it also depends. If someone don’t care about projects, and don’t worry about learning and finding new friends then the only answer is cash. But also you can be sure that this kind of people will change project as soon as someone will offer them higher salary.

Also its great if you can say about minimum and maximum salary offered by client or your company for position that you are recruiting for. A lot of developers don’t even want to loose their time if they don’t know if you meet their expectations. Especially experienced developers.

Other expectations

There are a lot of expectations that can be discussed:

  1. Position – there a lot of people that can change work only because of position in the company structure. Some experienced testers wants to start as developers, some developers wants to try their chances as project leader or manager.
  2. Multicultural environment – Some developers wants to work in multi cultural organizations. Possibility of journeys is sometimes an advantage.
  3. Working hours – some developers see flexible working hours as convenient. Additionally, possibility of remote working can be a big plus.
  4. Location – Sometimes your office location is also important ;P
  5. Organization -Some devs don’t prefer to work in Agile culture, some just hate Waterfall. Some hates large companies, some don’t want to trust small ones.
  6. Benefits – In fact I don’t understand this one- but developers often asks about additional benefits in their job. So private health care, sport benefits, etc. can affect their choice.

Summary

In my opinion before you start calling any developers try to analyse factors described above. I’m pretty sure candidates will ask questions regarding these topics. Do not colourise, just give them honest answers but emphasise the advantages keeping in mind which candidate type you are dealing with.

Imagine that you receive description for senior java position. What will you do? First of all ask client about all of described expectations. Be prepared with answers. Then try to find out if client looks for developer to particular project or just for “one of company projects”. It could be hard to find senior developer for “any project”. Especially if he or she cares about projects. If you have possibility try to prepare job offer giving as much information as possible… in points. Try to simplify it as much as possible. Be concrete. You can try with some funny or unusual job offer – this may work, but remember that in the end if you look for professionals, giving all information will be the best option and will save your time in the future. You will receive CVs of candidates that are really interested in this particular position. Otherwise you will recruit 1 person per 50 meetings. Believe me you don’t need a thousand of CVs where half of them will not meet client expectations. Once again: rule is simple- be concrete and honest.

Expectations in real world job offers

Job offer 1, Java Programmer

(Some info about company)

Send your CV to us if:

  • You want to work on innovative projects
  • You want to use new technologies every day
  • You really care about continuous improvement of your skills

And:

  • You know J2EE and J2SE
  • You have strong knowledge about Oracle Weblogic, RedHat JBoss
  • You have knowledge of Spring, Hibernate
  • You know about SVN, Eclipse IDE, Ant and Maven tools,
  • You have sense of humor

You will:

  • Programming according to prepared design assumptions
  • Create, modify and comment source code
  • Solve problems in product environment
  • (Few more)

What we offer:

  • Attractive salary
  • Ability to deploy innovative solutions
  • Development of your competences

What I see here as developer at first place is some kind of lie. I see innovative projects and new technologies and then J2EE (version 1.4: November 11, 2003, after this version they change name for JEE. Now we have JEE7!). I see Ant (this one is never used in any project started in recent two years. I hope :)), I see Spring and Hibernate (Nothing fancy, just standard). Where are these new technologies?

I see that if I will go there I will have to write code according to prepared design assumptions. Let me think- we are talking about some project assumptions or they have some kind of Analyst? And I will create code– Great! (Is anywhere Java developer without possibility of writing source code?). Also there is information about Weblogic and JBoss. They are both huge application servers (JBoss is replaced now as Wildfly for community version and JBoss EAP for commercial version- probably we have to deal with old version here).

Unfortunately there is no info about particular project so this company probably is trying to hire  people for a few projects at the same time.

What in my opinion should be done here:

  1. If any of these technologies are newer- write it there please!
  2. If company use some other technologies- add it.
  3. What about databases (Hibernate suggest that there are used some sql relational db, but which one?)
  4. Don’t lie. This company is probably looking for developers in some long-term projects. Put information about stable environment!
  5. Solve problems in product environments – it means supporting existing systems. A lot of developers don’t like this kind of job. Check with client if this will be support, ask how much of support task will be assigned to new developer and if possible put this information in job offer.

Job offer 2, Junior Java Programmer

I will put only requirements here:

Requirements:

  • Commercial experience in Java/ Java SE/ Java EE software development,
  • UML knowledge,
  • Ability to design and create web applications,
  • Good knowledge of the OOP will be an advantage,
  • Practical experience with relational databases,
  • Knowledge of Application Servers WebLogic/JBoss,
  • Knowledge of Spring Web Flow, PrimeFaces, Drools, WebServices, jQuery will be an advantage

What I see here as developer:

  • Ability to design and create web applications. Seriously? That kind of points i read like “Ability to write on keyboard – one or two hands is a must”.
  • Good knowledge of the OOP will be an advantage – it means they want to hire junior. This also can suggest that company cares about design, but – not for sure.
  • UML – Too much discussion. For someone it will mean that this company stays in middle ages, for some people it will mean that this company cares about design.
  • Commercial experience in Java/ Java SE/ Java EE software development and Practical experience with relational databases – You need to have experience in Java and relational databases. Ok- simple one.

Finally in last point I can see some kind of technology stack:

  1. Spring Web Flow
  2. PrimeFaces
  3. Drools
  4. WebServices
  5. jQuery

Spring Web Flow is part of Spring MVC. PrimeFaces suggest they are using JSF (All ***Faces suggest it). There are a lot of people that hate JSF (Look here) but out there are also fans of this technology. Drools, WebServices, jQuery- this may attract someone.

As you can read client don’t expect knowledge about all technologies (we want to hire junior so that’s totally fine). Still in my opinion writing down technology stack for project could be nice addition. Let developers out there know what technologies they will be dealing with. Unfortunately sometimes expectations and “nice to have” in job offers don’t even stay close to real project requirements.

That’s it!

Please let me know if you like these series. I hope that after this chapter you will be more aware about how complicated situation is on IT market. Note that at the time your client or boss tries to get as best people as possible, developers try to find as good company and project as possible as well. Your role is to meet all those expectations.

Aware Recruitment. Part 2: Expectations

2 thoughts on “Aware Recruitment. Part 2: Expectations

  1. Marcin says:

    I’ve noticed that you pay so much attention to technologies (both, from the recruiter point of view, and the candidate perspective). For me, technology that you use at work is important, but it’s not THE MOST important.
    Consider two candidates; one of them knows Java and related technologies very well, the other one, used to write in C for last few years, and doesn’t even know how the Java syntax look like. But he’s smart, way smarter than the first guy, and he probably needs few weeks to be good at the technology, and few months, to be as good as the first developer (the Java guy). So after few months, you’ll have developer with the same Java skills, but since he’s smarter, he’ll have ability to solve more complex problems, design advanced systems etc. If your only requirement is to hire people who know technology, you might miss really talented employees.

    And from the candidate point of view; if I see an offer, where they offer me possibility to write in C#7 aplha release and other shiny technologies, but this job is all about writing software for local store, I don’t even apply. Even though the technology is awesome new.
    When I see a job offer where I could be a part of team doing something awesome, I don’t even care about the technology that much – I just apply.

    1. From more technical point of view – I always try to recognize which technologies are “a must” and which are just “good to have”. There is certain knowledge in my opinion that junior or senior developer should have. For example if you want to recruit senior java developer you should not hire person that doesn’t event know how java syntax look like 🙂 Senior is a person that have to couch other developers what is clean code, how to write testable, readable, maintainable source code. But if you want to recruit some junior developer- then of course – most important is to have person that “have that thing”. Also I would always go with more “good approach” candidate than “just knowledge” candidate. But if I want to hire senior developer I just need both- knowledge and attitude. This thing should be also reasonable- I don’t mind if someone don’t know about some specific technology. I did over 12 different projects during past 6 years and never have identical technology stack. Because of that for me “fast learner” is a “must have” in “java world”. Imagine that you have to build a team of 5 developers and you just hire 5 juniors that doesn’t even know java syntax. Even if they are smart there is high risk that provided solution (if they met deadlines) will have large technical debt, and cost of maintain this solution will be very large.

      Of course I agree that technical skills are not on the first place. For sure everyone should apply for positions that gives fun and possibility to learn and develop skills. Recruiters from the other hand have to meet some requirements and in first place they will have to hire people that meets these requirements.

      Finally, please note that this article series are dedicated (in first place) to non-technical recruiters. I found out that very often they doesn’t know anything about technologies. They doesn’t understand requirements that client or particular project have. And when I talk with some recruiters their lack of ANY knowledge (for example knowing that Java and JavaScript are different languages) makes me sad. How can I trust that head-hunter gives me current and proper information about project when he or she doesn’t understand what requirements are about? This starts to be some Chinese whispers game with recruiter in the middle between candidate and client. In my opinion if recruiter want to hire good candidates and be effective he or she just must gain some basic knowledge to at least understand basic concepts and current trends.

Leave a Reply to Daniel Cancel reply