InexperiencedTeamsAreRampant, hiring managers seem to think that experienced people are less up-to-date on new techniques (or fads, or are more cynical about new stuff), have less energy, expect too much pay, don't tolerate long hours, etc.
WhyIsExperienceUnderValued? in our industry?
Explanation 1: Managers think that developers are PlugCompatibleInterchangeableEngineers, so it will save money if they hire less experienced (and thus cheaper) developers, as long as there are enough correct buzzwords in the resume to justify the hire. In other words, assuming managers do this due to ignorance, inexperienced teams are rampant because InexperiencedManagersAreRampant.
But why? Why is the feedback process of bad management decisions not changing things?
That's assuming such feedback exists, and works fast enough. How long does it take for such projects to fail (months? years?), and after how many such failures do upper management finally realize the problem is with the hiring manager? (years? decades?) OTOH, such "savings" is visible immediately in this quarter's expenses. I have seen companies where each level of management really do their best to hide information from their upper management, further delaying (if not outright preventing) any kind of feedback. By the time anyone in upper management realize what is happening, that hiring manager would probably have moved on to another company, or is already fired in the last round of layoffs, or is now part of the upper management.
I agree that the feedback system set up for most business is out-of-sync with that needed for effective software development. Perhaps this arrangement is good for other functions within a company, but not IT. I don't know if it is practical or possible to change the company culture *just* for IT. It may not be local-izable. Perhaps we should learn to work within this framework. However, the best practices for career advancement may not be the same best practices for producing a good product. MeritVsPayMismatch?? Us geeks often get in trouble when we care more about a good technical product than corporate political issues. Classic TechiesVersusSuits? conflicts?
Is it really due to inexperience? Will more experienced managers understand that hiring an inexperienced team will lead to project failure instead of cost savings?
This one does. Normally, one ends up with a mix. It's rare to have the luxury of an entire team with decades of experience each. And not always desirable - there's usually some work that can be better done by less experienced people - in my experience (pun intended), the experienced people don't like stuff that's mundane to them, and you have to consider getting people to be experienced for future projects
See also SoftwareLabourers
Managers rarely have complete control over resources. In a large company, managers compete with other managers for resources. An inexperienced manager probably knows that they need good/experienced developers, but they may not have the leverage to get them if everyone else wants them too and there's a finite supply. -- BethLinker
Developers are like any resource, so what should a manager do when they are told to do a project without adequate resource, thus basically assured its failure barring some miracle? An inexperienced manager may not even realize s/he does not have sufficient resources, but assuming s/he realizes that, what should the manager do? Is s/he supposed to "just do it", or to "make it work"? (That sounds like the manager's manager is also inexperienced; miracles don't happen just because you want them.) Or should the manager and his/her manager work out some feasible plan first?
See also RealStoryAboutDeveloperTurnedManager, DontBlameTheManager, IsEarlierCancellationFailure
Two differences between an inexperienced manager and inexperienced developers makes an inexperienced manager much more damaging. First, the manager has much more authority over the project. Second, there is usually one project manager for the project, while you will have a team of two or more developers, so you get an inexperienced team only if every developer in the team is inexperienced. To compound that problem, you can let an inexperienced developer to work with experienced ones to slowly gain experience while still contributing to the project, but there is no productive position (is there?) for to-be project managers to gain experience, since one experienced project manager is all you need.
Any wisdom on how to train inexperienced managers to become experienced?
Mentoring
Good decisions come from experience. Experience comes from making bad decisions. Make sure the 'bad decisions' are small ones - non fatal; work at managing smaller, lower pressure projects. -- DaveParker
Not trying to be argumentative here, but in my experience, those non-fatal bad decisions are still fatal to the smaller lower pressure projects, just that the failure of those project is non-fatal to the company and the in-training manager. Unfortunately, those projects are still failed projects, and it is just as frustrating if you happens to be a developer caught in them.
...and what's good for the manager (experience at failing) can still be very bad (being branded a failure) for others involved. How about a project simulation for the manager to run? Could you make it real enough so that the trainee would learn from it? (On the other hand, I've seen "mentoring" carried out that is closer to MicroManagement. No treat for the developers there either.) --DaveParker
A good way to get experience as a project manager is to take calculated risks. Some will not work out, others will. Spend time thinking about why. Start by taking tiny calculated risks and understanding why things work out the way they do. Never, ever, fail to learn something from a failure.
Another way is to apprentice to one of your organization's best project managers.
Do new managers get any official management training (as in, being sent to management courses)?
It varies from company to company. None of the companies I have worked for have ever had any management training (and the quality of the management reflected that). Other than an MBA-style program, I don't think management training courses would be any more beneficial than those "Learn <technology X> in Two Days" courses to which managers subject programmers. u Would training help new managers?
Absolutely. I agree with the point about X in two days (what we used to call "sheep dip" training, but a longer program (which doesn't need to be MBA-length) would have helped me enormously. Also, if we're talking "project managers" as well as line managers here, there are good things about project management that can be learnt in a few days, and that beats having the lessons learnt on the job. As the saying goes "experience is the best teacher - but it delivers the lesson after the exam".
When I was first thrust into a management role, I quickly developed a sense that I was overwhelmed and that there was no way to get my project completed on time and within budget. I expressed these concerns to other managers, and they all told me "Don't worry--everyone feels that way at first. You'll be fine."
I believed them, but they were wrong. I really was in over my head as much as I thought, but I kept acting as if everything was going to work out, because everyone told me it would. I didn't know any better.
I think this may point to one of the big differences between being experienced and being inexperienced. Experienced people know the difference between what "feels right" and what "feels wrong", whereas inexperienced people have nothing to compare their situations against. Inexperienced people don't know when they are really in deep trouble.