Happy employees code better. Yes, you have read it right. It's the truth, and you know it, but getting software engineers
happy is easier said than done. So, how do you build a culture which actually makes people happy?
If you have ever worked for a software engineering company, you must have noticed that people are always unhappy about something.
That is perfectly fine, as humans are beings who strive to improve and perfect their skills, and therefore not
be happy about the current state of things. I bet that you will be able to find at least one person who is
unhappy about something, even at most awesome workplaces, if you dare to dig deep enough. The things people are
unhappy about is what differentiates company where the best engineers are rushing to get a job from a company
which struggles to hire people.
People would like to come an hour after official work time starts. Somebody is leaving dirty cups in the kitchen. We have
Xbox instead of PS4. Good, your company is in the right place if that is the kind of things your people are unhappy
about. Fix those minor things, and with time people will find some other things to project their unhappiness on.
New stuff that needs fixing will always appear, but people will feel overall happiness because they can see the
progress.
If you are thinking that your business cannot finance the time needed to grow your people, you might want to reconsider whether
you are the best person to run that business.
If your employees are not happy about their projects, work process or the environment, you are in for the trouble. Let us say
that your business functions well overall. Therefore, you may not want to change the way your business works,
and think that you can just pay engineers more and they will be happy, right? No, not exactly.
Paying people more to achieve more is not always working. Providing bonuses based on KPIs is an approach which is always
successful only if the workers are performing mechanical labor. For any worker in the knowledge or creativity
market bonuses often become just a distraction. Plus, unless bonuses are team-based, they often happen to have
a negative impact on the teamwork. I will share my thoughts regarding finances around hiring software engineers
in another post, in order not to saturate this one.
What you should do is create an environment which is helping your employees achieve their maximum. Daniel H. Pink provided
a theory about three main factors which motivate people in his book “Drive: The Surprising Truth About What Motivates
Us”. Those factors are:
1. Autonomy
2. Mastery
3. Purpose
Autonomy is vital for software engineers at any level, especially for seasoned coding veterans. Giving
people the autonomy to decide on how they will deliver can be really empowering. Think about what is really important
for you and set a clear picture. Define coding standards, expected software performance and timelines, but let
engineers chose their own OS distribution, IDEs and working hours. Give them a budget and trust them that they
will make the best choice when buying their hardware. Empower your engineers to deliver value.
Mastery – No matter how it might seem that some people could not care less for their job, anyone in knowledge
or creativity market wants to be a master of their trade. That is more than fairly reasonable, not just because
of the job-hopping opportunities. You simply do not want to go to work each day thinking whether you will be
able to perform at a required level. That is why, from time to time, business needs to take it slow and give
engineers and designers time to learn and grow. Some big companies, such as Apple and Google, tend to give their
employees one day in two weeks or so just for learning and playing. If you are thinking that you are not Google
and that your business cannot finance thetime needed to grow your people, you might want to reconsider whether you
are the best person to run that business.
The Purpose is what drives human being during the whole lifetime, and it is really not surprising that most
of the people have the need to find a purpose in their work, except for pushing the economy forward. The purpose
is perhaps the strongest drive amongst these three, and can give tremendous results. If people feel that they
are working on something that is awesome, they will be motivated to make that thing even better. Even if you
are producing not-really-interesting-and-fun ERPs, you can demonstrate the purpose of them beyond the features.
Have your engineers spend some time with the customers, to help them understand better how the software they've
been working on makes the lives of their users better. After identifying a bug as an issue for a real person, and
not just some issue in Jira that needs to be resolved, your employees will strive to go above and beyond.
Performing better is a never-ending quest, as well as making a better workspace for your employees.
Performing better is a never-ending quest, as well as making a better workspace for your employees. Never stop thriving to
give them more autonomy, helping them obtain more mastery, finding more purpose in your business and improving
the supportiveness between the teams. The ball is in your court, help your employees' code better.