Fundamentally, since the inception of software, many people have thought that it's complex enough that we need "processes" to manage its delivery. Sort of like we have for manufacturing. Those processes often slow things down, make it difficult to add new features quickly, etc.. Their goal is to give the customer what they expect and have it work though. Agile pretty much says "fuck process, it's not fun" and that's it's whole philosophy. If you've got some really solid and dedicated heroes then you might ship some software that's great and make some money, if you've got some weak links on the team then you might not.
My heuristic has been that when the problem domain is large enough that it's acceptable for members of the team to not have it all in their head, agile starts to have issues. I've also noticed that if you're a "hard problem solver" kind of person, it's less fun.
It does seem like it has success in some domains and such, I'm not sure that it's entirely agile though. The one failing point I can clearly point to with agile is that it appears to be very very difficult to actually, successfully implement, there are so many unhappy people with it.
I fully agree, and would thus like to recommend this manifesto: http://programming-motherfucker.com
Pretty much. The person you describes sounds like someone who is willing to learn/improve/grow and not be confined by occupational labels. This leadership trait coupled with self-motivation is always a boon to a team, regardless of the project management style.
I can't see how a person can have "goodness" without that goodness having a structure which could be studied, systematized and taught somehow.
Whether that could be made into the kind of system marketed by gurus is naturally a different question and I'd be skeptical about that.
How do you teach someone an attention to detail, good work ethic, and perseverance?
Those are character traits, not methodologies. If a PM has those 3, he'll be a good PM regardless of anything else. Actually, if someone has those 3, they'll be a good anything.
Agile or something else might make someone better, but they can't determine if someone is good.
I feel like shop work ( saws, sanding, filing, etc ) and music are better for that but maybe that's bias. Sports teaches some things, but there's an awful lot of sorting going on and some of the "adults" have weird reasons for being there. But I think of character as "what you do when nobody is looking."
Truly great coaches are worth it, though. The best one I ever had told me to get out of sports :)
If Zen and the Art of Motorcycle Maintenance isn't required reading anymore, this could be a sign that it should be.
Besides. Things like Agile aren't "observing what people who are good at what they do, do". It's a formalized process based on the ideas that some people who are good at what they do have about WHY they are good at what they do. But do people who are good at what they do really know why they are so? They probably don't! Besides, they are going to mix in all kinds of things that they think they do, or they think they should do, or they think that good people they learned from did, in that formalized process. In the end, the process they describe may sound good to them, but have very little to do with what good people actually do or should do in any particular circumstance.
Not everyone can be 'taught' or just go by a structure. In fact I would strongly argue that those who just go by a predefinied step-by-step structure are always never the 'good' ones.
The question isn't whether it is possible to teach it, but whether it is practical.
But yes, you're right; good managers make good hires. What's your point?
The best project manager I ever worked with, in the 16 years I've done this work, was a woman who initially did not have a technical background, but she was willing to dive into the technical end of things. She eventually taught herself SQL and how to write Cucumber tests, so she could better QA test the code she was overseeing. I met when she was in her 4th year, and she had an impressive skill for estimating how long a given task would take, and whether things were going well or badly.
If you have someone really good in charge, and they call their system "Agile", then it might appear that Agile works. If you have someone terrible in charge, and they call their system "Agile", then it might appear that Agile sucks. Likewise, if they call their system "XP" or "Deep Review" or anything else. But the only process that seems to matter is "have someone really good in charge."