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:
- Adopt -Things that showed up recently and companies should think about using them
- Trial – Still quite new on the market
- Asses – Worth exploring, quite stable position on the market
- 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 here, here 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:
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.
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 🙂
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.
There are a lot of expectations that can be discussed:
- 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.
- Multicultural environment – Some developers wants to work in multi cultural organizations. Possibility of journeys is sometimes an advantage.
- Working hours – some developers see flexible working hours as convenient. Additionally, possibility of remote working can be a big plus.
- Location – Sometimes your office location is also important ;P
- 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.
- 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.
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
- 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
- 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:
- If any of these technologies are newer- write it there please!
- If company use some other technologies- add it.
- What about databases (Hibernate suggest that there are used some sql relational db, but which one?)
- Don’t lie. This company is probably looking for developers in some long-term projects. Put information about stable environment!
- 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:
- 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:
- Spring Web Flow
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.
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.