Agile Development relies heavily on human interactions.  User stories intentionally leave out details so that people can talk.  Team members sit together so that they can interact with each other always.  It emphasizes human side of software development.  Software development is an intellectual activity and if you try to put mechanical processes into it, creativity goes out the window.

That's why it's very important to make sure that there's a good team dynamics before starting Agile.  If the team is not jelled, I can guarantee that Agile Development will make the situation worse than before.

Here's a quick checklist of things you should consider to make sure that your team is ready.  Not a comprehensive list but should at least give you an idea.

  • How's the moral of the team overall?
  • Do team members trust management?
  • Does management trust the team?
  • Is your team working on the right thing?
  • Do team members value professionalism?
  • Do developers understand the value testers add?
  • Do testers understand the value developers add?
  • Do team members respect each other?
  • Do team members hate customers?

Notice that there's no mention of technical competencies of team members.  If you have a jelled team, team will together solve that issue.