Why Softwate Engineers Move On

Talking to peers in the industry there is a chaotic market for hiring and retaining software engineers. With demand outstripping supply the expected salaries are rising, the opportunities to do something different are laid out in front of many engineers with recruiters head hunting the best talent. With this market of change there is now the “spoiled engineer” syndrome.

In a previous experience I saw the attitude of a spoiled engineer manifest in their position to negotiate poorly: “Unless I work the hours I want to work I won’t do a good job”.

The fear of losing the good ones drives some companies to give into demands. There are offers of high pay and “unlimited holidays” for some positions.

Many companies are now investing in teams to improve the experience of developers in an organisation. The idea that we need to improve the day-to-day experience of an engineer technically could be a little bit misleading and quite often misses the point when it comes down to job satisfaction.

When digging into what it is that makes someone go for another opportunity it gives some insight into what they feel is missing from their current opportunity. There will always be things people like and dislike about a job but generating the “right” sort of culture is important in any company. Ultimately we want to have a healthy team of diverse engineers who are engaged with what they do and enjoy the way they do it.

From reflecting on this situation I have started to collate some symptoms of software engineers who are dissatisfied with the day job.

Observed Symptoms#

Engineer feels unrewarded#

  • Can get paid more elsewhere
  • Once something is done we start the next thing before celebrating
  • Lack of incentive to do a good job
  • Lack of ownership on what they do
  • No space in the current way of working for their individual development needs

Engineer feels disconnected from the product#

  • Ideas are dismissed, Sometimes on a backlog but just get shut down after a number of weeks
  • Work feels unfinished as they get moved on before they are satisfied with it
  • Lack of connection with the product in general
  • Poorly communicated product goals
  • Numbers over users/people

Engineer feels stuck in the same role#

  • Lack of different type of work
  • Not given the opportunity to develop new skills
  • Very similar tasks
  • Promotion path unclear/ lack of opportunity to improve

Engineer wants to build something new#

  • Dissatisfied with the current project technically
  • Wants to lead on something
  • Tired of fixing other peoples bugs
  • Unable to implement ideas on the current code
  • Lack of good development practices in the current software

However, if these are the common reasons why engineers decide to move on then there is an opportunity to address the causes of the symptoms before it becomes symptomatic.

You can look at some of my ideas in retaining software engineers.