A lot of my clients are interested not only in Agile practices but also in building a high performance culture to drive engineering teams. A question that I often hear is about the motivation approaches that works with such teams. This blog is a summary of some of these conversations that I have with anyone who is dedicated to build self organising and highly motivated teams.
Today, employees want more than a good salary and benefits. Having worked all my career with the software development people in some roles or the other, I know that salary and usual corporate benefits are not a compelling reason for software engineering talent to stay for long. This is important to attract talent but as Daniel Pink explains in his book “Drive: The surprising Truth about What Motivates Us”, to retain employees for the long term, organizations will need a work culture that offers intrinsic motivators as well as extrinsic motivators.
Based on my experience as a team manager and enabler of high performance, here are a few ways that help motivate the software engineering talent whether they are developers, quality assurance minds or business analysts.
Engage and learn about their aspirations
Every individual team member is different. What motivates a business analyst will be totally different from what motivates a software engineer. There will even be differences among software engineers on what motivates them. One may want to develop deeper skills in a specific programming language, while another may want to spread knowledge across entire SDLC. Engineers are sometimes introverts, wanting to stay focused on coding rather than engaging in meetings. It may even be difficult for managers to get engineers to open up about their interests in the beginning. However, regular, one-on-one conversations will offer that opportunity. During these conversations, managers need to listen more than they speak in order to learn more about the goals and motivators of their team member. Therefore for a manager, active listening is a core skill to master.
Provide new technical challenges
Software engineering is an ever evolving career and technology keeps changing at a rapid pace. Software engineering professionals regardless of the competency risk losing their mojo if they do not keep up with the changes in their industry. If your company does not change with the times and does not invest in upgrading its systems, platforms or technology then it will mean more broken code (complexity) for the software engineers. More they are stuck in the legacy and complexity the more frustration they will face and will be likely to leave for a better opportunity elsewhere.
Therefore it is important for any company to take a strategic look at the technology lifecycle and keep investing and refreshing its technology platforms in order to provide fresh challenges to its software engineers.
This not only motivates the teams but can also be a business performance enabler through the use of better technology.
Opportunities for advancement
Managers need to work with employees to understand their career aspirations and how it can be aligned to organizational goals. Many engineers would prefer to stay technical rather than go down a management path, however they want to be sure they can continue to grow in the organization. Some software engineer may want to learn more about QA or move into a business analysis role. By providing opportunities to gain meaningful new skills and expertise, you will be able to develop new leaders for your organizations and this investment will go a long way towards motivating your team members to continue producing quality work and maintaining their loyalty to the business.
Team empowerment
Software engineering teams should be empowered to make decisions about their work. There are certainly guidelines and policies that must be respected, but in general, it’s better to have the technical staff decide and agree on things such as coding standards, processes, tools, and design decisions.
Business leaders should define the end objectives and goals but empower the technical staff to figure out how to best implement, possibly using self-managed dev teams. Enable this team level decision making by brining software engineers closer to their customers or end users of the software. This not only motivates the teams and individuals but also opens up creativity and innovation opportunities.
Recognize efforts regularly
Establishing a culture where people regularly thank each other and express gratitude to their coworkers and staff helps make for a happy workplace. People love recognition for their hard work and no one wants their work to go unnoticed. Peer recognition for their work goes a long way to motivate them to keep doing the good work.
Set aside time to innovate
Hackathons (time set aside for innovation work) and similar efforts that give employees free time to work on code outside of their normal work activities have led to innovations benefiting both employee and employer. Having events that encourage software engineers to have fun and experiment is a great way to offer up more autonomy and capitalize on the creativity and ingenuity of your staff members. It is also important to provide some guidance and governance around hackathons to ensure the work done goes towards solving some valuable problems either for business or social cause. Some organizations benefit by introducing a theme for the hackdays which provides a sense of direction while allowing the engineers to pursue their own goals.
Allow flexibility around work hours but a focus on quality
Rather than enforcing policies regarding when employees should be in office, organizations would do better to focus on developing a culture which motivates engineers to stay in office, focus on solving problems, knowing they are making a difference and collaborate. This can be achieved by allowing the engineers to work on projects and problems they most care about and then trusting them to get the work done. Given the autonomy and trust, it is more likely that engineers will complete more high quality work within time limits and will be more satisfied with their work.
Just like flexibility around timing, a work culture that focuses on quality will allow the employees to work from anywhere. By allowing the employees to work from anywhere it is signaled that organization values the quality they produce rather than the hours they spend in offices. Within the controls of flow of work into teams, this freedom can be a quite powerful enabler for teams. Today technology enables us to work from anywhere. Most software engineers love what they do and if they can do it from anywhere, they are likely to be working outside of office hours not because they have to but because they want to.
Simplify development process (promote agile ways of working)
Bringing in Agile values and principles to software product development processes and aligning organizational processes to support them helps the organizations to simplify and streamline the development to customer needs. By promoting “individuals and interactions” over red-tape and unnecessary processes the end result is a simplified process that engages software engineers with their customers and they are able to focus on the work that matters most.
Focus on managing work, not on managing resources
One technique which often works very well is to allow people to self select the problem to solve. Managers will do better by not assigning task to engineers or not assigning engineers to projects. Instead of managing resources, management will do better by focusing on building the pipelines of work and then allowing the teams to self select the problems they want to solve. This truly empowers the teams to choose their work and increases their willingness to produce the best quality they can.
Companies which incorporates these practices into their management approaches will be able to develop a high performing culture where engineers feel more satisfied and likely to stay longer, thus providing the company a competitive edge.