Since December 2015, I have conducted over 1000 one-on-one meetings with senior software engineers in about ten emerging markets. I built Exceptionly after years of executive work for global software companies for revolutionizing the software talent industry through objective testing. In this post, I’m going to give a few tips for managers of software developers. I decided to write on this subject as I can see my software engineer friends are changing jobs more frequently than ever now. It’s simply a waste of their precious time and your money.
There are a couple of things you need to know:
- Yes. They’re smart.
- No. Money is not everything to them.
I have noticed in my meetings with hundreds of senior software engineers that there are certain behaviors and skills that separate the good developers from the great. When managing teams of engineers, a manager will quickly notice that simply being a good coder will not distinguish a star performer from his or her peers. Rather, a holistically talented individual will possess a handful of very important skills:
- Strong timing and calendar management skills
- Self-confidence — without being arrogant or uncoachable
- Ability to describe past professional experiences fluently; an ability to succinctly communicate their unique value add to your team
- Openness to new challenges and hiring through testing
- Technology-agnostic, solution-oriented approach
- A clear understanding of why any tech company must invest in manual task automation
- English proficiency. The common language of most businesses in tech is still English. Developers are not simply smart algorithms. You need people with high cognitive and communication skills
- Not having a poisonous behavior within a team setting: not giving 100% to the job unless there’s a chance to be a hero in the team, resistance to change in favor of stability, etc. (Umut Gokbayrak who has a proven track record on software engineering management mentioned this concept during a coffee meeting in Istanbul while he was working as the CTO of a leading media group in Turkey)
The demand for qualified software engineers is rising all around the world. In developed markets, the situation is even more drastic. In the U.S, software engineering salaries soared over 25% in the last 10 years due to high demand and low talent supply. Developer salaries soared even more in the emerging markets. Software is permeating every aspect of life, but as the following graphic shows, the education system is producing the wrong types of graduates.
With an abundance of opportunities available, job loyalty among developers is at an all-time low. A junior developer is at least 100 times more likely to find a new opportunity in her/his country or overseas today versus 10 years ago.
Andy Grove says “Fear doesn’t work great on knowledge workers as well as it does for galley slaves.” The reason is very simple and goes back to Maslow’s Hierarchy of Needs. Your developers are not concerned with food, shelter, and other basic needs. I discovered in my meetings that almost all of the senior developers I met had a decent amount of savings and above-average life standards compared to the masses in their countries. They know there are hundreds of other opportunities out there.
If you try to manage developers using fear and yell at one of your developer subordinates, I assure you that he or she will return home to five unread job offers in their personal inbox.
So how can we motivate developers? I guess thousands of managers around the world are asking this question every single day. Or there may be dreamers who believe all the coding will be done by machines in the near future. Well, this will only make great software engineers more expensive.
I think the answer lies in Maslow’s hierarchy. Self-realization and a “what I can be, I must be” attitude is the answer for knowledge workers, especially software engineers. As a manager, you’ll need to:
- Pay well, and pay on time.
- Make sure your developers are continuously challenged.
- Don’t be afraid to give credit; do it in front of the other team members. External motivation is a primary driver for many knowledge workers.
- Leave room for experimentation; do not categorically reject their ideas. At least listen.
- Design your engineering processes to support remote work.
- Make sure that you delegate challenging, almost unreachable goals. Keep them motivated by appealing to their constant drive for personal improvement.
I’d like to hear more about your thoughts and experiences in this field. Feel free to contribute with comments on Medium.
About the writer: Founder of Exceptionly, revolutionizing the software talent industry by leveraging his unique big dataset of over 2M hands-on tested software engineers around the world.