Blog

Building an attractive developer culture

retaining-developer-talent

In the battle for scarce tech talent, money would seem like the ultimate weapon, but it’s not that simple. Every competent engineer wants a decent salary and benefits, and attracting key talent is easier the more enticing your financial offer. But focusing recruitment efforts on exceptional financial benefits alone is a race to the bottom: The novelty of a huge salary soon wears off, leaving employers with no choice but to keep offering more money to stop key talent from leaving.  

Retaining and nurturing top talent requires a more thoughtful approach. You need to create the kind of space where people can do meaningful work with like-minded colleagues and feel valued for it. Your employees need to find a sense of purpose in what they do – or they will leave to find it elsewhere. Living and working with purpose has become even more important since the Covid-19 pandemic, which gave many people an opportunity to pause and take stock of their lives. Realizing their work was not as meaningful to them as they’d like, some of them have taken action. However, organizations can take steps to ensure that those actions do not involve going elsewhere.

In this article, we discuss what it takes to become the kind of company that developers do not want to leave.

Provide genuine flexibility

The kind of people you want to employ are the people who thrive when they are given the freedom to be creative and flexible. Reduce the amount of bureaucracy they have to contend with, and make it as easy as possible for your developers (and all your employees) to be productive.

That starts with giving them a choice over their working arrangements. Apart from salary, flexibility is the key reason developers either leave or stay with their current employer, so offer remote working and flexible working hours. This will help staff to achieve that elusive balance between their professional pursuits and the other things they need and want to do with their lives.

Give your people control over how they spend their time and allow them to design their schedules so that they get to do their best work when they are most productive.

However, simply transferring control to employees is not enough: We find that people who are used to working standard business hours (and beyond) do not naturally start exploring the benefits of flexible schedules when they work from home. It’s important to provide mentoring and guidance on leveraging the advantages of working from home. 

For example, on a sunny winter’s day, why not encourage employees to take a quick walk? They can always finish their work in the evening. There is so much more to working from home than saving on commute time and business clothes – but you need to provide clear guidance to your people on what responsible flexibility looks like in your particular company.

Extend this flexibility to give your developers choices in the equipment they will use to complete their work. At DoiT, all of our staff work remotely, and the company provides a budget for people to choose and purchase the equipment they need to create a productive work environment. 

It’s important to remember that people can start feeling disconnected if their freedom is left completely unchecked. That’s why you need to provide structure with guidelines around availability, synchronization and switching off. 

Availability

Establish a baseline expectation within your team on when each of you is available. Working hours may be flexible, but everyone on your team should know when everyone is online, so they know to ask for help from those who are available and respect the focus/switch-off time of the others.

Keeping teams small is key to this process. People on small teams remember each other’s schedules and naturally respect them. It is also useful to develop a system of emojis or other visual code on the messaging app you use (e.g. Slack), so people know who is busy and who is available.

Synchronization

The usual office-space social dynamics do not apply to remote work. Information rarely trickles through word of mouth, and watercooler chats just do not happen. However, communication is the cornerstone of successful remote work, so you must facilitate it:

  • Use tools like Donut to organize water cooler talks and on-the-spot virtual coffee chats.
  • Encourage every manager to allocate office hours for unscheduled question time.
  • Record important events such as all-hands meetings, particularly if your team is globally distributed. No one should feel they are missing out on communications.

Switching off

The catch with remote working at a global company with flexible working hours is that something interesting is always happening, so employees find themselves always connected to work too. Define switching-off rules, and lead by example. 

If you work best outside normal office hours, and you notice that a team member is responding to your questions even at 3 a.m. or on Sundays, you need to explain that you expect them to respond during business hours only. Just because you contact them out of hours does not mean you expect a real-time response. In a fast-paced, technology-charged team, your focus should be on preventing burnout. 

Change your management style

Employers who don’t offer some level of remote working can’t compete for the top tech talent anymore. However, some managers worry that remote working will deprive them of all control over their teams. These managers have to let go of the tendency to micromanage. 

Trust your people to get their work done and judge them by outcomes rather than work hours clocked. This doesn’t mean you simply abandon your people to do it alone, but it does mean you must manage the manager-employee power dynamic sensitively. 

Rather than constantly checking up on your team and distracting them with endless demands for updates, agree on schedules for work and make time for regular individual and team meetings to discuss progress. It’s natural for people to become defensive or demoralized if they feel that their boss does not trust them to do their work properly and on time. Assuming good intentions means offering help (instead of complaints) when things do not go as planned.

Your role is to align your company’s mission (the Just Cause) with your team’s sense of purpose from the work they do. By demonstrating that your organization is the right place for your team to pursue their goals and express their beliefs, you earn their loyalty and create a sense of true fulfillment. They will be motivated to find more opportunities to seek purpose from their work – and those opportunities are more likely to correspond with the company’s mission. This is how teams become creative.

Earning that loyalty involves building trust with your team so that they feel comfortable asking what they might think are stupid questions, rather than laboring under false assumptions. They experiment with new approaches, confident that even if the experiment is unsuccessful, they will not face negative repercussions because their leaders are aligned with their end goals. 

Cultivate an environment where individuals can grow

Developers are naturally curious and fueled by a desire to learn more. Create the kind of working environment where they are encouraged to develop their knowledge. That means ensuring they have active and approachable mentors available for support and guidance, as well as access to the latest technologies in their field to enhance their expertise and maintain their interest.

Don’t be afraid to allocate time to experiment. Giving your teams 20% or even 30% of their time for unplanned work-related activities of their choice (and ensuring it happens) creates fertile ground for innovative projects, creative product pivots and fixes to pesky bugs that have remained unresolved for years.

This approach works well for strong, self-sufficient autodidacts, but others may benefit from ongoing training and mentoring opportunities. When employees do attain new qualifications, make sure to celebrate these achievements on your organization’s communication channels and acknowledge the effort and commitment they have made. 

This effort and commitment should also contribute to clearly defined career roadmaps. Developers need to know where they can go in the organization, what they need to do to get there and how long it is likely to take to reach each new level. Managers should discuss the options that are open to developers keen to move up, agree on advancement routes and arrange regular check-ins to monitor progress. 

By nurturing an atmosphere where developers feel they are progressing toward mastery, you make your workplace more attractive for both current and prospective employees.

Recognizing people’s long-term goals and investing in them goes beyond simply encouraging them to learn new technologies. Proactively training people in softer skills like leadership, public speaking and technical writing brings your people's abilities to a whole new level.

Build teams

As well as growing individuals, your work environment should also cultivate strong teams. Loyalty is a strong gel. If your developers feel that they belong to a small, tight group of like-minded individuals who support each other in their work, they are far less likely to look for opportunities elsewhere. Your team is also more likely to highlight their positive experiences to their networks, thus amplifying your reach to prospective employees. 

It’s not all about work either. You need to provide time and budget for activities that are purely for enjoyment. Reinvest the time and resources saved on commuting and office expenses in team-building days, when you gather in a shared space to work and eat together. These may not be your most productive days, but the investment pays off in the enhanced collaboration levels of a cohesive team. By giving teams the opportunity to get together and connect, you strengthen the bonds between team members in ways that go far beyond their professional ambitions. 

Start today

Giving developers autonomy and providing opportunities for them to grow individually as part of a strong team demonstrates that your company prioritizes the employee experience. Creating an environment where your team members feel valued and trusted is the key to attracting and retaining the best talent. A competitive salary may be the hook that lures great talent into an organization, but a culture that encourages them to do their best work is the prize that will keep them there. 

Subscribe to updates, news and more.

4 Responses

  1. ec2 instance connect appears to be locked down to SSH and RDP protocols (ports 22 and 3389 only), meaning you can’t use it for databases in the way this post suggests. You still need to ssh to some instance then connect to the DB from there – the advantage is you don’t need to expose that ec2 instance publicly.

    If you go through the above guide, you’ll just get the following error:

    awscli.customizations.ec2instanceconnect.websocket – ERROR – {“ErrorCode”:”InvalidParameter”,”Message”:”The specified RemotePort is not valid. Specify either 22 or 3389 as the RemotePort and retry your request.”}

    did you actually try the above out successfully?

    also discussed here: https://repost.aws/questions/QU_h42-ck0R-alITadXrrXSQ/rds-configuration

  2. ec2 instance connect appears to be locked down to SSH and RDP protocols (ports 22 and 3389 only), meaning you can’t use it for databases in the way this post suggests. You still need to ssh to some instance then connect to the DB from there. If you go through the above guide, you’ll just get the following error: awscli.customizations.ec2instanceconnect.websocket – ERROR – {“ErrorCode”:”InvalidParameter”,”Message”:”The specified RemotePort is not valid. Specify either 22 or 3389 as the RemotePort and retry your request.”} did you actually try the above out successfully? also discussed here: https://repost.aws/questions/QU_h42-ck0R-alITadXrrXSQ/rds-configuration

Leave a Reply

Your email address will not be published. Required fields are marked *

Related blogs

Schedule a call with our team

You will receive a calendar invite to the email address provided below for a 15-minute call with one of our team members to discuss your needs.

You will be presented with date and time options on the next step