FogBugz
Encyclopedia
FogBugz is an integrated web-based
project management
system featuring bug
/issue tracking, discussion forums, wikis, customer relationship management
, and Evidence Based Scheduling developed by Fog Creek Software
.
The feature tracker allows users to manage, filter, sort and navigate a tree-structure of tasks, that contain information, tags and attached files related to a particular issue. Discussion forums and wikis may be created around any topic and posts/pages may be added into the same. Users may integrate their email accounts into the system to send/receive email and create issues regarding the same.
Prediction of future tasks and completion estimation of future milestones are based upon past records of user performance. Users must manually input an estimated duration for every task, and state the task they are currently working on which builds a daily work log (timesheet) that may be reviewed later.
Time management
Overall management
It is offered in two versions, an online hosted version entitled "FogBugz On Demand", and a self managed version that may be installed on client servers. With the self managed version, full access to the FogBugz database is possible by system administrators increasing automation possibility.
The FogBugz API
allows developers to integrate FogBugz into their applications. It allows applications to access and modify FogBugz data. It is implemented as XML
responses to HTTP requests.
. This approach is similar to that used in Agile software development
where it is referred to as velocity
.
In standard project management, non-project activities such as holidays, sick days, project support and breaks are expected to be excluded from schedules and recorded time usage so that only the time actually spent on a project is recorded.
In practice non-project time can be difficult to cleanly separate out. As one example, Spolsky gives "boss's painful fishing stories" as time usage that is unlikely to be identified separately on the schedule.
To avoid these complexity issues, Evidence-based Scheduling measures and estimates only the actual total time taken to complete a particular task. EBS then uses the Monte Carlo method
to adjust predicted completion dates based on the accuracy of each worker's prior estimates.
Instead of a single completion date, this method produces a table of possible completion dates, each with an associated probability of being correct. This gives management a more accurate picture of how reliable the estimates are.
while the company was focused on consulting. It was first released in November, 2000.
In 2003, FogBugz was originally written in classic Active Server Pages
and VBScript
. In order to run on both Microsoft Windows
and Linux
, Fog Creek developed an ASP to PHP
compiler called Thistle.
As the requirements for FogBugz grew, it became clear that VBScript did not have the features desired to continue development. Instead of switching technologies, Fog Creek decided to start extending VBScript with modern programming language
features such as First-class function
s, automatic programming
, and object-relational mapping
. The result was an entirely new programming language, with a compiler written in C#, that compiled to .NET or PHP, depending on what the client requires.
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...
project management
Project management
Project management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...
system featuring bug
Bug tracking system
A bug tracking system is a software application that is designed to help quality assurance and programmers keep track of reported software bugs in their work. It may be regarded as a type of issue tracking system....
/issue tracking, discussion forums, wikis, customer relationship management
Customer relationship management
Customer relationship management is a widely implemented strategy for managing a company’s interactions with customers, clients and sales prospects. It involves using technology to organize, automate, and synchronize business processes—principally sales activities, but also those for marketing,...
, and Evidence Based Scheduling developed by Fog Creek Software
Fog Creek Software
Fog Creek Software is a software company specializing in project management tools. Its main products are FogBugz, a web-based project management tool, Fog Creek Copilot, a remote assistance tool, CityDesk, a desktop-based content management system, Kiln, a source control and code review tool built...
.
The feature tracker allows users to manage, filter, sort and navigate a tree-structure of tasks, that contain information, tags and attached files related to a particular issue. Discussion forums and wikis may be created around any topic and posts/pages may be added into the same. Users may integrate their email accounts into the system to send/receive email and create issues regarding the same.
Prediction of future tasks and completion estimation of future milestones are based upon past records of user performance. Users must manually input an estimated duration for every task, and state the task they are currently working on which builds a daily work log (timesheet) that may be reviewed later.
Features
Project management- Manage multiple projects, with areas within each and milestones within each
- Tree-structure outline of tasks, issues, bugs, features or customer inquiries
- Full history maintained per task, including edits, user assignments and updates
- Integrated file upload system to attach any file to tasks, optional screenshot tool
- Local search to filter list of tasks based upon keywords in title, description, etc
Time management
- Manually entered estimates per task, along with manually set start/end times
- Timesheet and user history based upon work done on tasks, per day
- Scheduling with milestones, to predict completion of tasks assigned
- Evidence-Based Scheduling to accurately predict completion dates and milestone probability
- Visually represented timelines per user, displaying milestone at past/present/future dates
- All predictions are displayed in ranges, depending on the accuracy of the user's estimates
Overall management
- Display line, bar, column or pie charts for any filtered view of the task tree-structure
- View charts based upon present data, or past historical records of tasks
- Tabular reports of tasks, users, projects and their parameters or records
- Drill down to view hierarchical information within a section of a chart
Deployment
Pricing is based on user licenses, where each logged-in user must have one license. Each user in the application can filter tasks assigned to him/her and may create new, update existing, or resolve/close tasks with his/her name.It is offered in two versions, an online hosted version entitled "FogBugz On Demand", and a self managed version that may be installed on client servers. With the self managed version, full access to the FogBugz database is possible by system administrators increasing automation possibility.
The FogBugz API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
allows developers to integrate FogBugz into their applications. It allows applications to access and modify FogBugz data. It is implemented as XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
responses to HTTP requests.
Prediction
Evidence-based Scheduling is a software estimation approach created by Joel SpolskyJoel Spolsky
Avram Joel Spolsky is a software engineer and writer. He is the author of Joel on Software, a blog on software development. He was a Program Manager on the Microsoft Excel team between 1991 and 1994. He later founded Fog Creek Software in 2000 and launched the Joel on Software blog...
. This approach is similar to that used in Agile software development
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
where it is referred to as velocity
Velocity (software development)
Velocity is a measure of productivity sometimes used in Agile software development. Velocity tracking is the act of measuring said velocity. The velocity is calculated by counting the number of units of work completed in a certain interval, determined at the start of the project.-Principle:The main...
.
In standard project management, non-project activities such as holidays, sick days, project support and breaks are expected to be excluded from schedules and recorded time usage so that only the time actually spent on a project is recorded.
In practice non-project time can be difficult to cleanly separate out. As one example, Spolsky gives "boss's painful fishing stories" as time usage that is unlikely to be identified separately on the schedule.
To avoid these complexity issues, Evidence-based Scheduling measures and estimates only the actual total time taken to complete a particular task. EBS then uses the Monte Carlo method
Monte Carlo method
Monte Carlo methods are a class of computational algorithms that rely on repeated random sampling to compute their results. Monte Carlo methods are often used in computer simulations of physical and mathematical systems...
to adjust predicted completion dates based on the accuracy of each worker's prior estimates.
Instead of a single completion date, this method produces a table of possible completion dates, each with an associated probability of being correct. This gives management a more accurate picture of how reliable the estimates are.
History
FogBugz originally started as an internal bug tracking tool for Fog Creek SoftwareFog Creek Software
Fog Creek Software is a software company specializing in project management tools. Its main products are FogBugz, a web-based project management tool, Fog Creek Copilot, a remote assistance tool, CityDesk, a desktop-based content management system, Kiln, a source control and code review tool built...
while the company was focused on consulting. It was first released in November, 2000.
In 2003, FogBugz was originally written in classic Active Server Pages
Active Server Pages
Active Server Pages , also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically-generated Web pages. Initially released as an add-on to Internet Information Services via the Windows NT 4.0 Option Pack Active Server Pages (ASP), also known as Classic...
and VBScript
VBScript
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments...
. In order to run on both Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, Fog Creek developed an ASP to PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
compiler called Thistle.
As the requirements for FogBugz grew, it became clear that VBScript did not have the features desired to continue development. Instead of switching technologies, Fog Creek decided to start extending VBScript with modern programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
features such as First-class function
First-class function
In computer science, a programming language is said to have first-class functions if it treats functions as first-class objects. Specifically, this means that the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning...
s, automatic programming
Automatic programming
In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level....
, and object-relational mapping
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...
. The result was an entirely new programming language, with a compiler written in C#, that compiled to .NET or PHP, depending on what the client requires.
Version History
- Version 1.0 - November, 2000
- Version 2.0 - March, 2001
- Version 3.0 - November, 2002
- Version 3.1 - February, 2003
- Version 4.0 - December, 2004
- Version 5.0 - March, 2006
- Version 6.0 - August, 2007
- Version 7.0 - July, 2009
- Version 8.0 - September, 2010
See also
- Project management softwareProject management softwareProject management software is a term covering many types of software, including estimation and planning, scheduling, cost control and budget management, resource allocation, collaboration software, communication, quality management and documentation or administration systems, which are used to...
- List of project management software
- Project managementProject managementProject management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...
- Web 2.0Web 2.0The term Web 2.0 is associated with web applications that facilitate participatory information sharing, interoperability, user-centered design, and collaboration on the World Wide Web...