When people look at the growth of technical leaders, most attention tends to go into “hard” technical subjects. Training courses (certified, no less) abound for various software platforms. For technical skills development we advocate training that focuses on core principles rather than today’s popular platform. Wise skill development realizes that the much more difficult area of “soft” skills (note our irony-quotes) become increasingly important as folks rise up the leadership ladder, and that's something we endorse too. [1]
Valuable though these things are, we also think it's vital to ensure technical leaders have a firm understanding of the business they operate in, and how value is generated by the various players in the domain. This is usually not something that comes through training courses, rather it's something that comes through regular interaction with business leaders. This social interaction should begin early in a technologist's career. The notion that separating IT staff from business staff causes untold ills to such a profession like software development whose value is rooted in how much software is deeply entwined in the activity of the enterprise it supports. Developers need to learn early on that constant contact with their users and customer is normal, and learn how to do it well. Years of such contact reap great rewards when they become leaders and are familiar with those in the business that they have grown up with.