“Teamwork is the ability to work together toward a common vision. The ability to direct individual accomplishments toward organizational objectives. It is the fuel that allows common people to attain uncommon results.” –Andrew Carnegie
If you asked me what was my biggest error as CTO, I would say it was managing my team too much. I guess you could call it micromanagement. It is not an excuse but from one day to the following I took a lot of responsibility and I got crazy with my teams. I wanted to control everything, I assigned every issue, I tracked all the work in progress, I was aware of any problem. All this every day until I gave up.
I realized I was doing it badly, I made the most common error that everybody starting with Agile makes, not trusting my team. You don’t need to worry if they are working harder or if their decisions are the best or… no, no, no, you must focus on product quality and goals accomplishment. Let them make mistakes! If they make the wrong decisions, if the code quality is poor the throughput will be affected because to make changes will be more expensive and the todo list will be polluted with bugs, the team will note it and you too, and together will have to seek for solutions. If the team is not able to reach a sustainable pace, you will have to help them. You should be next to the team when they fail and they deliver zero value to the rest of the company or the client. But that is all.
Some important thing: you must share a common vision with your team, you must agree on common goals for the iteration, you must provide support for every problem and the most important you must work with professionals not with children pretending to be professionals and believe me this is the most difficult thing, but without it to have a trust relationship with your team is impossible and that is the base of everything else.