Incompetent employees, particularly in a technical environment, can (1) choose to be honest about their lack of competence, in which case they tend to be let go gently. Or (2) they can be dishonest about their lack of competence but fail at covering their lack of competence, in which case they tend to (eventually) be let go less gently.
OR (3) they can develop a certain swagger and a set of survival skills that enable them to hang onto a well-paid job despite really, really sucking at that job.
OR (4) they can actually be competent at the job and rely on their competence, not needing to develop that swagger and those survival skills.
OR (5) they can be really, really good at the job.
Now imagine a human experiment where there are 8 employees in a department that is responsible for delivering projects and supporting software. There is a (1), there are two of (2), one of (3), 3 of (4) and one of (5).
Allow this department to marinate for 6 or 12 months and then come back and see how the experiment went.
Most likely outcome? The (5) is actually performing a majority of the work done by the department. (1) was let go very early, one of the (2)s was also let go but the other is still somehow clinging on. The three (4)s are turning up for work every day and getting stuff done, making a few mistakes and missing the odd deadline. All of them now report to (3), who was promoted to middle management a couple of months ago.