views:

395

answers:

12

I am planning to write a bug tracking tool for a company. I haven't committed to the project yet, but I would like to know your thoughts. I am pretty good at C++ and am learning C# now. I know some Javascript as well.

How much time would it take for developing a basic bug tracking tool? (With myself and a junior developer working on it).

Are there any good resources to learn about how to write one? Is there any book that kind of explains the basics? Any online help on how to proceed?

+1  A: 

I would recommend using the open source software Bugzilla. We use it at my company and it seems to work pretty well, in addition, it works well with our software IDE, Eclipse.

http://www.bugzilla.org/

Nick
+1  A: 

You may want to check out some of the Open Source applications such as BugZilla to see how they work.

Suroot
A: 

Check out BugTracker.NET. It's open source, and it's written in C# as that is what you are learning. It's quite good as-is, but you can also tweak it for your own needs. The web.config file is nicely set up to change a lot of the application's features, such as checking a POP3 e-mail account to automatically log bugs, and has LDAP support.

http://ifdefined.com/bugtrackernet.html

( EDIT FROM THE AUTHOR OF BugTracker.NET: The coding style of BugTracker.NET is unorthodox, so you might not want to pattern your coding style after it... )

HardCode
A: 

FogBugz by Fog Creek is great stuff.

Internally we use BugTracker.NET and TFS work items.

Chris Ballance
+2  A: 

I would suggest something more modern than Bugzilla, such as Trac or Lighthouse, although Bugzilla may fit your bill. I would even go a step further and suggest that you question even the decision to run the bug tracker in-house. More and more, this is becoming a commodity that you can purchase on-demand for very low cost. There are lots of vendors that do Trac/Bugzilla/other bug tracker hosting. Using one of them will allow you to spend your coding time writing things that actually advance the needs of your business (I'm guessing you're not planning on selling this bug tracker).

runako
+1  A: 

All great answers here so far - it's hard for me to imagine why anyone would write another bug tracking tool. Perhaps if you explained why anyone would pay you to write another tool, that might help. Be a hero and show them how to use the existing tools out there.

Jeff
+1  A: 

What are the reasons you think you're tool will be better than the free or commercial tools out there? If all you want is a basic tool, you can probably get what you want already made. If there is something else you need, that will calculate into the time it will take.

Basic bug tracking is just a database and a web front end. How long will that take you to write?

Steve Rowe
A: 

If it is not possible to use an open source bug tracker it is always good to take a look at them. I'd recommend taking a look at all the bug trackers people suggested on this page.

I used to like Gemini bug tracking: http://countersoft.com/

You can see how other bug trackers work and decide if you want to build your own or build off an existing one.

I've actually built a task management tool which is similar to bug tracking tools. It took me about 100 hours to make something I felt was usable. I've since spent about 150 hours improving it.

metanaito
+5  A: 

While I agree with what many have said already - why reinvent the wheel? - an answer that is going to be useful to you is going to depend on what you are trying to do.

Point #1:
If [you|your company] just need a bug tracking tool, there are numerous tools out there, free and otherwise, high quality and otherwise, why program your own?

If you're looking for a web-based service, you could use FogBugz on-demand, you could use http://www.clockingit.com/ or any of a number of other sources. I swear I've seen at least a dozen questions with twice as many suggestions around here. Search and ye will find.

If you're looking for something to run in-house, you could buy FogBugz (I only keep mentioning it because I use it and love it), you could use the aforementioned BugTracker.NET, or any of a number of other sources. I swear I've seen at least a dozen questions with twice as many suggestions around here. Search and ye will find.

Point #2:
If you are looking for a learning experience, looking for some something to learn [ChoiceLanguage] with, and/or just looking to learn more about wheels, there are a number of articles - Joel has written one or two... - and there are a number of open source projects you can peek at the code to see how they work (or not as the case may be).

In the end:
If the latter is your ultimate goal, then by all means, read the articles, do the research, and code away.

If its the former, you might want to look at something thats already been done - unless its going to be your businesses core competency.

Ultimately, the answer you get is going to depend on the question you ask. Being clear from the get-go will go a long way. ;)

AnonJr
A: 

Hey,

A big Thanks to all of you for giving me great suggetions. Really appreciate it. This is a friend's company and it's still very small...I know he could use one of the open source tools. But,I said I can write one for him::))) thinking that it will be a great learning experience for me as well( and since I said I could write one for him, that will give me motivation to sit dwon and code...I would never get motivated if I want to do it as a pet project::)) If I cant get it done on time I will configure one of the Open source tools for him. But, I want to try it first.

Thanks again to everyone

vj01
A: 

220 some.host.com

HELO hostname

250 Hello

mail from: [email protected]

250 OK

rcpt to: joel@joelonsoftware

250 OK

DATA

354

From: guest [email protected]

To: Joel

Subject: Send me the codez pls

Send me the codez plz.

.

250 OK

KristoferA - Huagati.com
A: 

I concur with all the other folks. It is not really useful except as an exercise to write yet another defect tracking tool. You may want the experience and that is great, however the chances that you are going to write something that is better than one of the free ones is very slim. So, if you plan to write one as an exercise and then give him one that is already made then great.

I suspect there are other projects you can work on or contribute to that would be more worth the time.

Assuming he actually uses the one you wrote, do do you really want to keep supporting it for years? Is it really worth it in the end?

You point out that it will be an exercise for you. Again - pick another exercise - that one is not that interesting or challenging - your help would probably be better off doing other things.

some of the simple things you will need to write/consider

  • UI (many are now browser based for various reasons - platform independance, light client install, etc)
  • database back end (scalable, available, etc
  • multiuser server side
  • networked - able to be used from anywhere in the world
  • reports - easily configurable and simple to use
  • email integration - both to developers for informing them of due dates and also responses to clients
  • admin for setting up users, setting projects, workflows, etc
  • integration with source repository(ies)
  • backups (may be a different tool but you need to have this)
  • where to host it. there are existing sites that will host existing bug software, but they may not allow you to use yours - you are limiting yourself with you own hand-rolled
  • you have very limited support solutions when users need help or fixes. With the other solutions there is the whole world and big communities to go to for help
  • I could go on and on
Tim