In this digital age, everyone on the block needs a great developer and most of us are fishing from the same pond. That means great developers are hard to come by and, thanks to fierce competition from all the other business who also need great developers, motivated software engineers are really hard to retain.
Long story short…
If you want to keep great developers on your team– coders who are happy, committed, loyal, productive, effective– you have to offer them the right “stuff.”
By “stuff,” I don’t mean money. In many cases, the working environment in which you put your developers matters a whole lot more than what you pay them.
Of course, a comfortable salary is a strong motivator and many developers are worth a handsome income, but a positive, dev-centric workspace is much more satisfying to developers, and much more likely to instill in them a steadfast loyalty to you and your team.
(Keep in mind, I’m not suggesting you underpay your development team, but it’s important managers and founders understand that money is not the only factor that leads developers to stay or go.)
Good development is valuable, and “poaching” is a real thing in the dev community; if you have an excellent coder that you want to keep on your team (and not recruited onto someone else’s), PROVE IT!
Show your developers how much they matter to your team by offering them the workspace that’s most conducive to writing powerful software.
But what does that workspace look like???
What type of atmosphere is guaranteed to nourish and strengthen great developers?
The answer is a developer-centric work environment which, in a nutshell, is a workspace built around supporting your developers.
Honestly, because they deserve it. It’s likely that your entire business hinges on great software and on the continued maintenance or refactoring of software.
And who is responsible for that?
Yes. It’s your developers.
While it’s true that all team members contribute to the performance and well-roundedness of your business and that all players are valuable to your team, there are few roles that are as critical to business success as your developers.’ A great software developer or development team can be the difference between a company that fails and one that gets Forbes recognition.
Because most team members, whether a developer or not, will like working in a dev-centric company culture, creating that workspace is like a triple win for your team and your business.
Developer-centric environments foster creativity, growth, and collaboration among team members which enhances both enjoyment and productivity at work. Sounds good, right?
Here’s what you can do to create a developer-centric work environment for your company…
Start by offering your developers these things:
Interesting and Meaningful Work
By nature, most developers are problem-solvers. This means they like a good puzzle, but they also like being involved in projects that create real solutions to real problems. While all developers will have their strong suit, preferences, and limitations, anyone would agree that diversity is much more engaging than monotony… and so is work that makes a difference.
While still honoring their skill set, offer your developers a range of projects rather than repetitive work. Doing the same thing over and over again… that’s what Einstein called insanity, right? Mix-up your developers’ tasks to keep their interest peaked, and take-on projects that your team will be proud to work on.
Of course, not every assignment can change the world, but challenging developers with diverse tasks and meaningful projects will keep them more engaged. Your developers will be excited to come to work in the morning, and they’ll consistently produce better software.
For most good developers, rescue projects are inevitable. But don’t make your developers clean-up too much tech-debt. Repairing other developers’ bad code can be taxing and frustrating, and too much of it will leave your developers deflated.
Empowerment in Their Position
No one is always right, but when it comes to software, your developers are probably right a lot more often than not. This should earn them some cred and you should allow your developers to participate in decisions that affect their work AND how they do it.
Acknowledge your developers’ expertise, and respectfully consider his input on critical issues. This will not only make him feel more content and more involved, it will also lead you to make better decisions for your business.
Some creative license is also important to the development process, and trusted coders should have the power to solve issues with momentum. Give your developers a bit of room to do their thing, and they’ll do it more effectively.
Opportunity to Learn New Skills and Achieve Mastery in New Languages
The programming realm is constantly evolving. This means that if you don’t offer your developers a chance to grow their skills and experience new environments, they’ll soon become outdated. That’s not to say they’ll become bad developers, but they’ll certainly be less good.
Don’t prevent your developers from being the best coders possible. Instead, encourage them to grow their proficiencies. Give them the ability to keep advancing their craft and their potential. Your developers will enjoy it, and, ultimately, it will result in better software for you.
Adequate Tools to Perform the Work
Mastering a new programming language might help your developers work better, but great code and efficient builds are a cargo no human developer can carry alone. Rather, great developers need good tools.
You wouldn’t ask a neural surgeon to remove a brain tumor with a set of steak knives.
You wouldn’t ask a firefighter to stop an inferno with a barrel full of water balloons.
And you shouldn’t ask a software developer to work with old tech.
Even the most gifted coders require modern hardware to produce the innovative software you want them to write. They need an efficient workspace and modern learning tools. Without these things, you’re asking your developers to work in the past and, excluding George McFly et al, going backwards never really works out in anyone’s favor.
In fewer words, give your developers the proper tools to work, and you will get better work from your developers (not because they were holding their best work hostage, but because they can produce their best work when they have better tools to do it).
A Collaborative Workspace with Engaged (but NOT Helicopter) Managers
A truly effective dev-centric work environment takes care to minimize efficiency barriers. An efficiency barrier can be anything from bad tools to bad managers. Even with our noses pressed to our monitors and keyboards, a work environment is a very social atmosphere. It’s up to you to ensure you create one that fosters confidence and collaboration.
Most developers work better when they’re paired. Working together helps engineers work-out complex problems; it gives them another perspective, another skill set, and a trusted pal who’s equally passionate about creating awesome code.
Collaboration is crucial to workplace happiness; it leads to loyalty, camaraderie, and a motivation for each team member to bring their best self to the table.
But workplace collegiality should not be limited to coders! Developers must have positive, collaborative relationships with everyone who fills a role on your team.
Of course, all personalities are different, and not all personalities will mesh. This means you have to hire the right people to support your team, and you have to actively shape a reciprocal social culture.
But be careful…
An engaged manager is key to maintaining an effective work environment. They influence the speed and direction of projects, they affect morale and performance, advocate for the team, and they impact the overall quality of the products your developers build.
But! OVER-involvement can be just as toxic as indifference. Managers should maintain a healthy level of engagement with developers, but should not micro-manage. “Helicopter” management stunts progress, spawns little seeds of resentment, and ultimately slows anyone’s work process.
Here comes a tired cliché, but it applies (and it means more than you probably think it means): Rome wasn’t built in a day, guys. And, when you get down to the brass tacks of it, Rome was never really “built” at all. Or, at least, it was never truly finished.
Just like Rome, good software takes time. It takes tremendous planning, effort, energy, and commitment to create working software—especially when your developers are starting from scratch.
Different developers work at different speeds, and some projects are less (or more) complicated than others, but there are two general truths about building software that one must accept in the industry:
- writing software takes time
– and –
- software is never “done”
Even the strongest code needs to be maintained. When you have realistic expectations about what’s required to create and sustain a piece of software, you can give your developers the space to build something truly beautiful.
Now, here’s a truth about developers:
- software developers are people, too!
Having realistic expectations of your developers also means that you accept that, in order to do their best work, they need a healthy balance of work time and personal time. While most good developers will eat, sleep, and dream in your product, they also need down time; they need to recover in order to keep building awesome code.
Recognition for Awesome Work
When your developers do something incredible, it feels really great for you, them, and for the rest of your team when those feats are acknowledged.
Recognition is a huge part of a positive company culture and an easy way to foster loyalty from your team members. Happily, recognition is flexible. You can acknowledge awesome work from your employees with something as simple as a pat on the back.
Happy developers don’t need lavish gifts or bonuses (not to say you shouldn’t offer them if you can and when they’re warranted), but most employees just want to feel valued.
If you can make your developers believe they are a worthwhile part of your team, that their skills are seen and valued, that gesture will be met with hard work, high-quality software, and developers who want to stick around.
In the end, it all boils down the reciprocity. Take care of your developers, and they will take care of you.
A dev-centric workspace is about supporting and bolstering the elements that support and sustain your business– software and software developers.
Has a great company culture ever won your loyalty? Or has a stifling workspace ever forced you out of a job? Tell us your story, or share your suggestions in the comments below!