what journalists need to know eric roberts professor of computer science knight fellowship program...

40
What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com © Danny Sanchez about Computing

Post on 22-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

What Journalists Need to Know

Eric RobertsProfessor of Computer Science

Knight Fellowship ProgramStanford University

January 6, 2010

Journalistopia.com © Danny Sanchez

about Computing

Page 2: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Journalism Faces Enormous Challenges

Page 3: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Journalism Faces Enormous Challenges• No one in this room needs me to tell them that the entire

profession of journalism is under assault in the Digital Age.

• I believe that the unintended consequences of the growth of digital technologies and the social patterns those technologies encourage represent one of the most important issues facing our world today. This quarter, I’m using that issue as a focus for the senior seminar in Science, Technology, and Society:

STS 200. Wired Worlds: Promise and Peril in the Digital Age. Over the two decades since the creation of the World Wide Web, communication networks—along with the social networks built on top of that technology—have changed our world in profound ways. This version of the STS Senior Colloquium will focus on how modern networking technology affects our society in both positive and negative ways.

• Today, I want to talk about something slightly different . . .

Page 4: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

What Journalists Need to Know

Eric RobertsProfessor of Computer Science

Knight Fellowship ProgramStanford University

January 6, 2010

about the Practice of Computing

Page 5: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

General Thesis• In terms of the dynamics of work in the field, computing is

different from most engineering domains. Assumptions that hold true in other, more traditional disciplines often turn out to be wrong when applied to computing, particularly when a project requires a significant software-development effort. Understanding these differences is essential to reporting on the industry or formulating technology policy.

• My intent in today’s talk is to provide an overview of those characteristics of computing that journalists and policymakers need to comprehend in order to do their jobs effectively.

Page 6: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Critical Observations about Software

Software development is an extraordinarily difficult task, exceeding in complexity most other engineering work. That difficulty, moreover, is intrinsic to the discipline and is not likely to change in the foreseeable future.

1.

Despite advances in tools and methodologies (and to some extent because of those advances), software development and software education have become more difficult over the history of the field.

2.

Software development requires people with an unusual combination of skills. Those people are in short supply, but their economic value is enormous. Experienced programmers differ in productivity by several orders of magnitude.

3.

Economic, social, and political factors are more important than technology in determining how computing evolves.

4.

Page 7: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Critical Observations about Software

Software development is an extraordinarily difficult task, exceeding in complexity most other engineering work. That difficulty, moreover, is intrinsic to the discipline and is not likely to change in the foreseeable future.

1.

Despite advances in tools and methodologies (and to some extent because of those advances), software development and software education have become more difficult over the history of the field.

2.

Software development requires people with an unusual combination of skills. Those people are in short supply, but their economic value is enormous. Experienced programmers differ in productivity by several orders of magnitude.

3.

Economic, social, and political factors are more important than technology in determining how computing evolves.

4.

Page 8: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Essential and Accidental ComplexityTo see what rate of progress one can expect in software technology, let us examine the difficulties of that technology. Following Aristotle, I divide them into essence, the difficulties inherent in the nature of software, and accidents, those difficulties that today attend its production but are not inherent. . . .

Fred Brooks“No Silver Bullet”IEEE Computer, April 1987

The complexity of software is an essential property not an accidental one. Hence, descriptions of a software entity that abstract away its complexity often abstract away its essence.

Page 9: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

What Makes Software Different?• Computers are used to solve hard problems, which means that

the difficulty is typically intrinsic to the application.

• Software has high “system complexity” and is therefore difficult to distribute among members of a large team.

Page 10: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Brooks’s Law“Adding manpower to a late software project makes it later.”

— Fred Brooks, The Mythical Man Month

Months

Number of Workers Fig. 2.3 Time versus number of workers—partitionable task requiring communication

Months

Fig. 2.4 Time versus number of workers—task with complex interrelationships

Number of Workers

Page 11: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

What Makes Software Different?• Computers are used to solve hard problems, which means that

the difficulty is typically intrinsic to the application.

• Software has high “system complexity” and is therefore difficult to distribute among members of a large team.

• Software systems are discrete rather than continuous: there is no way to “overengineer” such systems to ensure correctness.

• Software systems are inherently chaotic: small changes in initial conditions generate massive changes in the results.

• Bugs are omnipresent and inevitable.

Page 12: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Discovery of Debugging

Maurice Wilkes, lecture on “The Design and Use of the EDSAC,” September 23, 1979

“As soon as we started programming, we found to our surprise that it wasn’t as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.”

Maurice Wilkes, 1913-

Page 13: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Inevitability of Bugs

Christopher Strachey, Scientific American, 1966—

Although programming techniques have improved immensely since the early days, the process of finding and correcting errors in programming known graphically—if inelegantly—as debugging still remains a most difficult, confused and unsatisfactory operation. . . . Although we are happy to pay lip-service to the adage that to err is human, most of us like to make a small private reservation about our own performance on special occasions when we really try. It is somewhat deflating to be shown publicly and incontrovertibly by a machine that even when we do try, we in fact make just as many mistakes as other people. If your pride cannot recover from this blow, you will never make a programmer.

Department of Defense, The Eastport report on Computing in Support of Battle Management, December 1985

Simply because of its inevitable large size, the software capable of performing the battle management task for strategic defense will contain errors.

Simply because of its inevitable large size, the software capable of performing the battle management task for strategic defense will contain errors. All systems of useful complexity contain software errors.

Page 14: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Critical Observations about Software

Software development is an extraordinarily difficult task, exceeding in complexity most other engineering work. That difficulty, moreover, is intrinsic to the discipline and is not likely to change in the foreseeable future.

1.

Despite advances in tools and methodologies (and to some extent because of those advances), software development and software education have become more difficult over the history of the field.

2.

Software development requires people with an unusual combination of skills. Those people are in short supply, but their economic value is enormous. Experienced programmers differ in productivity by several orders of magnitude.

3.

Economic, social, and political factors are more important than technology in determining how computing evolves.

4.

Page 15: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The March of Progress

266 pages 274 pages

911 pages

1536 pages

Page 16: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Sobering Thoughts• There are more public methods in Java’s standard package

hierarchies than there are words in Jensen and Wirth’s Pascal User Manual and Report. Thus, the amount of explanation once deemed sufficient to teach the standard introductory programming language is no longer sufficient for an index of the operations available today.

• Typical software today exists at a level of scale and complexity that would have been unthinkable a generation ago. The most common operating system used in mobile phones, for example, contains approximately 100 million lines of code.

—Don Knuth, October 11, 2006If I had had to learn C++, I would have majored in music.

Page 17: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Critical Observations about Software

Software development is an extraordinarily difficult task, exceeding in complexity most other engineering work. That difficulty, moreover, is intrinsic to the discipline and is not likely to change in the foreseeable future.

1.

Despite advances in tools and methodologies (and to some extent because of those advances), software development and software education have become more difficult over the history of the field.

2.

Software development requires people with an unusual combination of skills. Those people are in short supply, but their economic value is enormous. Experienced programmers differ in productivity by several orders of magnitude.

3.

Economic, social, and political factors are more important than technology in determining how computing evolves.

4.

Page 18: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Variations in Programmer Productivity

• In 1968, a study by Sackman, Erikson, and Grant1 revealed that programmers with the same level of experience exhibit variations of more than 20 to 1 in the time required to solve particular programming problems.

• More recent studies2, 3, 4 confirm this high variability.• Most industry insiders believe that the productivity variance is

even higher today. In 2005, Google’s VP for Engineering, Alan Eustace, told The Wall Street Journal that one top-notch engineer is worth 300 times or more than the average.5

1 H. Sackman, W. J. Erikson, and E. E. Grant. Exploratory experimental studies comparing on-line and off-line programming performance. Communications of the ACM, January 1968.

2 W. Curtis. Substantiating programmer variability. Proceedings of the IEEE, July 1981.

3 T. DeMarco and T. Lister. Programmer performance and the effects of the workplace. Proceedings of the 8th International Conference on Software Engineering. IEEE Computing Society Press, August 1985.

4 G. E. Bryan. Not all programmers are created equal. In Richard Thayer, Software Engineering Project Management (second edition), IEEE Computer Society, 1997.

5 T. Pui-Wing and K. Delaney. Google’s growth helps ignite Silicon Valley hiring frenzy.Wall Street Journal, November 23, 2005.

Page 19: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Microsoft Programming Personae

Microsoft’s cultural lore defines three types of programmers:

Mort is your most common developer, who doesn’t have a CS background, may even be a recent newcomer, and doesn’t quite understand what the computer is doing under the covers, but who writes the dinky IT programs that make businesses run. Elvis, more knowledgeable, cares about code quality, but has a life too. Einstein writes some serious-ass piece of code like device drivers, wants to get things done, needs to be able to go low level and high level, needs a language without restrictions to get his job done.

Mort is your most common developer, who doesn’t have a CS background, may even be a recent newcomer, and doesn’t quite understand what the computer is doing under the covers, but who writes the dinky IT programs that make businesses run. Elvis, more knowledgeable, cares about code quality, but has a life too. Einstein writes some serious-ass piece of code like device drivers, wants to get things done, needs to be able to go low level and high level, needs a language without restrictions to get his job done.

Mort is your most common developer, who doesn’t have a CS background, may even be a recent newcomer, and doesn’t quite understand what the computer is doing under the covers, but who writes the dinky IT programs that make businesses run. Elvis, more knowledgeable, cares about code quality, but has a life too. Einstein writes some serious-ass piece of code like device drivers, wants to get things done, needs to be able to go low level and high level, needs a language without restrictions to get his job done.

Wesner Moise, “Who are you? Mort, Elvis or Einstein,” September 25, 2003 http://wesnerm.blogs.com/net_undocumented/2003/09/who_are_you_mor.html

For the most part, Microsoft (along with Google and other first-rank companies) are seeking to hire the Einsteins, which explains the low hiring ratio.

Page 20: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Productivity Variations Are Common

• The idea that individuals might differ in productivity by two or more orders of magnitude initially seems hard to believe.

• In fact, such differences in effectiveness occur across a range of occupational categories:– Mathematicians– Creative artists (writers, composers, poets, painters)– Performers (musicians, actors)– Motion picture directors– Financial wizards, CEOs– Professional athletes

• No one achieves mastery in any of these fields on the basis of raw talent alone. Training and practice are essential.

Page 21: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Critical Observations about Software

Software development is an extraordinarily difficult task, exceeding in complexity most other engineering work. That difficulty, moreover, is intrinsic to the discipline and is not likely to change in the foreseeable future.

1.

Despite advances in tools and methodologies (and to some extent because of those advances), software development and software education have become more difficult over the history of the field.

2.

Software development requires people with an unusual combination of skills. Those people are in short supply, but their economic value is enormous. Experienced programmers differ in productivity by several orders of magnitude.

3.

Economic, social, and political factors are more important than technology in determining how computing evolves.

4.

Page 22: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Importance of Economics• Economics has more impact on directions in modern computing

than technology does. The most significant factors are:– Low distribution costs. Software is expensive to produce, but

essentially free to duplicate and distribute. Because development costs can be distributed across a larger base, big players have a distinct advantage.

– Network externalities. The value of software increases with the number of people using that software.

– High cost-effectiveness. Software tends to be remarkably useful, even when bugs exist.

– Shortage of highly skilled labor. As noted earlier, productivity varies widely among individuals. Demand is high for the most productive programmers, but the supply is extremely limited.

– Economics affects student choices. From 2001 to 2007, students shied away from computer science majors, choosing instead majors that lead to careers in finance.

Page 23: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Pipeline Paradox in Computing

262 402 53.41.

767 1,156 50.62.787 1,171 48.73.507 733 44.64.

71 100 41.05.

176 248 41.06.2 3 39.87.

465 148 35.48.62 84 35.09.

Network systems and data communications analysts

Personal and home care aidesHome health aidesComputer software engineers, applicationsVeterinary technologists and technicians

Personal financial advisorsMakeup artists, theatrical and performanceMedical assistantsVeterinariansSubstance abuse and behavioral disorder counselors 83 112 34.310.

Top 10 job growth categories (2006-2016) 2006 2016

Employment(thousands)

Growth

U.S. Department of Labor, Bureau of Labor Statistics, Employment Projections: 2006-16, December 2007.

Source:

Google and Facebook are fighting hard to hire this year’s crop of computer science graduates, we’ve heard, and ground zero is Stanford. Most of the class of 2008 already have job offers even though graduation is months away. Last year, salaries of up to $70,000 were common for the best students. This year, Facebook is said to be offering $92,000, and Google has increased some offers to $95,000 to get their share of graduates. Students with a Master’s degree in Computer Science are being offered as much as $130,000 for associate product manager jobs at Google.

• The computing industry offers some of the best employment opportunities for college graduates in the United States today:– The number of jobs in the domestic software industry are at an all-

time high and are projected to grow dramatically over the next decade.– Salaries for newly minted B.S. graduates in Computer Science are

high, sometimes exceeding the $100,000 mark.– In 2005, Money magazine rated software engineer as the number one

job in America.– Employment in this area is vital for national competitiveness.

• At the same time, student interest in these disciplines has plummeted. The Computing Research Association (CRA) estimates that computing enrollments have fallen by almost 50 percent since their peak in 2000.

• This decline has been even more rapid among women and minority students, reducing diversity as the pool shrinks.

Page 24: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Degree Production vs. Job Openings160,000

140,000

120,000

100,000

80,000

60,000

40,000

20,000

Engineering Physical Sciences Biological Sciences Computer Science

Ph.D.

Master’s

Bachelor’s

Projected job openings

Adapted from a presentation by John Sargent, Senior Policy Analyst, Department of Commerce, at the CRA Computing Research Summit, February 23, 2004. Original sources listed as National Science Foundation/Division of Science Resources Statistics; degree data from Department of Education/National Center for Education Statistics: Integrated Postsecondary Education Data System Completions Survey; and NSF/SRS; Survey of Earned Doctorates; and Projected Annual Average Job Openings derived from Department of Commerce (Office of Technology Policy) analysis of Bureau of Labor Statistics 2002-2012 projections. See http://www.cra.org/govaffairs/content.php?cid=22.

Sources:

Page 25: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Students Like Our Courses But Go Elsewhere

Gateway Course for Computer ScienceGateway Course for Management Science & Engineering

Computer Science Management Science & Engineering

studentflow

Page 26: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

There Is an Image Problem

QuickTime™ and aH.263 decompressor

are needed to see this picture.

Dilbert“The Knack”

http://www.youtube.com/watch?v=CmYDgncMhXw

Page 27: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Reality Is Also a Problem

• Students at Stanford have expressed the following concerns:– Long hours with little chance for a balanced life– A less pleasant social milieu than other occupations

—Don Knuth, October 11, 2006Has anyone considered the possibility that it’s just not fun anymore?

Page 28: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Code-Rush Syndrome

QuickTime™ and aH.264 decompressor

are needed to see this picture.

Page 29: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

But the Reality Is Also a Problem

• Students at Stanford have expressed the following concerns:– Long hours with little chance for a balanced life– A less pleasant social milieu than other occupations– A sense that success in programming is possible only for those

who are much brighter than they see themselves to be– Work that is often repetitive and unchallenging, particularly

when it involves maintaining legacy technology– Programming has become more difficult than it used to be– No chance for a lasting impact because of rapid obsolescence– Fears that employment with an individual company is dicey even

though opportunities are good in the industry as a whole– Frustration at being managed by nontechnical people who make

more money but are not as bright– A perception that programmers are definitely on the labor side of

the labor/capital divide

—Don Knuth, October 11, 2006Has anyone considered the possibility that it’s just not fun anymore?

Page 30: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Capital-Labor Divide

Capital Labor

Page 31: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Suggestions for further reading . . .

Page 32: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

E. M. Forster’s The Machine Stops

Anybody who uses the Internet should read E. M. Forster’s The Machine Stops. It is a chilling, short story masterpiece about the role of technology in our lives. Written in 1909, it’s as relevant today as the day it was published. Forster has several prescient notions including instant messages (email!) and cinematophotes (machines that project visual images).

-Paul Rajlich http://brighton.ncsa.uiuc.edu/~prajlich/forster.html

(Formerly top Google entry for “Forster "Machine Stops"” — now behind Wikipedia)

Page 33: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The Mythical Man-MonthFrederick Brooks, Jr., The Mythical Man-Month: Essays on Software Engineering, 2nd edition, Addison-Wesley, 1995.

Originally published in 1975, The Mythical Man-Month remains the classic text on software engineering and its importance. Even though Brooks is an expert programmer with experience in both industry and academia, The Mythical Man-Month is easily accessible to a popular audience.

Page 34: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Psychology of Computer ProgrammingGerald M. Weinberg, Psychology of Computer Programming, Dorset House, 1998.

From the time it first appeared in 1971, this book has offered the best popular description of the mental processes of programmers. The 1998 edition includes reflections on how well each chapter has held up over time.

Page 35: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Normal AccidentsCharles Perrow, Normal Accidents: Living with High-Risk Technologies, New York: Basic Books, 1984.

Although this book does not focus specifically on programming—and indeed does not include software or programming in its index—the issues that it raises are critical to an understanding of why complex technological systems fail.

Page 36: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

The End

Page 37: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Paul Graham’s Hackers and Painters

http://www.paulgraham.com/hp.html

When I finished grad school in computer science I went to art school to study painting. A lot of people seemed surprised that someone interested in computers would also be interested in painting. They seemed to think that hacking and painting were very different kinds of work—that hacking was cold, precise, and methodical, and that painting was the frenzied expression of some primal urge.<tab>Both of these images are wrong. Hacking and painting have a lot in common. In fact, of all the different types of people I’ve known, hackers and painters are among the most alike.<tab>What hackers and painters have in common is that they’re both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things.

(photo by Niall Kennedy)Paul Graham

Page 38: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Dick Gabriel’s Proposal for a Software MFA

http://www.dreamsongs.com/MFASoftware.html

Dick Gabriel

Software education today is embodied in Computer Science and Software Engineering programs, supplemented by informal mentoring on the job. I find this approach unsatisfactory. Software development is a performance exhibiting skills developed by an individual—often in groups of teams in order to achieve the scale of software required. In this way, software development is like putting on a play, which requires the skills and performances of a number of people working in tandem on stage and behind the scenes. Such skills can be developed in isolation through practice with other amateurs or even by putting on plays in public without any training at all. But how much faster could talent be developed in a educational program that recognized that writing software has enough of an arts-like performance component that the program was tailored to it?

Another apt comparison can be found in the creative writing arts. It is entirely possible to become an extraordinary writer by one’s self, by simply writing and reading, and many excellent writers progress this way. A faster way to gain competence is through a Master of Fine Arts program, which is designed to rapidly increase one’s skills and to get one prepared to bring to bear critical thinking to the process of continuing improvement. Some believe that all aspects of software design and development are really engineering or scientific disciplines where the models of engineering and science apply, and I will not quarrel with them nor try to convince them otherwise. . . .<tab>This proposal is predicated on the belief that being a good software designer and developer requires talent, and that talent can be developed. We explicitly liken the practice of software to the practice of fine art.

software wizardprizewinning poet

Page 39: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

Alternative Models of Software Education

Although Dick Gabriel’s model of an MFA in software is worth investigating, it may be more appropriate to create “conservatories” for the teaching of software arts, similar to music conservatories. One possibility might be some sort of New England Conservatory of Coding. Or perhaps a Hogwarts School for Software Wizardry.

Although Dick Gabriel’s model of an MFA in software is worth investigating, it may be more appropriate to create “conservatories” for the teaching of software arts, similar to music conservatories. One possibility might be some sort of New England Conservatory of Coding. Or perhaps a Hogwarts School for Software Wizardry.

Although Dick Gabriel’s model of an MFA in software is worth investigating, it may be more appropriate to create “conservatories” for the teaching of software arts, similar to music conservatories. One possibility might be some sort of New England Conservatory of Coding. (Or perhaps a Hogwarts School for Software Wizardry.)

SEMESTER AT SEASEMESTER AT C++

Another model might be to create intensive programs that encourage students to focus on the art of software development, in much the same way that programs like the University of Virginia’s Semester at Sea program offers a concentrated immersion in oceanography, geography, and cultural anthropology.

Page 40: What Journalists Need to Know Eric Roberts Professor of Computer Science Knight Fellowship Program Stanford University January 6, 2010 Journalistopia.com

A Thought Experiment about Offshoring

• Suppose that you are Microsoft and that you can hire a software developer from Stanford whose loaded costs will be $200,000 per year. Over in Bangalore, however, you can hire a software developer for $75,000 per year. Both are equally talented and will create $1,000,000 annually in value. What do you do?

• Although the developer in Bangalore has a higher return, the optimal strategy is to hire them both. After all, why throw away $800,000 a year?

• Any elementary economics textbook will explain that one hires as long as the marginal value of the new employee is greater than the marginal cost. The essential point is that companies seek to maximize return, and not simply to minimize cost.