Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

No Black Magic


Special Guide: PM Tools & Trends: No Black Magic

Software Development

Special Guide: PM Tools & Trends
href="http://twimgs.com/ddj/sdmagazine/images/sdm0409h/sdm0409g_pmtools_2.pdf">Click here to view our Special Guide to PM Tools & Trends (PDF 25K).

So, how long will it take to write the defect tracking system? Mike Bossman asks. Surreptitiously, I wet my index finger. Looking at my Spiderman Decoder Ring, I time how long it takes the finger to dry (5.38 seconds) and multiply that by a constant I pulled out of a book on hermetics that I'd read in the Vatican Library a few years ago. Brightly, I announce, "Umm, a little more than 17 weeks. Around the table, eyes roll, as we all know that's the number he wanted to hear. We also know that the number is five weeks or so short of the actual amount of time it will take—assuming everything goes perfectly.

Because such inane methods of project estimation are practiced in countless programming groups, here, I'll explore five software tools that can bring professionalism to the process.

SLIM Suite for Windows 6.0

QSM's SLIM Suite is a comprehensive package, but here I'll focus on the suite's SLIM-Estimate tool.

SLIM-Estimate's star feature is a dashboard that displays current dollar cost, estimated completion date, peak staffing and quality level in both numerical and graphical forms; all you have to do is use the wizards to input the required data. This "what-if dashboard lets you manipulate variables by dragging pointers to watch the program calculate the impact on the other variables in real time; for example, you can see the completion date on the graph edge closer to your desired target as you drag the peak staffing pointer to larger numbers. The quality level, expressed in mean time to the next discovered defect (after delivery) or total number of delivered bugs, can similarly be adjusted up or down to examine the impact on costs, staffing or schedule, or in response to predetermined data about customer bug-count tolerance.

If you fail to arrive at a satisfactory result, you can ask SLIM-Estimate to compute a solution for you. After sorting a few hundred combinations of use case count versus staffing versus completion date, it will come up with options, complete with numbers and graphs. Just as impressive is its ability to do the same thing for an in-progress project not originally estimated by SLIM-Estimate: forecasting, based on progress to date, to determine whether any of the original objectives will in fact be met and by what amount of time and other resources they might be exceeded.

SLIM-Estimate suffers from a relatively unattractive and cluttered GUI, compared to the other products I reviewed. Particularly irritating is its inconsistent usage of acronyms: Sometimes they're spelled out, sometimes not; sometimes capitalized, sometimes not. The user manuals were similarly remiss, and rarely explained any acronym upon its first appearance.

V1:XP 1.4

While this Jolt Award winner claims not to be for use cases, its notion of "story as employed in agile programming parlance makes VersionOne's V1:XP 1.4 practical for estimation on many use case--based projects; its task subunit also maps reasonably well to the concept of actor transaction within a use case. This product's greatest appeal is its GUI's simplicity. With its whiteboard-inspired design, V1:XP makes short work of project estimation.

Each release of a project is shown with its iterations and product features (stories), along with total work units needed for that release; simply drag and drop stories into the various iterations to balance the load. Although V1:XP lacks the sophisticated forecasting of some of the other products reviewed here, such elements as the "burn down graph that shows the rate at which the programmers are completing customer stories helps to highlight trouble spots. All estimation input and reporting is done via a browser, which makes it easy for team members and management to keep track of progress without requiring export to PowerPoint or Word.

This product's approach appears simplistic, but it works—particularly for small to medium-sized projects in which the short iteration cycle provides quick feedback about estimating accuracy. Variances in team members' estimates tend to balance each other out, and the visual presentation is compact enough to spot schedule slippage problems early on. Cost estimate logic isn't supported.

Tassc:Estimator 2003

Tassc:Estimator loads up a small, simple-looking floating toolbar with Architecture, Team, Risk, Bugs, Metrics, Studio, Estimator and Process icons. Pressing each icon brings up a floating child window that helps you define or review the characteristics for that particular function in a self-contained manner.

The Team functionality lets you specify team member skill set, salary and availability characteristics; Risk lets you specify individual events that might incur costs; and Metrics lets you adjust the weightings used for calculating the estimates. You input parameters for non-software engineering costs like branding, multimedia content or training in Studio; Process lets you detail the peculiarities of your development lifecycle; and Estimator offers a review of costs and schedule updated in real time. Tassc:Estimator follows a logical sequence throughout the project planning process. Its floating child windows are easy to navigate, letting you fill in various pieces of project detail as you think about them, though the process isn't as easy as V1:XP's drag-and-drop method. As an interesting little add-on, the program keeps a log of all session activities to help you assess where you are in the overall planning process.

A particularly time-saving feature is the ability to use, as a starting point for project input, an existing model already developed in UML. The graphic display isn't as elaborate as SLIM-Estimate's, nor does Tassc:Estimator have that product's ability to calculate trade-offs of schedule versus staffing versus costs. The graphs are adequate to spot trends and risk issues, and to choose optimal staff loading for varying degrees of team members' skills and communication abilities.

Estimate Easy UC

Duvessa Software's Estimate Easy employs the concept of use case points in combination with an estimating model called COCOMO II. A use case point unit is a use case plus actor plus the number of screens plus number of reports and number of third-generation language modules. Although the estimating unit is new to the field, studies have shown it to be more accurate than unaided developer ad hoc estimates.

In keeping with the estimating model's simplicity, the UI is relatively uncluttered. Estimate Easy's low price and its ability to import from popular modeling tools adds some appeal, despite its limitations compared to the other products reviewed here. Although it doesn't come with all the tuning factors seen in some of the other products, its GUI design lets users add factors with relative ease. Once adjusted for your project, these factors can also be saved as templates for future use—a nice feature for a product at this price. Like the other products, adjustments made to the tuning factors or the number of actors or use cases are immediately reflected in the overall project hours. Estimate Easy UC does no costing.

Enterprise Architect

Sparx Systems' Enterprise Architect is a UML modeling tool of considerable sophistication and scope that compares favorably with offerings from Rational Software and others. It also happens to have a built-in minimalist estimating facility. The estimating model is nominally use case point--oriented, with one screen to set metrics values and another screen to display total project hours.

The reduced estimating functionality provides the least amount of what-if analysis of all the products reviewed here. You can change complexity factors, exclude or include the effect of actors, or form your estimate on the basis of only a selected group of use cases. This feature's inclusion in a modeling tool makes it handy for the team to get an early appraisal of a project's rough size. But limited display capabilities and reduced real-time analysis make it the wrong choice for negotiating with senior management about resources versus costs.

What's Missing?

For those who have never used a formal estimating tool, the single most important missing ingredient in all these packages when you open the box is the calibration factors or weights for your company's particular projects. For my wet finger and Spiderman Decoder Ring, I took my weights from the Vatican Library, but that resource isn't likely to offer your team anything of value. Many of the products reviewed come with a database of solid typical industry statistics in the box which you can use instead. However, in the long run, you can create the best estimates for your team by analyzing your company's historical productivity data and building your own set of calibration numbers, using SLIM-Estimate's history-tuning feature, or VersionOne's rolling factors approach (or an adjunct task to one of the other tools.)

In short, the tools reviewed here can make your job easier, but nothing can substitute for collecting your organization's project data over time. A few choice metrics—nothing fancy—can make the difference between perennially relying on magic numbers and defining real-world estimates.

Hidden Costs

Don't forget to include the jet fuel and gin in your budget.

In a personal communication for this article, Capers Jones, the dean of software metrics, mentioned a large international project in the 1970s in which the costs of paperwork and international airline travel for meetings each exceeded the costs of producing the project's code. He speculated, only half jokingly, that it was likely that the liquor bill for after-hours problem resolution also exceeded the costs of code production. Jones' story serves as a reminder to add any of these extracurricular activities to the estimating package's task list by using a proxy use case or other device to capture the load.

—RR


Roland Racko currently concentrates on making users comfortable with new software systems—particularly in the area of direct-to-machine speech control. Reach him at [email protected]


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.