In an agile team, who's responsible for firing those that consistently fail to contribute? Should the individual recognize he might need to move elsewhere? Should the team bring up the matter, or should the manager take care of it?
Any advice on how to do this as humanely as possible? Also, how do you protect yourself from attacks? Developers have a lot of knowledge that could be used inappropriately.
Edit: Someone asked if this was in a corporate environment or an open source project. We're small corporation in which IT plays a big role. However, I'd also be interested in hearing how the environment affects the way you fire people.