Software Modernisation and Employee Retention

I remember my grandmother telling me about when she started working, around 60 years ago, there were few companies to choose from back then and if you wanted to work, you looked at the job adverts in the local newspaper and that was about it. Once you secured a job, you would probably stay with that company for decades if not for your whole life - no matter whether you were actually happy, paid fairly, got recognition or had a long list of cool benefits.

We're facing a totally different scenario today with millions of companies competing on a global level not only to attract but also to retain talent. In tech particularly, there are more job openings (demand) than actual people (supply) to fill them, this is what a candidate-driven market is - no wonder we are living what is called the War for Talent. Keep on reading and let's see how Software Modernisation might be part of a solution to help companies to retain tech talent.

Measure the level of maturity of your software development organisation across 5 distinct areas.


Before we dive any further into this post, allow me to redefine these two key concepts.

Software modernisation, also known as Legacy Modernisation, is a continuous process of improving technological systems in order to increase business agility.

Employee retention or talent retention is a set of processes through which an organisation will nurture its employees in an effort to retain them and manage employee turnover. In other words, it is how an employer encourages its people to stay with the company.

Software Modernisation is about software of course but who actually modernises it? People. Developers, programmers, engineers, or talented, highly skilled craftspeople when it's Codurance (wink wink). And let's not forget non-tech profiles who should also be involved in such projects: count the software engineers but also project managers, delivery leads, UX designers, marketing... To put it simply, cross-functional teams are a key requirement in Software Modernisation projects. And it'd better be an effective team!

So what is an effective team?

Well, a team is a group of individuals who work together towards a common goal. We could write a whole article about how to define an effective team, but for the sake of minimising digressions allow me to simply highlight the results of a recent exercise we did with our current craftspeople-in-training. We came up with the following elements to define what an effective team is to us: of course, alignment towards a shared goal came up; plus mutual accountability and commitment. On the soft skills side we added respect (and trust), communication, feedback and flexibility to the equation and an external element we also wanted to see was autonomy.

Now that's all very nice but how does it all link back to employee retention?\ Some common causes for job dissatisfaction and demotivation are linked both to the people: "bad" management or a "bad" team and to the work itself: a work/life unbalance (overwork) or boredom/lack of meaningful work for example.

Frederick Herzberg, an American psychologist from the 20th century, introduced the Motivation-Hygiene Theory which is now a reference in business management. According to him, the two factors through which an organization can influence employee motivation are, motivators to encourage them to work better and hygiene factors which don't increase motivation per se if met but will affect it negatively if not available. Examples of motivators could be the work in itself, recognition, responsibility and growth amongst other things. Basic conditions such as remuneration, appropriate management, company policies (vacation time for example!) and work conditions fall under the category of hygiene factors. That includes a proper work environment, atmosphere and a team: not just a group of people who just happen to have the same employer.

Building and nurturing effective teams helps with employee retention, positive and motivated talent is more engaged: employees are less likely to leave - nothing new so far.

When it comes to developers, it's safe to say we're usually dealing with high performers and some patterns have been detected in those cases. We generally identify two main types of motivation: extrinsic (through factors external to work like monetary rewards or the fear of losing one's job) and intrinsic (related to personal drive and desires like overcoming a challenge, learning from others etc.). Daniel Pink, an American business and management author bases intrinsic motivation on three key factors. Autonomy, the need to have control in one's life and work, to choose the direction in which one is going. Mastery, the desire for continuous improvement, seeking to better one's own skills, learning and practicing. Purpose, wanting to participate in something bigger than oneself, seeing that one's work has a meaning.

For extrinsic motivation, look at fair compensation (at least be aligned with the market), career path options and be sure to provide your people with the appropriate resources / technology / tools (be careful, know which ones are hygiene factors and which are actual motivators). With intrinsic motivation, an organisation can directly impact all three components: mastery through training and development (knowledge is a strong driver in this field of work!) and opportunities to grow, not just promotions. Autonomy by ensuring clearly defined roles in a climate of trust and respect, encouraging communication. And last but not least purpose, setting clear goals, aligning teams with the company vision and mission.\ Nowadays many companies offer perks and benefits which are nice extras (linked to extrinsic factors!) but certainly do not replace the basic conditions mentioned earlier. Common reasons for tech people to leave include frustration (what a surprise!), lack of challenge (didn't we just talk about that?), lack of recognition and too much pressure from the business with misaligned objectives and priorities. The typical short term focus: "we (the business) want this for tomorrow" unfortunately often leads to compromise on the code quality and therefore on its durability. Let's put it simply, it will cost time, effort and most probably money in the near future.

Ever heard of the "7 Circles of Developer Hell"? If not, go check it out now: And what do we find in the third last position? Bad code!.

If Software Modernisation is such an obvious solution here, why don't companies rush to update their old systems and refresh their code?\ On the practical side, it includes fixing outdated software, migrating to newer solutions, refactoring, improving legacy code and tasks which can be considered as fixing past mistakes etc (but not only!). Some see it as a challenge and really enjoy it, but the line is thin between just the right amount of challenge for a while and too much of it. In the longer term this inevitably leads to frustration. Which in turn could lead to demotivation, disengagement and eventually losing talent. This is why Software Modernisation should also be planned from a strategic perspective! Turning towards a trusted partner to help the internal team deal with a transformation of that kind is advisable in most cases.

By now you should have a better idea of how Software Modernisation can help not only to grow your business but also to retain and nurture your people.

Feel free to share any insights you may have or share references for further reading and learning, ping us on Twitter or Linkedin!

Measure the level of maturity of your software development organisation across 5 distinct areas.