Home' Technology Review : January February 2007 Contents 44 FEATURE STORY
TECHNOLOGY REVIEW /
The di culty of coördinating a team s work inspired
software engineering s most famous dictum, known as
Brooks s Law: "Adding manpower to a late software proj-
ect makes it later." Frederick P. Brooks Jr. reached this
gloomy conclusion after leading IBM s troubled e ort to
write software for its 360 mainframes in the 1960s. In his
1975 book, The Mythical Man-Month, Brooks obser ved that
work proceeds slower on bigger teams because of "coör-
dination costs"---the time programmers lose keeping one
another apprised of their work.
This was the backdrop for Simonyi s 1977 dissertation,
"Meta-Programming: A Software Production Method."
Simonyi proposed a new approach to "optimizing productiv-
ity," in which one lead programmer, or "meta-programmer,"
designed a product and de ned all its ter ms, then handed
o a blueprint to "technicians," worker-bee programmers
who would do the implementation. Simonyi aimed to escape
Brooks s Law by forbidding the technicians to talk with one
another: all communication had to pass through the meta-
programmer. For his dissertation, he tested the idea using
two groups on two projects, A and B. His despotic approach
to programming never caught on, but that hardly troubled
him. Simonyi s chief goal in researching his dissertation
wasn t to prove the value of his ideas but to get Bravo, the
new Wysiwyg word processor, written faster. He couldn t
persuade the PARC brass to hire additional programmers,
so he used his dissertation as a subterfuge to bring in some
help. Bravo itself was project B.
As the 1970s wore on, Simonyi grew impatient with
Xerox s inability to turn PARC s pioneering research into
successful products. One day a friend showed him VisiCalc,
the new spreadsheet program for the Apple II. It thrilled
Simonyi. Here was another application, like Bravo, that
could change people s lives, but unlike Bravo, it ran on
a mass-market computer that people could a ord to buy.
PARC s work, he realized, was never going to see the light
of day. He asked his former PARC colleague Bob Metcalfe,
who d left the lab in 1979 to start 3Com, to recommend
prospective bosses in the edgling PC industry. At the head
of the list was Bill Gates.
In 1981, Simonyi moved to Seattle to start the new-
applications group at Microsoft, which until then had sold
programming languages and operating systems. He was 33,
but that made him a grown-up among Microsoft s striplings
(Gates was then 26 years old, Steve Ballmer 25).
Through all the years that Simonyi oversaw the products
that eventually coalesced into the "program suite" known
as Microsoft O ce, he continued to seek new e ciencies
in new kinds of programming abstractions. Most notably,
he schooled generations of Microsoft programmers in the
discipline of keeping track of the myriad variable names
used in big programs. In computer programming, variables
represent information that can change as a program r uns.
For example, an online store s shopping-cart program will
have variables that represent the number of items of each
type to be purchased, each item s price, and the shipping
costs and taxes. Using those variables, a programmer can
write a simple line of code that multiplies quantity by price,
adds shipping and taxes, and calculates the total cost---which
becomes the value of yet another variable.
A large program can have thousands of di erent vari-
ables that a programming team must keep straight. Naming
them carefully becomes crucial. Today, most code features
variable names designed to convey meaning to the program-
mers who will read it---names like NumberOfItems or Shop-
pingCartTotal. In Simonyi s naming scheme, which he d
invented for his own use years before, every variable name
comes with a pre x that tells you useful information about
it, like its type (integer, say, or decimal fraction, or string of
letters). Some systems limit the length of variable names to
eight characters; Simonyi simply left out the vowels.
The resulting code was dense and hard to read. Simonyi s
system came to be known as Hungarian notation, both in
homage to its creator s birthplace and because it made pro-
grams "look like they were written in some inscr utable for-
eign language," according to programming pioneer Andy
HIGH FLIER: Simonyi in the helmet he will wear on his trip to the
International Space Station. He is paying about $20 million for his
ride in a Russian rocket. The launch is set for April 9.
Links Archive November December 2006 March April 2007 Navigation Previous Page Next Page