I came across a post today and found it very useful from a lead developers stand point. One of the reasons why IT has come to become what it is today is - lot of “managers” or “decision-makers” still think of product development as classical engineering. IT is different. Growth of IT is dependent of productivity of people and not productivity of machines. Most of the other engineering disciplines are centered around making sure that machines are kept busy as much as possible so that manufacturing lines are optimally utilized. This does not hold true for IT.

Productivity of software development is directly proportional to productivity of people developing it under given process and technology environment. I am not saying Lisp, Haskell, Clojure, Python etc are the only way you can make people productive. Nope. But there should be balance between product you are developing, technologies used for them and processes designed for the same. But most important thing is - understand the people you have and structure your processes based on that. Or think about the processes you want to follow and hire people who fit into them. Technology may not be the silver bullet here. How you leverage people and processes might be, in my opinion.