Cheriton School of Computer Science, University of Waterloo
Waterloo, Ontario, Canada
In software engineering, we are told that a software requirements specification should specify what the desired software should do, not how the software should do it. This is often summarized as “What, not how.” This paper explores the validity of the advice to specify “What, not how” for requirements, including quality requirements. In the domain of the New York bagel, it may be necessary to explain how in order to make the what precise enough.
In general, there are two ways to specify any system, software or otherwise:
1. a “what” specification describing what the system does, or
2. a “how” specification describing how the system does what it does.
A system may also be described by tests that are satisfied by the desired system.
A “what” specification and a test share the property that each leaves the question of how to implement the system up to the implementer. The freedom accorded to the implementer allows him or her to find the best technology to achieve the desired “what” or testing success.
Note that there can be no test specification for any but the most trivial systems, because no finite set of test cases can thoroughly test a non-trivial system for compliance to its requirements. Edsger Dijkstra once said, “Program testing can be used to show the presence of bugs, but never to show their absence!”1
While the “what, not how” mantra seems clear enough, in practice it may be very difficult to separate the hows from the whats. Indeed, for some requirements, it may be impossible to specify “what” without saying something about “how.” There are also requirements, usually called quality requirements, for which the “what” specification is simply not very useful, e.g., “The output shall look good,” “The user interface shall be easy to use,” or “The response time shall be fast.” In some of these cases, the only way to make the requirement precise enough to be tested is to say something about how it will be met.
A prime example of a product requiring a detailed “how” specification is none other than the New York bagel, examples of which are shown in figure 1.2
Figure 1 (Image credit: Flickr user Ezra Wolfe)
New York Bagels
How many readers have ever really had one? A New York bagel, such as what you get at Zabar’s, H&H, or Rise & Shine, is not just a baked good with a hole in it, despite the widespread proliferation of places that make a bread with a hole and call it a bagel in order to profit from the current bagelmania.3 A donut is another baked good with a hole in it, and we all know that a bagel and donut have little in common except the hole; indeed, a bagel and a donut have literally nothing in common.4
“What” Specification of a Bagel
A “what” specification of any object consists of a textual description of the object, often accompanied by diagrams. If, unlike software, the object has physical dimensions, the diagrams may include what are commonly called blueprints.
A bagel is a baked good in the approximate shape of a symmetric, regular torus. The torus has approximately a 4 inch (? 10 cm) outer diameter, a 1 inch (? 2.5 cm) inner diameter, and a 1.5 inch (? 3.8 cm) ring diameter. The interior of the bagel has air holes. Most of the outside surface of the bagel is a golden brown crust that is approximately .0625 inch (? 1.6 mm) thick. The part of the outside surface that comes in contact with the baking surface is dark brown and pockmarked.
Figure 2 shows a blueprint5 formed out of 5 photographs of various views of genuine New York bagels. Considering a bagel as it lies flat on a plate viewed from above the plate, the plan view is in the upper left-hand corner of the blueprint, and the elevation view is in the upper right-hand corner of the blueprint. The Line A-A in the plan view defines Section A-A shown in the lower left-hand corner of the blueprint, and the Line B-B in the elevation view defines Section B-B shown in the lower right-hand corner of the blueprint. The middle left-hand side of the blueprint shows Detail 1A-A, a blowup of the part of Section A-A that is delimited by a dashed-line rectangle in the section’s left-hand side.
A donut satisfies the physical dimensions given in the blueprint, but a donut is not a bagel. To distinguish a New York bagel from any other baked good with a hole, Detail 1A-A of the blueprint, shown in Figure 3, has specifications of the elasticity of the surface and the moisture content of the interior. The surface should withstand 45 pounds per square inch (?3.17 kg per square cm), and the interior should have 20 to 25 percent moisture content. The surface elasticity and inner moisture content specifications together specify the chewiness of a New York bagel. A donut does not satisfy this chewiness specification. A piece of ordinary bread shaped into a ring of the right size also does not satisfy this chewiness specification.
Is this chewiness an essential, functional requirement of a New York bagel? Some think so, because without the chewiness, the baked good with a hole in it is not a New York bagel. It is a bread with a hole, a donut, or perhaps another kind of bagel entirely, such as the Montréal bagel.
Figure 3. Detail 1A-A from blueprint in Figure 2.
“How” Specification of a Bagel
A “how” specification of a bagel is a recipe for making bagels:
1. Use high-gluten flour dough that has risen.
2. Make a ring with outer diameter 4 inches (? 10 cm) and inner diameter 1 inch (? 2.5 cm) and with a cross section of 1.5 inches (? 3.8 cm) in diameter.
3. Put the ring into boiling water for 30 seconds.6
4. Bake the ring on a corn-meal covered surface in a 400°F (? 200°C) oven until golden brown, usually for about 10 minutes.
The step that is left out or changed by the making of most poor imitations of New York bagels and of other kinds of bagels is Step 3.
This “how” specification, a recipe, is clearly an algorithm.7
Testing Properties of a Bagel
A test gives one way to determine whether a candidate system has the tested property. A standard test for New York bagelhood is that a proper genuine New York bagel can be used by a baby for teething for at least 10 minutes without disintegrating into a ball of mush.8 A donut clearly fails this test. In fact, all baked goods with holes that fail to meet the surface yield and interior moisture content specification fail this test. All the so-called bagels, including the steamed ones, described below, made without boiling fail this test.
Another test is that chewing a genuine New York bagel burns almost as many calories as are ingested by eating the bagel, particularly if the bagel is taken from someone else’s plate.9
Figure 4: The Bagel Biter
Still another test is that only a genuine New York bagel stands up to and does not get squished by the Bagel Biter™ bagel cutting guillotine depicted in Figure 4. A steamed bagel gets crushed into a wad before the blade begins to cut.
Still another test is that if you bite down on a sandwich made with a genuine New York bagel, the filling squishes out. With a steamed bagel, the sandwich filling does not squish out; thus, a steamed bagel makes a great bun.
As mentioned, a test is similar to a “what” specification in the sense that it allows any implementation that achieves the test. Therefore, from here on, this paper compares only “what” and “how” specifications.
What, Not How
As mentioned above, a “what” specification is normally preferred to a “how” specification because the “what” specification says only what is desired and allows the implementer the freedom to achieve the requirements in any way he or she can. It spurs competition to find more efficient ways to achieve what is specified than originally conceived.
Some of the companies that fail to make genuine New York bagels do so because they have decided to make different kind of bagels. These companies include the makers of Montréal bagels, a different kind of bagel with its own fans.
Montréal Bagel (Image credit: Flickr user Sifu Renka)
Others that fail to make genuine New York bagels do so because they have decided that the high-gluten flour and the boiling are unnecessary. These bakers do not get the proper surface yield or interior moisture content. They make bread with a hole. Many supermarket-made bagels are in this category.Some who do use high-gluten flour, e.g. McDonald’s, have tried steaming in place of boiling. It almost works, but the surface yield is not high enough and the interior moisture content is too high. These steamed so-called bagels are clearly examples of trying to find a cheaper way to achieve the “what” specification than can be done by following the standard “how” method, or recipe. However, to date no recipe other than the standard recipe has succeeded in achieving the desired “what” specification. Saekel et al. 199510 quote Gary Goldstein, co-owner of the Bay Area’s Holey Bagel, as insisting, “Steaming is for dry cleaning, not bagels.” Even on the other side of the globe, the slogan of the Bagel House in Sydney, NSW, Australia, says it all: “If it’s not boiled, it’s not a bagel.”
Others who boil their bagels before baking still fail to achieve the required chewiness because their flour does not have enough gluten. While the resulting bagels have the required surface strength, the interior is noticeably less moist. Thus, the chewiness is limited to the initial, surface-piercing bite, and does not extend to the interior. This author believes that most of the bagel houses in Israel make this kind of low-gluten bagels. Note that gluten cannot be eliminated entirely, because without some gluten, a ring of dough would simply disintegrate during its boiling.11
Finally, there are at least two companies whose bagels taste to this author like they have been steamed, namely Tim Hortons’s and Noah’s Bagels. A search for reviews confirms that others have come to the same conclusion regarding Noah’s Bagels’s bagels.12,13,14 Nevertheless, e-mail from an official of each company says that the company’s bagels are boiled.11,15 Further investigation shows that Tim Hortons practices par-baking. At a central factory, high-gluten flour rings are boiled, baked to 85–90% of completion, and then frozen for delivery to individual stores. Each store then finishes off the baking locally. These bagels do have a freshly baked aroma, flavor, and feel, but they taste to this author like steamed bagels, with too soft a surface and too moist an interior. Perhaps the time lag between the two baking steps, during which the bagels are sent frozen from the central factory to the stores, accounts for the surface tension decrease and the interior moisture increase from those characteristic of boiled bagels to those characteristic of steamed bagels.
Thus, a bagel is an example of a project for which a “how” specification may be better than a “what” specification. A “how” specification is certainly simpler in the sense that it is easier to tell what needs to be done. In opting for this “how” specification, one is discouraging innovation. However, in the case of the New York bagel, perhaps innovation should be discouraged.
Boiling Bagels (Image credit: Flickr user Elizabeth Beers)
Could an expert baker deduce from the blueprint or an actual bagel that using high-gluten flour and boiling before baking is necessary? That is, can a domain expert deduce what is not explicit in a “what” specification so that it is not necessary to give “how” information? The answer to this question is probably “yes.” This author is a sufficiently expert eater that he can tell from feeling or biting on a candidate bagel whether it has been boiled, and can tell by chewing it whether it has enough gluten. Moreover, he can tell when another kind of bread, e.g., the German Laugenbrot or Pletzl, has a lot of gluten and has been boiled before baking. Additionally, it is hard to imagine a baking expert who has not learned about the use of gluten and boiling before baking as a technique for achieving certain effects, namely those exhibited by New York bagels. More generally, the recipient of a specification must be considered when deciding what to leave implicit.An algorithmic description is the clearest, simplest specification for a New York bagel. While it does prescribe how to make it, in principle anything that tastes and feels the same will be accepted as a bagel. Unfortunately for those who wish to optimize on the time to produce a bagel and to eliminate the need for high-gluten flour, for a boiling vat, or both, all other ways tried so far have yet to produce exactly the desired taste and feel.
Conclusion
This paper has considered one situation in which design and implementation details are necessary to resolve issues that should be resolved during specification. Space does not permit the exploration of other examples such as text formatters; robust, safe, secure, and survivable systems; and varying telephonic systems. The conclusion after consideration of these examples is that sometimes, a “how” specification is significantly more clear or brief than a “what” specification, and that sometimes, a “how” specification is needed for information that is not available in a “what” specification. Also, sometimes, a “how” specification is needed to make a quality requirement precise enough to be tested. Therefore, when it is appropriate to use a “how” specification, do so without guilt and in good health.
(Image credit: Flickr user Matthew Mendoza)
Acknowledgments
I thank Martin Feather for pointing out that the Bruegger’s Bagel Bakery blueprint on my T-shirt, on which the blueprint of Figure 2 is based, constituted a “what” specification of bagels and that sometimes a “how” specification is better. I thank Michael Jackson for an interesting e-mail discussion on “what” vs. “how.” I thank Brian Burechails and Reneé deHerrera-Brooks for teaching me some things about bagel making. I thank Vic DiCiccio for the mouth-watering photograph of the bagels. Finally, I thank Jo Atlee, Gunnar Begersen, Brian Berenbach, Nancy Day, Merlin Dorfman, Martin Feather, Mike Godfrey, and Leah Goldin for valuable comments on earlier drafts of this paper or during lecture presentations of the material in this paper.
References and notes
1 “Notes on Structured Programming,” E.W. Dijkstra, in Structured Programming, O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare, eds., Academic Press, London, 1972, ISBN 0122005503.
2 The subject bagels of the photograph of Figure 1 were so mouth-watering that the author and the photographer ended up eating the subjects immediately after the photograph was taken.
3 Bagelmania: The Hole Story, C. Berman and S. Munshower, HP Books, Tucson, 1987, ISBN 0895866242.
4 When the Israeli branches of Dunkin Donuts began to sell bagels as well as their traditional donuts, the author remarked that Dunkin Donuts was diversifying into other holey products in the Holy Land, even though its business was not wholly holey products.
5 This blueprint is modeled after a document entitled “Building a Better Bagel,” produced by Bruegger’s Bagel Bakery and, until a few years ago, used in their promotional activities. Breugger’s Enterprises, Inc. declined a request for permission to publish a copy of that blueprint in this scholarly article.
6 The duration may have to be altered if atmospheric pressure differs substantially from that at sea level. In Denver, Colorado, USA, which is a mile (? 1.6 km) high, the ring must be boiled for 90 seconds.
7 There are a (w)hole host of details ignored in one or both of these specifications:
a) boiling time as a function of the altitude of the place of baking,
b) possible toppings, e.g., garlic, onion, poppy seed, salt, and sesame seed, and when and how to apply them, and
c) emotional issues9; after all, this paper does get a bit emotional about how a bagel is made.
8 Not really!
9 “Is Emotion Relevant to Requirements Engineering?” I. Ramos and D. M. Berry, Requirements Engineering Journal, vol. 10, no. 3, 2005, pp. 238–242.
10 “What’s New,” K. Saekel, M. Cianci, and M. A. Mariner, San Francisco Chronicle, April 19, 1995.
11 R. deHerrera-Brooks, Einstein Noah Restaurant Group, Inc., private communication by e-mail, August 2008.
12 “Noah’s Bagels — Redwood City, CA,” Yelp.com.
13 “Restaurant Review: Bagels: blurring the line between tradition and innovation,” M. C. Peterson, Palo Alto Online, May 23, 1997.
14 “Noah’s Bagels”, Davis Wiki.
15 A. Ziemski, Tim Hortons (TDL Group Corp.), private communication by e-mail, August 2008.
(Title image credit: Flickr user Thomas Hawk)
_____________________
This article is republished with permission from the January-February 2009 issue of the Annals of Improbable Research. You can download or purchase back issues of the magazine, or subscribe to receive future issues. Or get a subscription for someone as a gift!Visit their website for more research that makes people LAUGH and then THINK.
The statement threw me off, too. A duck is a bird, and a goose is a bird, and we all know that a duck and a goose have little in common except they're waterfowl with wings, feathers, beaks, and who fly, and - well, indeed, a duck and a goose have literally nothing in common.
Pedant alert:
You can't say they have things in common then say they 'have literally nothing in common'. Literally nothing? They are both brown. They are both eaten. They are both circular. And of course they both have a hole.
And now I just hate myself for pointing this out. I need a... sandwich.