Writing a good job description for a software development position is a very hard task. On one hand, you need to make it sound like an attractive option for skilled professionals, and at the same time balance it to be realistic and professional.
Some phrases read like warnings for more experienced developers. When they read these things they will probably roll their eyes and pass on an opportunity.
If you are new to software development, understanding these messages might help you avoid positions you might regret taking. If you are tasked with writing a job description, avoiding these cliches might help you get more people interested in the company.
So, let's talk about some of the most common ones.
The Rockstar/Ninja/Wizard developer
Translation: When reading positions about ninja turtle developers, two things come to mind:
- People writing this job description don't respect me enough and decide to infantilize my work.
- They are probably looking for a developer who works overtime without compensation, manages terribly unrealistic deadlines and is happy to put up with whatever arbitrary goals management comes up with, a real rockstar.
Translation: A person who is willing to go through death marches without complaining, because you know ... passion. Some people are very passionate about their craft, but they are as passionate about humane working conditions.
Working on cutting-edge technologies.
Translation: Using whatever fashionable web framework is currently being hyped. Unless the company conducts research that pushes the state-of-the-art on any field, it's safer to skip this one, as it's one of the easiest ones to spot.
Must be a team player
Translation: You should not question authority and blindly follow management.
Being a team player is one of the best characteristics a developer can have, but saying that a person must be a team player usually means blind obedience to management commands.
Micromanagement is one of the most crippling practices in the industry. Software developers are creative individuals with lots of potential to solve problems. If you can't provide trust and freedom for problem-solving, don't bother hiring one.
Be part of an agile team
Translation: We do daily stand-ups, and sometimes even retros!
Don't bother writing this, everyone is agile nowadays. It will come up during an interview where the developer will find out there is very little actual agility involved.
Translation: This can usually mean one of two things:
- Your job will usually consist of 90% firefighting and 10% actual work.
- Our leadership keeps changing our priorities and it's very hard to predict what your job will actually be like.
No matter what, this usually means there is a lack of good practices and consistent process around the team.
Anything about urgent needs
Translation: Our previous rockstar ninja wizards left for greener pastures and nobody else understands the software they left.
Yes, this is usually a red flag the size of a soccer field, run!
Ok, what should I write instead?
Be honest and write the truth. If the working conditions are tough or there are big technical challenges, talk about them. It's not like they will never find out, and there are plenty of professionals ready for this type of challenge.
- Instead of offering BS things like rockstar developer roles, talk about the opportunities to create technology that solves real problems.
- People care about having a say in things. If developers have the chance to create their own solutions and improve the process, talk about this! If not, maybe they should.
- People care about people, and colleagues will be one of the most important factors for your work satisfaction. Include a little bit of info about the team they are joining, even if it's cute little drawings. For inspiration, look at what Basecamp did.
- Talk about the company's mission, but not in a BS-fairy-tale way. Explain why the world is better off because of what you do. You don't need to go too hard on this, you are probably doing much more good than the tobacco industry, so start there.
What to do next
- Go and read some job descriptions for software development positions online and see if you can find some of the things we've just discussed.
- Share this article with friends and colleagues. Thank you for helping me reach people who might find this information useful.
- Check the books in the recommended reading list, because they are truly awesome.
- Send me an email with questions, comments or suggestions (it's in the About Me page)