>>The bottleneck for success often is not knowledge of the tools, but lack of understanding of the customer needs.
THIS!! A Thousand Times This!
I have had many successful projects putting the coders in direct contact with the end users.
In contrast, every time a manager is inserted between the real user requirements and the code, the project descends a lower ring of endless-feature-creep hell, doubles in length, and doubles it's likelihood of failure.
Yes, managers are needed to provide some insulation from very noisy and chaotic feature requests from users, but insisting on at least some frequent time with some actual coders in contact with actual users pays massive dividends.
thanks. :) [og author here]