Not sure if we are large or medium [img]images/icons/smile.gif[/img]
In my company assigning depends on:
1)The project: size, technology/architecture complexity and age
2)The defect itself
3)Optionally: schedule/days until deadline
Reason is that there are two functions of the bug assignment – select the right developer and make a decision that this bug should be fixed and sometimes – in what time frame/what priority. So assigner depends on:
1) How simple is to understand which developer is responsible for this bug (if project is either old or architecture is following: each executable have it’s developer – then testers typically know it themselves)
2/3) What control over defect-fixing process management want to hold (sometimes they only want to manage it at the end of the project).
In my project I as test team lead do assign most of the bugs, except when decision is required I forward them to PM. In older/more stable project each tester could make most of the decisions themselves. In larger projects development leads/managers makes most of decisions.
I also knows another project where bug assigner is selected based on bug type and severity. Thanks to our bug-tracking system that allows such a configurations per project/release.
I've worked at a range of large, medium and small companies and in my experience it depends upon the knowledge and size of the QA and development teams. In most medium to large companies that I've worked with, the QA dept assigns defects to a central point of contact for development (usually dev manager or at least a senior developer) and they apportion the work from there. Failed re-tests, however, are re-assigned to the developer who worked on the fix.
In smaller companies I have worked with the QA dept used to assign defects to developers directly, though I tended to discourage this practice as it can quickly lead to uneven distribution of work due to some QA staff having 'favourite' developers to whom they seemed to assign most of their defects and wasn't conducive to rapid defect turnaround
I've worked in several projects with different size of developments teams. (Projects with 300 employees as well as projects with 5 employees)
Always the rule was: assign the Bug to the component where it occurs. In a small project it will be automatically asssigned to one developer, because he is the only one who develept on this component. But in a large or medium project are working a team of developers on this component, and the leader of this team will dispatch this task to the developer who will fix this bug.
I never dispatch a bug to one developer, i dispatch the bugs only to componets.