In order to write great software you have to have a great environment, one that trusts you!Tim Lister
Many years ago I led a software development project with a team of 7 people. At that time the job market for programmers was very tight and since the deadlines were very aggressive I've hired a sub-par developer and assigned him on a very defined task. After some time spent observing this programmer struggling with the task I took the hands-on approach and starts pairing with him. Unfortunately pair programming only further exposed the incompetence of the developer and after some time our relationship degenerated into me dictating him the code and reducing his role into a human IDE. While the project was (very) successful at the end, I've learned an important lesson how loosing trust in a programmer's capability to deliver solution effectively terminates him or her.
There were several other instances in my career where I saw first hand the effect of mistrust in developers. Fortunately in most cases, it was possible to define the circle/area of trust and have developer thrive within it, but in couple of instances the lack of trust in capabilities and commitments was so substantial that people had to be let go.
Programmers are in essence experts. They do things others don't understand and cannot control. And if you cannot control something, the only way to manage it is to have trust in the person doing it that he or she is doing the right thing. Therefore earning trust of colleagues, customers, managers, and other stakeholders should be high on agenda of every programmer.