The Developer’s Hierarchy of Needs
As organisations look to improve, they must not only focus on new technology, but also on creating the best possible environment for their developers to thrive in.
It is not uncommon to step into an organisation and see impressive open-plan offices, great views, three foosball tables, all there to create an environment that makes developers feel comfortable, happy and engaged.
Whilst a unique and glamorous office may impress potential clients or help to attract new talent, it is a very small part of a complex hierarchy of requirements essential for an engineer to really thrive and love their job. In fact, these offices can sometimes host multiple distractions, limiting the attention span of developers, for whom attention to detail is of the utmost importance.
A history of understanding needs
If the fancy office layout isn’t making things better, what else can you do to help improve overall developer satisfaction?
In 1943 Abraham Maslow, an American psychologist, published A Theory of Human Motivation proposing that humans have a hierarchy of needs. The most basic, such as eating and drinking, must be fulfilled before moving on to more complex needs, including safety, belonging and self-esteem. It is not uncommon to see this hierarchy applied in the workplace as part of management training, and whilst the simplicity of the model does not reflect the complexity of the human psyche, it can help to give direction on which areas to focus on first.
Creating high performing development teams
After years of working with developers, I’ve applied Maslow’s categories specifically to the domain of software engineering. And whilst they don’t encompass every element of what creates a high performing software team, they provide the foundations to get started.
Remuneration (physiological needs)
This is the first requirement that must be met by the business. Remuneration covers the developer’s basic, physiological needs and also reflects their skill level in the market.
Yes, providing your team with unlimited snacks, filtered water and a luxury sofa is appealing to a degree, but ultimately, a developer just needs their salary to cover their living expenses, like food, water and shelter, for themselves, and their families.
In working closely with HR and management, remuneration can be easily addressed at the outset and communicated clearly so that review processes and opportunities for advancement are clearly understood. This will reduce the risk of a developer “jumping ship” just for a salary bump.
Environment and tools (security needs)
In addition to having a safe and secure environment to work in (with all the foosball tables and filtered water they can ask for), they also require the correct tools to get the job done.
If you’re upgrading your office, think about exactly what your developers need to get their work done - make sure there is a quiet space where they can work, undistracted, as well as places where they can relax and collaborate.
It may also benefit the developer if they have the tools and flexibility to work remotely.
Team and leadership (belonging needs)
This is where a significant impact can be made, and I appreciate that some people do like to work alone, I know, I’ve been that person. However whenever I’ve worked within a team of people who are in it together, trust each other to get the work finished, don’t fear failure, hold themselves accountable, share a common goal and look to improve the team’s overall abilities - that’s when the magic happens!
It is also important to have the support from your Manager to rally the team together and guide them to achieve what needs to get done. Having a leader that really has your back, can make all the difference.
Effective and collaborative teams don’t just appear by throwing people together and hoping they get along. They have to become close and trusted friends and have strong leadership who encourage experimentation and understand that failing fast leads to long term success.
Education and recognition (self-esteem needs)
I have worked in many development teams where imposter syndrome exists. I`ve experienced that feeling myself - thinking that you’re not good enough to be working for a given team or organisation yet somehow getting away with being paid each payday. To fix imposter syndrome, you need to accept that you’re doing a good enough job all by yourself, and you are a valuable contribution to your team. Your HR leaders and managers responsible for team member inductions might also reduce the possibility of imposter syndrome.
It also helps if during work hours, you have access to the right learning tools and have the opportunity to get certified in various topics. First it shows your company cares about you and about improving your skills. Secondly obtaining certifications and qualifications will give you more confidence in your own skills and abilities. Additionally, providing safe sandbox projects and environments, where developers can learn new skills by interacting with new technologies enables them to speed up their learning process.
Me presenting at the Melbourne Tech Strategists meetup
Purpose and empowerment (self-actualisation needs)
When the previous needs are met, the final piece involves working on something where you can apply your expertise and talents and work towards a common goal, in a team of similar minded and motivated people.
For a developer to really feel purpose in the work they do, they must work on something they believe in and feel like they are making an impact. Empowerment is also important - developers need the ability to question, critique and raise issues regarding their work, without the fear of getting in trouble or being ignored or outcast.
Meeting a developer’s hierarchy of needs requires commitment from the company’s leadership team to drive it forward, and it must be embedded in your culture, to help you attract the best talent, and more importantly, retain it.