In an agile software development team, who would be the one to fix the bugs introduced in an update?
The developer who writes the feature?
Someone else specialized specifically in debugging with a certain title?
The best developer in the team?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.
Sign up to join this communityIn an agile software development team, who would be the one to fix the bugs introduced in an update?
The developer who writes the feature?
Someone else specialized specifically in debugging with a certain title?
The best developer in the team?
In an agile software development team, who would be the one to fix the bugs introduced in an update?
In an agile software development team, one hopes the notion of code ownership doesn't exist. In such a team, collective code ownership should reign supreme.
In such a team, the person to fix the code is the first person to notice the bug - either due to their own testing, a report from another team (say testers) or a customer. Every member is just as competent to fix any bug as anyone else.
That also means that bugs don't languish, waiting for person X to come back from vacation. Or if person X has gone from the company, there are others that can pick up without trouble.
(also see the different definitions discussed by Martin Fowler)
Assuming you are not working in such a team - still anyone should pick up the bug. And verify the fix without someone in the know.
The developer who writes the feature?
Possibly. If no one else can possibly fix it. Many bugs are trivial and can be fixed by anyone. Having collective ownership means that whoever fixes the bug gets to learn about the new bits of code - so more than one person can work on that bit.
Someone else specialized specifically in debugging with a certain title?
I've never heard of "senior debugger" positions. Hope to never hear of them. Frankly, debugging is part of the job. Everyone should be able to be effective at it.
The best developer in the team?
Poor fellow. Wouldn't do anything but debug stuff all day. Wonder how long it would take that person to quit.
Oh. And who decided on that? Kinda subjective, not to mention political.
Again - everyone in the team should be comfortable debugging and fixing any piece of the codebase. Or if not everyone, most people should.
the thing with Agile is its up to you to decide what is the best approach and process to use.
So, in this case, its down to your team to decide. Forget what anything on the internet (o some overpriced course!) tells you, find the best way that works for you. That's agile.
Don't be afraid to try difference ways, though I'd probably start with 'everyone in the team is equally responsible for problem resolution'. If it turns out that someone is best placed to resolve certain issues, and everyone is happy with that, then that's the way to go. (though if I were PM for the team I'd expect more than 1 person to know each area just in case the single-point-of-knowledge quits o dies in a horrible bus accident). If the team prefers to have equal ownership of all code, then you have to deal with knowledge transfer and that's good too. Its all down to what works best for your team, not someone else's team who do different work or work in different ways.
I agree with gbjbaanb...
There's absolutely no right answer here.
Fixing a bug does means 3 different things:
The developer responsible for fixing the bug gain experience in that area of the project. This can be familiarity with that code, or familiarity with the business domain that code handles (depends on the kind of the bug).
It allows other people to go on with their work. Lots of times bugs interfere other developers, and they usually interfere with QA, and integration testing.
It removes a malfunction from your product allowing you to ship it, or show it to your clients\ users. This is very important and saves you from unemployment.
Also regarding the first point, if a developer is responsible for fixing a bug, it doesn't mean he doesn't get assistance or mentoring from others. Personally a lot of times I had to mentor (read babysit) new developers who were assigned to fixing bug I was responsible for, so in the future they could work on those areas by themselves.
How do you actually decide who fixes which bug?
You, your team, your team leader, need to weigh in the costs and benefits. whether its better someone new works on it? or someone experienced who is less familiar with that area? maybe the guy who actually wrote it? maybe someone more experienced who knows that area very well? what other assignments are there? how urgent is this bug? are you near a release? etc.