In my last article, I wrote about how managers are responsible for creating an environment where intrinsic motivation can happen. Here is one thing that I’m sure would help a lot of companies / teams:

Allow your people to achieve technical excellence!

“Wait, we allow that. We event want our people to be excellent!”, I hear you say. All companies and managers want excellent people. But many are not willing to invest anything - money, time, process changes, … - in enabling their people to achieve technical excellence. And some companies are even hindering their people to do excellent work.

You know, most (if not all) software developers / testers / managers I know actually want to do good work. They want to create excellent software. They want to learn how to do that. They were intrinsically motivated to create better software, but their company has killed this intrinsic motivation.

For many of them, developing software is a day job. They do not want to spend tens of hours of their free time per week on side projects or reading books or doing code katas. They do not want to learn and become better in their spare time.

Which is totally OK! Because, when a company employs someone, the company is responsible for training the person to become the employee they want!

So, if you want technical excellence, train your people and create an environment where people can learn. On the job. Create an environment where technical excellence is rewarded.

Are your team members allowed to read blog post, magazines and books during their work time? What is your training budget? What is your conference budget? Do you encourage your people to speak at conferences or user group meetings? Do you host or sponsor user group meetings?

Encourage experimenting and learning, even if you know that this means people will make mistakes. Allow team members to try new things and to work on stuff that is not on the Scrum board. Allow your developers to refactor (it saddens me how often I have already heard “we don’t have time for refactoring”).

And talk to your people. Tell them that you want technical excellence and that you need their help to change the company / department / team in that direction. Ask them what they need, and then listen to them.

Do those things one step at a time. See what works and do more of it. Stop what doesn’t. Over time, the intrinsic motivation in your people to be good at what they do will come back.

Do you have any questions? Do you have any stories about companies that do this exceptionally well (or are quite bad at it)? Please tell me!