How to make a toaster
Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob and a lever. “What do you think it is?”
One advisor, an engineer, answered first.
“It is a toaster” he said.
The king asked, “How would you design a computer for it?”
The engineer who was from a small private business replied, “Using a small microcontroller, I would write a simple program that reads the darkness knob and converts its position to one of 16 shades of darkness, from warmed up to burnt equivalent to the time the toaster would be on. Then it would turn on the heating elements and start the timer with the initial value selected via the knob. When the timer has counted down to zero, it would turn off the heat and pop up the toast. Come back next week, and I’ll show you a working prototype.”
The second advisor, an analyst from a big corporation which had loads of government contracts, immediately recognized the danger of such short-sighted thinking. He said, “Toasters don’t just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don’t look to the future, we will have to completely redesign the toaster in just a few years.”
“With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes and waffles; pork divided into sausage, links and bacon; and poultry divided into scrambled eggs, hard-boiled eggs, poached eggs, fried eggs and various omelet classes.”
“The ham and cheese omelet class is worth special attention because it must inherit characteristics from the pork, dairy and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create the proper object and send a message to the object that says, ‘Cook yourself’. The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs.”
“Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don’t want the eggs to get cold while the bacon if frying, so concurrent processing is required, too.”
“We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won’t buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the a full colour graphic logo appears on the screen. Users can pull down a menu and click on the foods they want to cook.”
“Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform the implementation phase. An ARM 9 processor running at 2Ghz with 32Gb of memory and a 1Tb hard disk should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!)”
The king wisely had the computer scientist beheaded, the large corporation barred from future government contracts and they all lived happily ever after.
SBML
From a common joke circulating the net since the year dot.
-
1
October 7, 2011 at 03:33 -
Hold on big fella-I see no diversity or health and safety plan, how can you possibly design anything without them? This project is toast.
-
2
October 7, 2011 at 07:18 -
We don’t need a bloody microcontroller.
There was nothing wrong with the old mechanical system. I am sick of repairing things with unnecessary and unfathomable complications, just put in to give the microcontroller something to do.Designers and managers are obliged to keep making unnecessary changes, or they’d be redundant.
-
3
October 7, 2011 at 07:27 -
Users click on it…
Behind the times, I’m afraid. These days he swipes it. Of course, now you’re going to need a touch screen, faster processor, graphics accelerator, just-in-the-nick-of-time compiler and a partridge in a pear tree. What did you say your budget was again?
-
4
October 7, 2011 at 07:35 -
Actually, if you’re cost sensitive on this one, we could probably get by without the avian/arboreal interface.
-
5
October 7, 2011 at 08:58 -
Just think, all this might actually have happened a few years ago but, on that occasion, the analyst probably finished his/her advice thus, “And we could call it something like, er….. the NHS IT project”.
-
6
October 7, 2011 at 09:31 -
I just wish I could get a toaster that has a slot wide enough to take a slice of bread as produced by any of the UK’s largest bakeries.
Or I wish our baker’s would produce a loaf that fitted the slots of commonly available toasters. Oh, and by the way, where has all the thin sliced bread gone?
-
7
October 7, 2011 at 09:57 -
Thin sliced bread is the result of a conspiracy by the butter/fake butter/spread manufacturers to get you to buy more of their products.
-
8
October 7, 2011 at 12:32 -
Thick sliced bread might be a conspiracy by the bakers but thin sliced bread is unavailable. I can’t see how makers of spreads can conspire to make sliced bread, that they don’t make, thinner.
When I make a sandwich I want a filling held by two thin layers of bread, not a quarter of a loaf per sandwich.
-
-
-
9
October 7, 2011 at 10:23 -
Nail. Head.
It’s interesting to note that despite all our wonderful technological advances, manufacturers of hammers continue to make their wares. In a bewildering variety of sizes and types.
By the by, the best toast I’ve ever enjoyed was made by hanging the bread on two bent paperclips attached to the wire guard on the gas-fire of my student digs. Total capital cost, less than a penny. Running cost minimal, because I wanted the room warmed anyway. Psychological benefit – incalculably great…
-
10
October 7, 2011 at 10:26 -
Thanks for this SBML – this has made my day
-
11
October 7, 2011 at 11:50 -
The REAL engineers moto: “Add lightness, and simplicate”
This story shows all that’s wrong with modern technology and equipment – the customer never gets asked what he wants something to do, he/she is presented with “This is what we can MAKE it do”…
There is another (true) story regarding typical situations from few years ago – How do you tell which homes have young children in them? Answer: the ones with the VCR clock telling the correct time…
-
12
October 7, 2011 at 12:18 -
Are you sure that the ‘financial whizz kids’ working in the city haven’t spent some time with this computer scientist?
-
13
October 7, 2011 at 13:23 -
Shortly you’re going to have to rely on windmills to use it so no toast for anyone on cold frosty nights.
-
14
October 7, 2011 at 14:39 -
Second thoughts : how about a handcranked dynamo to cover the outtages.
-
-
15
October 7, 2011 at 15:30 -
Throw another politician on the log fire… toast for all!
-
16
October 7, 2011 at 17:17 -
Dualit toaster; clockwork timer, simple eject lever – fantastic toast every time. Lasts for years too
-
17
October 7, 2011 at 20:14 -
You could always buy a powerful desktop computer, one with the PSU below the DVD Drive, and use that.
A simple macro written to compute Pi to 100,000 digits then Auto-Eject, should be just right.
-
18
October 7, 2011 at 20:58 -
But we want toast. If we wanted hot Pi’s, we’d get an oven.
-
{ 18 comments… read them below or add one }