Continuing with yesterday’s post on Recruiting Software Engineers, Kevin Strasser of TribeBoost offered a great comment that software engineers are looking for more than just money — the environment must also be attractive. Here are some thoughts on creating a great environment for software engineers based on Kevin’s thoughts and others:
- Autonomy, Mastery, and Purpose – Encourage autonomy, mastery, and purpose for all team members (straight from Dan Pink’s book)
- Results Only Work Environment – Have a Results Only Work Environment where team members can work where they want when they want
- Unlimited Vacation Policy – Don’t track vacation days, sick days, or flex days, rather, focus on the required results for that position
- Great Equipment – Provide the latest MacBook Pros, Thunderbolt monitors, Herman Miller Aeron chairs, and anything else that helps maximize productivity
- Workspace Variety – Offer different shared and private areas to work as some tasks are more collaborative and some are more heads-down
- Big Picture Understanding – Share a Simplified One Page Strategic Plan with everyone so that there’s a greater understanding of the entire business and direction
Creating a great environment for software engineers and team members takes work and continual refinement. Following these best practices and working hard to create one of the best places to work makes it easy to attract great talent.
What else? What are some more thoughts on creating a great environment for software engineers?
3 thoughts on “Creating a Great Environment for Software Engineers”
I’ve been struggling with how to have a results-only work environment for developers while still having a more specific schedule for customer-facing positions in the same organization that do require coverage of certain hours (ie: customer service)
Anybody have any tips or experience here?
One of the expected results for a position could be that they’re available at specific times for customers (e.g. the support team or other customer-facing positions). The key is that the people on that team self organize to ensure availability as opposed to the manager being responsible for ensuring availability.
@David > Thanks for the mention. I have been enjoying your blog the past few months. Glad I found it. Thank you for sharing your knowledge here and I enjoy learning from you and the other folks that chime in.
@bchecketts > I have worked at software companies where developers did not have a set schedule, yet the customer service people most certainly did. We all did fine with it. It is just reality.
I realize people can get jealous of one another and this is one reason some companies do not offer remote work for example…to avoid conflict.
But in my view a company is not a democracy. We all have to be adults about this.
Some jobs cannot be remote > for example the janitor cannot clean the building from home.
Some jobs cannot have a flex schedule > customer service workers need to cover a certain block of time.
Personally companies that do not offer flexibility to some, because they cannot offer it to others, are just being silly.
Not all jobs are compensated at the same pay rate either. Not all jobs are for the same duties. Employees are given different amounts of stock options. It’s life…