Blog > Joel Spolsky Eats Dog Food

September 20, 2007
Jay Goldman

Way back in the dinosaur days, I used to work for IBM trying to make DB2 a more usable product (which is a little bit like saying that I was on the tiny little team responsible for making sure that the faucets on the sinks in the bathrooms in a Boeing 747 had good hand feel). Despite our valiant efforts, almost every user of DB2 completely ignored the beautiful Graphical User Interface that we painstakingly built and relied instead on the super-fast and highly efficient Command Line User Interface, into which they typed gobbledy-gook like:

quiesce tablespaces for table dogfood
and magic ensued. We were never entirely sure how to convince them to abandon their command lines and flock to our world, and so I spent a lot of time scratching my head and drawing things on white boards and buying users dinner in an attempt to find the secret sauce. I left IBM well before the mystery was cracked (if it ever was), but the wisdom of the many moons which have passed has granted me some insight I wish I'd had back then. After today's talk by Joel Spolsky, I can safely say that it's insight Joel shares.

They key is that you have to eat your own dog food. We talked the talk a lot but we weren't really Database Administrators (DBAs) so much as we were a bunch of Human Factors Specialii trying to penetrate the remarkably High Priest like mentality of the people who manage the incomprehensibly large databases that run our lives. When I needed to try something in DB2, I started it up on my laptop and did something in the GUI and then puzzled about why our users wouldn't just do the same, but I also didn't do that task a hundred times a day every day or else I would have written a handy CLUI macro I could invoke in two keystrokes. Joel and the good folks at Fog Creek Software get that, which is why FogBUGZ is such a fantastic piece of software. Those of you who read Joel on Software regularly will know that Joel has some pretty sharply defined viewpoints on how to manage teams of developers and keep software projects on track, gained largely through his many years of experience in the industry on big and small teams. His insights and opinions are baked right into the product, which means using it is like having Joel perched on your shoulder, guiding you and your team at every turn. I paid close attention during his demo, looking for all of the places where I could see his advice manifested in FogBUGZ, including:
  • Building software is a three phase process (the Art of design, the Engineering of the actual product, and the Science of debugging — see Seattle). This manifests in the way FogBUGZ breaks down into separate components (Wiki for specs and other documents created during the design, Project Management and Evidence-Based Scheduling (EBS) for managing the development, and bug tracking and email/discussions for handling the debugging).
  • Joel has spoken at length about how to pick a release date for your project which is reasonable and which you stand a good chance of hitting (see Picking a Ship Date and Painless Software Schedules among many others).  This used to seem a bit like black magic, particularly if you were trying to pick a date that you had some faith in rather than just, say, throwing darts at a board. The new Evidence-Based Scheduling features in FogBUGZ 6.0 are pretty remarkable in that they provide a very realistic view of your probability of meeting your ship date as your project progresses, based on the ability of your team members to accurately estimate the time required to complete their tasks. Joel explained how the calculations work (Monte Carlo Simulations!) and it's all quite clever, but the important thing is that it lets you look at a graph that says our probability of shipping on January 3rd is 8% while our probability of shipping on April 20th is 98%.
  • He told a story about how they've been using FogBUGZ internally for many years, but even up to v5 he noticed that he would come in every morning and open a little Notepad window to track the two or three things he needed to do rather than actually open cases. So they ate their dog food for v6 and created a method to open new cases which is as easy as typing lines into Notepad, and now he stores everything in FogBUGZ properly.
  • FogBUGZ doesn't support the idea of pooling people into a single resource for handling a task, largely because they feel that you should have a single person responsible for every task. Likewise, you can link cases together but there isn't a concept of dependencies like there is in Microsoft Project, because they believe that they don't actually occur that often in software (which led to a funny story about how the Project team at Microsoft doesn't use Project to manage building Project because when they tried, it produced a Gantt chart 9,000 pages wide).
We've been using a combination of Project, Mantis, and an internal time tracking application to manage our process, so we were very interested in whether FogBUGZ could replace our current mishmash of apps with a single tool. We'd need seven seats now so would likely go with a ten pack ($999 until November 1st), plus a service agreement for the same ($182.50 per year), so it's a non-trivial decision to make the switch. It looked like it was frustratingly close to what we need but missing the ability to analyze estimates and probabilities across projects (i.e.: the EBS features are based on a single project rather than looking at tasks assigned to each employee in every project). You do have the ability to define what percentage of time each team member spends on FogBUGZ tasks but it's for all projects, rather than being able to define a percentage of time spent on each project. All the same, I think we might give the 45 day free trial of FogBUGZ On Demand a try. I'll report back on what we love or hate and whether we make the decision to switch. Stay tuned!
Posted by Jay Goldman on Thursday, September 20, 2007 at 07:41 PM in Tech Geekery, Taking Care of Business with tags , , , , , Permalink5 comments

Comments

John Hofmann says:

I'm interested as to whether you tried out Fogbugz.  We've been using it for a few years now and it's been helpful, but I'm interested in how other interactive agencies are using it.  We also use Project and an internal timetracking application, but we've been leaning pretty heavily on Fogbugz since about version 3.

I was at Joel's talk in New York City, and it was impressive.  We adopted Fogbugz 6 that first weekend.
Posted by John Hofmann on Tuesday October 9, 2007 at 10:02 AM
Comment by a Radiant Core Team Member Jay Goldman says:
John —

We haven't actually tried it out, although it does look very promising. We're currently using a mixture of Project (which we hate), Mantis (an open source, PHP-based, issue tracker), and a homemade time tracking system. Sounds like a similar setup to yours basically.

We're looking for one tool which will replace all three of them but haven't had a whole lot of luck. FogBUGZ looked like it was going to almost be that solution, but the problem is that we need to be able to look at schedules and the like across projects, not just within one project (i.e.: the evidence-based scheduling would be fantastic if it also took into account the other projects a person was working on, but almost useless to us if it doesn't). Have you guys run into that issue?
Posted by Jay Goldman on Tuesday October 9, 2007 at 10:41 AM
John Hofmann says:

Yeah, we've run into that issue.  Over the past year we've seen a lot of growth in terms of business and staff, and managing everything is starting to become our biggest problem.  We've opted to go with a combination of technological solutions and people processes.  The technology we use for management isn't that far off from what you use, except switch Mantis with Fogbugz.  Also, my feeling is the same as yours about Project.  If our projects had a lifecycle measured in years, then I could see it being more useful but when you can break a project down into discrete steps measured in hours, we've found that Project starts to fall apart.

Our people processes revolve around 2 weekly meetings where we take into account resources' schedules across projects.  In one of them, we basically plan out, in detail, the next week.  This is a meeting among all senior managers (we have 5 senior managers and a total company size of around 30).  Then we have another, smaller meeting between the director of technology (me) and the director of production.  Handling cross-project resource allocation through people process rather than technical process has been working pretty well for us, as we have strong senior managers.

Since we've been using Fogbugz for a while and we've made a commitment to sticking with this software, we were able to basically get all the new features "for free".  The wiki is fantastic, and I'm hoping to replace our web timesheet application (that everyone hates) with Fogbugz's time tracker (that everyone will probably only merely dislike).  As you have all of your historical data in Mantis, switching to Fogbugz is a much bigger decision for you.
Posted by John Hofmann on Thursday October 11, 2007 at 8:43 AM
John,

We've found that a fundamental problem with issue trackers is that they assume a static priority and that project management tools assume a static schedule which you must update. We're working on a time management product internally that provides a schedule updated in real-time based on task priority and a daily employee resource target. Tasks are placed in priority sequence and the system estimates the delivery date based on the task estimate, time spent on the task and the employee's daily target. This schedule is always updated and alerts employees and managers if tasks are overdue or are projected to be overdue allowing us to react appropriately.
Posted by Michael Glenn on Thursday October 11, 2007 at 10:05 AM
John Hofmann says:

It sounds like you guys have an interesting idea for a product.  I'd like to hear a bit more about it if you have the time.  Specifically, I'd be interested to hear how you think that the product would help eliminate a lot of the copying-and-pasting from one application to another since it sounds like part of problem that you were originally hoping that Fogbugz would solve. 




Posted by John Hofmann on Friday October 12, 2007 at 9:25 AM

Post a New Comment

Please note that comments are moderated to prevent abuse of the comment system and will only appear after they have been approved by the author of this post. Use the "View Source" mode to edit HTML directly if you're into that kind of thing. We might not approve posts that are offensive or really off-topic, and we will definitely delete spam (and place nasty, nasty curses on the spammers).

Name:
Email Address:
Website:
Comment: