Firing someone is a difficult decision, but the reason to fire is a person is rarely a spur of the moment thing. Chances are, many instances have already happened, and the person is probably a toxic element in the team. When it is decided to fire a person, do it quickly. Growth cannot happen in a toxic environment, and if you have decided to fire a person then the rest of the team already knows this person is toxic. The longer the person is allowed to stay in the team, the more poison that person will spread.