There are numerous defect tracking tools available on the open market. Among them, there are several commercially available products offered for sale, as well as free defect trackers (or bug trackers, as they are sometimes called). And still again, there is the option of acquiring an open source version of a defect tracking tool, which you can customize to suit your own needs. There is still another option, and that is to build your own from scratch.
The buy-or-build decision is one that is addressed based on the developer’s available resources and budget. While very small development projects may be accomplished with informal defect tracking systems or spreadsheets, most commercial or large-scale enterprise projects will require a formal defect tracking system with several features. Building your own defect tracking system that meets all of your needs may save a little money in the short-run, but there are several considerations involved. First of all, you must consider whether it makes economic sense to dedicate developers to the task of developing a defect tracker. Consider how many man-hours will be dedicated to the task of creating the defect tracker, and compare that with the cost of acquiring a ready-made system; it is very likely that the ready-made system will turn out to be more affordable. If you do decide to build your own, first consider the programming language to use; you will need to use a programming language like Perl that functions well with database back ends.
Another consideration is hardware. A Web server and database server will be required to run the defect tracking system. This may be true for ready-made systems as well, although there are hosted defect tracking systems available as well that sidestep this requirement.
If you do choose to purchase a system, first consider budget before anything else; there are several systems available that are reasonably priced, as well as some for free. But beyond the price of the system itself, you must also consider the database on which it will run; this may also influence the cost factor. For a high-end development project creating a large, sophisticated piece of software for commercial release, a high-end database platform may be necessary for tracking defects. Otherwise, a basic database system (such as Access) may be all you need.