Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing features vs. bug fixing [closed]

Tags:

debugging

I am interested in how much of your daily work time do you spend on implementing new features compared to fixing bugs.

like image 444
Thomas Koschel Avatar asked Apr 13 '09 09:04

Thomas Koschel


People also ask

How would you decide whether to build a feature or fix a bug?

Recommendation: So my recommendation is that assuming the impact on customers is higher with an existing bug and it needs a lesser development effort and lesser cross-collaboration with other teams; we should prioritize fixing bug over new feature launch.

What is the difference between a feature and a bug?

A feature is a functionality intended to be useful to the user. A bug is a behavior, usually the result of an error or sloppy programming, that gets in the way of the features. Antifeatures, unlike features, are not useful from the standpoint of the software user.


3 Answers

I don't code any new features as long as there are some unfixed bugs in my software.

The only reason I can think of to let a bug unfixed in my software is that it's definitely to costly to fix. In this case, we may choose to change this from 'bug' to 'known limitation' or 'known bug', and we fix the feedback we give to the user accordingly, so that the user knows exactly what's going on and why it's not fixed (see my edit below)

So typically, I spend all of my time bug fixing as long as the QA is complaining about something, and all of my time coding when it's not ! :)

I do that because :

  • When a software does a lot of things, but crashes randomly, the user will get a feeling that he cannot rely on the software, and there's NOTHING you can do to fix this. ever.

  • When a software lacks some features, but is good at doing what it does, the user rather thinks "That may be a great software, too bad it doesn't support X and Y... I'll check the next release in 6 months".


Joel Spolsky has written an interesting post on that question in his 12 steps to better code.


Edit to answer comments : If I'm experiencing random crashes, that's definitely a bug, not a "known limitation". Once I know exactly what is going on, and only then, I can decide whether I can fix it or not.

I was rather thinking of the following situations :

  • the bug is provoked by code that doesn't belong to me (typically a third party library). If implementing a workaround is very complicated, it might be OK to wait for the third party vendor to fix it. Real world example : Clickonce doesn't work in some proxy situations... I expect Microsoft to fix it, eventually.

  • If the bug is that a specific feature doesn't work in all situations, and that this feature is too difficult to implement for those specific situations, I think it's ok to warn the user before he uses the feature that what is trying to do is not implemented, rather than just crashing.

like image 59
Brann Avatar answered Oct 22 '22 05:10

Brann


I work for a group inside my company that is suppose to both create "featurettes" and respond to customer issues. I tend to spend more time on high priority customer issues (read: bugs). So I would say my time is nearly 100% spent on fixing bugs.

That said, lets read between the lines a bit. It seems that this question is a way of saying "ugg, I spend so much time on bugfixing...wish I could do more feature development". If that is the case, I think you need to look inward a bit.

As I said, I spend nearly all my time on fixing bugs for customer issues, but I have also written a ton of tools to help with that process. I have everything from specialized log analyzers to generic visualstudio solution file error checkers. Not to mention some of those sweet wndbg scripts I have written for esoteric breakpoints!

It is by doing stuff like that where I fulfill that desire to work on "something new". And in a way, it is much more rewarding than implementing some new small cog in a huge enterprise application.

like image 45
pj4533 Avatar answered Oct 22 '22 03:10

pj4533


Since I don't get paid to maintain any project, most of the time i'm working on new projects, hence adding new features all the time.

However, each feature needs to be tested and debugged thoroughly, so you can say that 30-40% of the time spent implementing a feature will go into debugging it.

like image 1
Ali Avatar answered Oct 22 '22 04:10

Ali