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.