I suggest everyone run, not walk, to read Alistair Cockburn's "Agile Software Development (2nd edition)." He talks about how people learn, and how Agile turns software development into a "cooperative game", like rock climbing. That is, developers have different roles, and each role supports the others so the team can progress farther, producing more software features to deliver to the client.
The author's notes on how people learn helped me immediately in my teaching practice. My classes are both more accessible (can help more people) and more focused (presenting more sophisticated knowledge.)
(Note the 2nd ed is a bit different from the 1st, and so recommended.)