ASP.NET VERSIONS: ALL
Take Control of Managing Your Site s Bugs, Feature Requests, and Work Items
By Ken McNamee
Managing a Web site development project can be made easier by strictly adhering to a process that faithfully tracks all of its feature requirements and requests. In addition, as the codebase grows, the introduction of bugs will become inevitable. Tracking all of these work items, feature requests, and bugs is best done using some sort of tool preferably one that can be customized to meet your needs. This tool can be as simple as an Excel spreadsheet or as complex as a Smart Client communicating via Web services with a multi-tier application server and database. However, something is usually better than nothing, and bug tracking tools definitely fall into that category.
There are countless tools out there to assist you with tracking bugs; my advice is to try as many of them as you can stand, because you ll probably find many of them frustrating to use or difficult to integrate with your development processes. So, although something is certainly better than nothing, it s important to keep looking until you find one with which you can be highly productive. With that in mind, this month I bring you BugTracker.NET, an aptly-named free and open-source tool for, what else, tracking bugs (http://btnet.sourceforge.net).
Users and Projects
Whether you ve ever used a bug tracker or not, I don t think you ll have any trouble integrating BugTracker.NET into your development processes. It offers a fairly standard number of features and configuration options out of the box. However, because it is an open-source tool you are free to extend or modify it in any way you like. Like many bug trackers, BugTracker.NET uses the concept of development projects and users. Users can be practically anybody developers, project managers, QA testers, designers, etc. They can be people who are responsible for finding and entering bugs or they can be developers that you assign to fix the bugs or work on new features.
BugTracker.NET allows you to control the list of users and some of their preferences, such as getting notified by e-mail of new bugs assigned to them or updates made to existing bugs to which they ve subscribed. However, the level of granularity with regard to security permissions appears woefully lacking. You are basically given the option of making the user an administrator of the system or not, so it s an all-or-nothing affair. I would like to see more specific permissions, such as allowing users to enter bugs, but not update or delete them.
The Bug List
Figure 1 displays BugTracker.NET s extremely basic user interface. This is the bug list, which is the first thing you see after logging in to the system. Although very simple, it does have some useful touches, such as color coding of the bug items based on priority. Most user interface elements that designate an action, such as add, edit, and delete, are plain tags. However, don t let its simple design fool you. The bug list can be configured to use different queries that you define. So, the type of bug data that you display for your users and how you filter it is completely customizable because the bug list queries are simply SQL statements that get stored in the database and are selected from the dropdown list at the top of the bug list.
Figure 1: The heart of BugTracker.NET is the bug list, which can be customized to display only the most relevant information.
BugTracker.NET offers some features that are missing from some commercial tools, such as e-mail notification and reports. It has some nice options for users to get notified when any new bug is entered or updated. In addition, users can subscribe to get e-mail notification on specific bugs by simply clicking the subscribe to notifications link on the bug detail page.
BugTracker.NET s reporting features are not exactly enterprise-ready, but they do work and the reporting options are pretty extensible. Figure 2 displays the Bugs by Status pie chart that is included with BugTracker.NET. It s very basic but it is also very useful because the entire report is a single image that you can simply copy and paste into something else, such as a Word document or a team status e-mail. You can also add new reports by clicking add new report , give the report a description, and define the SQL statement that will be used to create the report. You can even specify whether the report should be a plain table grid, or a pie, bar, or line chart. This is pretty useful stuff if you ask me, especially if you have a boss who likes to have project statuses explained using images.
Figure 2: The simple reporting features of BugTracker.NET are deceptively powerful and very useful for creating quick images for diagrams and status reports.
Aside from security permissions, the really big negative for BugTracker.NET is actually the code itself, which looks downright PHP-ish. That s not a knock against PHP, but if you re accustomed to Visual Studio.NET-style Web projects that use code-behind, then you may be a little frustrated when you try to modify BugTracker.NET. Although you can edit individual files in Visual Studio.NET, you will not be able to open BugTracker.NET as a project. At the time of this writing, I m using Visual Studio 2005 Beta 2, which plays nicely with non-code-behind projects like BugTracker.NET and also gives you color-coding and IntelliSense for embedded C# or VB.NET code in the aspx file.
So, although neither the design of BugTracker.NET s user interface nor the design of the code will win any awards, I m impressed by its simple effectiveness. It does what it s supposed to do, not without fault, but certainly without fanfare and without some of the frustrating over-engineered aspects of other bug trackers I ve used. BugTracker.NET is a terrific place to start if you re looking for a bug tracker to use for your project. You might discover that it s simply not powerful enough and you need to buy a high-end commercial tracker. Then again, you just might discover that a few tweaks here and there are all that is required to make BugTracker.NET fit very nicely into your style of development.
Ken McNamee is a Senior Software Developer with Vertigo Software, Inc., a leading provider of software development and consulting services on the Microsoft platform. Prior to this, he led a team of developers in re-architecting the Home Shopping Network s e-commerce site, http://www.HSN.com, to 100% ASP.NET with C#. Readers can contact him at [email protected].