Rowley, G.D., Little Spotted Kiwi (Apteryx owenii), Ornithological Miscellany, 1875-78

FogBugz Bug Tracker Review

by John McGehee on July 1, 2011

I have been evaluating Fog Creek FogBugz and I’m impressed.  FogBugz combines bug tracking, project management, schedule estimation, customer support, and source code management in a single application.

Feature Overview

Wow.  This software does everything:

  • Bug tracker
  • Reporting
  • Source code version control
  • Wikis
  • Discussion forums
  • Scheduling
  • Projects and milestones
  • Customer support email management
  • Extensible with C# plugins

and it’s all nicely integrated into a unified web-based application.

Licensing and Pricing

There is a 45 day trial edition that allows any number of users, but I did not want to be rushed. So I signed up for the free hosted version, FogBugz on Demand Student and Startup Edition, and got running immediately with my own hosted installation at voom.fogbugz.com.  This startup edition is free forever for up to two users.  Beyond this FogBugz is $25 per user per month.  Naturally, for larger numbers of users you get a quantity discount.

FogBugz is also available as licensed software that you install on your own Windows server.

Fog Creek charges only for normal FogBugz users, the developers and managers at your company for which you would expect to be charged.  There is no charge for other user types:

  • Community users, who are generally your customers.  According to permissions you set, they can log in and check bug status, read and edit wikis, and participate in forum discussions.
  • Virtual users, which are most often a hierarchical group of users
  • Administrator user.  With each FogBugz you get one free administrator user.

I found this pricing structure to be completely rational and considerate of the customer.  A nice example is the free Administrator user.  At least one account must be the administrator, yet the administrator account is only occasionally used.  Fog Creek doesn’t want to give an ordinary user an incentive to be constantly logged in as administrator in an attempt to save money.  So they give you a free account for the administrator.

Documentation

FogBugz is supported by good documentation. There is Stackoverflow-based FogBugz documentation in question and answer format, and FogBugz Online Help that is written like an ordinary reference manual.

The one complaint I have about the documentation is that the Stackoverflow-based documentation is prominent yet incomplete.  Meanwhile the Online Help is hidden away where I could only find it using Google.  I like the completeness of the Online Help reference manual.  However, the Online help is for FogBugz 7.0, while the current version is FogBugz 8.5.

Bug Tracking and Scheduling

The central function of FogBugz is of course tracking bugs and features, and extracting information about the them.  The bug tracker is beautifully laid out and easy to use.

Cases

The basic unit of data in FogBugz is the case.  Bugs and enhancement requests from users are of course cases.  Further, all tasks assigned to team members are also added as cases.

As work for the requested feature is planned, it is broken down into a hierarchy of sub-cases.  Each case has an estimated completion time.  Ideally the estimated completion time for each sub-case should be from 1 to 16 hours.  Cases with a completion time longer than 16 hours should be decomposed into sub-cases.

If the schedule estimation features of FogBugz are to be accurate, everything that the team is working on should be represented in FogBugz by a case.

Projects

This object is pretty much self explanatory.  You create a project for each product, web site, chip, software package or whatever your team is creating.  You do not create a project for individual revisions of your product.  These are milestones.

No Subsystems

There is no support in FogBugz for subsystems that are shared by multiple projects.  In software this might be a GUI that is shared by multiple software products.  In integrated circuit design it is IP (intellectual property), like a USB interface that is used in multiple chips.

Milestones

After I finally unearthed the documentation for milestones, I found that they are something for which you want to know the completion date.  The most common application is project revisions.  Within a project, you establish a milestone for each version of your project.  Then you assign cases to the milestones.

For example, in a software project you might create milestones for each release you are planning: alpha, beta, 1.0, 1.1, 2.0 and so on.  You decide which of the requested features to implement and which bugs to fix in each release by assigning cases to the milestones.

Of course there will always be cases that you have not decided whether to complete.  These are assigned to the default Undecided milestone.

Schedule Estimation

After the project manager assigns cases to the milestones, the schedule for completion of the milestone can be displayed.  FogBugz uses its own proprietary Evidence-Based Scheduling (EBS) to produce a probability distribution curve based on the estimated completion time of the cases assigned to the milestone and your team members’ individual history of estimation.

FogBugz probability distribution curve

FogBugz probability distribution curve (from Fog Creek web site)

I can’t wait to try this for real.  I’m so tired of making up schedules by simply guessing what management wants me to say.  Fog Creek claims that using proper techniques, software development teams can regularly deliver within 5% to 10% of schedule.

Another refreshing feature of FogBugz schedule estimation is the lack of Gantt charts.  They might be useful on a Model T assembly line, but for software development, I’m not impressed.

Workflow Customization

FogBugz comes with the default workflow that is used by Fog Creek itself.  The workflow for each project can be customized using workflow templates.  For example, you might have different workflows for your chip designs, internal CAD software, and vendor CAD tools.

For basic workflow customization, Fog Creek provides a custom workflow plugin that allows you to change common things like to whom cases are assigned upon status change.

For more exotic workflows, FogBugz has a plugin interface that allows you to write your own custom workflow.  This is based on Microsoft .NET, and Fog Creek recommends C# as the plugin development language.  I was impressed with C# and .NET when I developed the C# language binding for OpenAccess.  It is possible to develop FogBugz plugins in other .NET languages like IronPython, but Python is not a particularly good fit with FogBugz.

Customer Relationship Management

FogBugz is not just bug tracking.  It has a nice set of integrated Customer Relationship Management (CRM) features to help you support users.  None of the CRM features in FogBugz were new to me, but in FogBugz they are integrated into a clean, consistent customer-facing web site that is ready for action right now.

Access Permissions

FogBugz allows you to control which projects, wikis and discussion groups a user, type of user, or group of users can access.  Where it makes sense, you can allow anonymous access for everyone on the internet.

I did no security testing.  If you are concerned about security, running the licensed version of FogBugz behind your firewall would be safer.

Customer Email

FogBugz accepts email from customers and automatically generates a case for each.  Fogbugz contains a full email client that supports snippets, canned responses to common situations.  When you respond to the email from inside FogBugz, the case is automatically closed.

At various companies I have spent a lot of time fighting my way through firewalls, trying to access the bug tracker.  Reporting an issue by simply sending an email to the bug tracker sounds much more appealing.

Wikis

Depending on the permissions you assign, wikis function as web pages for your customer support site, plus internal and external documentation.  Read and write access for a wiki can be assigned by user type, user group, or individual user.

Rather than the usual wikitext used in most wikis, FogBugz provides a WYSIWYG HTML editor.  You can also directly edit the HTML source.  Thus it’s similarto blogging software like WordPress (which I use for this web site) than a classical wiki such as MediaWiki.  I have seen engineers hesitate to add content to their company wiki because wikitext is arduous to use.  If an engineer feels like writing documentation, you don’t want anything spoiling the mood.  Straight HTML was a good choice for FogBugz.

Copy and paste is boring feature, except when you’re porting documentation to your new wiki.  As a test, I copied pages from my web site and pasted them into my FogBugz wiki.  All the HTML markup and all the links were reproduced perfectly.  When I ported the OpenAccess C# language binding documentation to MediaWiki, much more work was involved.

I set up a test page to see whether my public wiki is crawled by search engine spiders.  It’s still too early to tell.  You can search it yourself to see the current results. Hopefully it will show up now that this article links to it.

Automatic Error Reporting

BugzScout is another interesting feature.  It accepts error reports from your software over the internet and automatically creates a case.  We’ve all seen this feature in big time software like Windows, but BugzScout is all set up, on line, and ready to accept reports from your application or web site.  Numerous examples of how to send messages from your application to BugzScout are provided.

Source Code Version Control

FogBugz integrates with your favorite source code version control system or Fog Creek’s own Mercurial-based Kiln version control software.

Problems

No software is perfect, and I did find some problems:

  • As mentioned above, there are no subsystems, projects that are incorporated into multiple larger projects
  • There was not much I could do to change the branding from Fog Creek to Voom.  I could add my logo, and that’s about it.
  • When I try to forward from cases.voom.net to my FogBugz site at voom.fogbugz.com, I get the error, This Connection is Untrusted.  (see for yourself by going to cases.voom.net).  While this error is entirely appropriate, I’m unsure how to add security certificates to voom.net and voom.fogbugz.com to make this forwarding go smoothly.  If I accept the security exception and continue, I end up somewhere on fogbugz.com that does not appear to be voom.fogbugz.com.
  • I had a crash while editing my wiki
  • There is no support for a software download page.  I guess I could rig up something with a wiki.
  • You must run the licensed version on a Windows server.  This has no practical impact on users, who can run on whatever platform they choose.

Conclusion and Further Work

I’m sold.  FogBugz is the bug tracking and CRM system for Voom, Inc.  That old instance of Bugzilla I have been using is out of here.

Next I want to:

  • Bring up a large installation of FogBugz to see how accurtely EBS estimates schedules
  • Try my hand at writing a FogBugz plugin
  • Integrate electronic design version control tools like those from Cliosoft, ICManage and Methodics. They are largely built on top of Perforce, which FogBugz supports, but it remains to be seen what more is needed.

{ 3 comments… read them below or add one }

Colin Marquardt July 11, 2011 at 03:13

Were you actively looking for a replacement for Bugzilla, or just came across FogBugz by chance? Did you also take a look at Redmine (http://www.redmine.org/) for example?

What I want to say is that you mentioning Bugzilla while writing about an all-in-one package sounds like you didn’t have a Requirement Spec before :)

John McGehee July 12, 2011 at 16:45

Thank you for the perceptive comment.

I studied FogBugz for an upcoming consulting engagement where FogBugz has already been evaluated and selected. It was after studying FogBugz that I decided to abandon Bugzilla in favor of the wider feature set of FogBugz.

jackzeil December 8, 2011 at 16:47

Fogbugz is cool. I used it at my last company, my current employer wasn’t willing to fork out $25 a person per month (we have 150+ people on staff).

Used mantis (http://www.mantisbt.org) a bit. It is free and ok.

We are currently using theKillingJar (http://www.thekillingjar.com). I really like the UI but it doesn’t have all the features of fogbugz.

Leave a Comment

Previous post:

Next post: