Monday, January 25, 2010

Afterword





Chapter 25. Afterword



Unprovided with original learning,
unformed in the habits of thinking, unskilled in the arts of composition, I
resolved to write a book.



�Edward Gibbon



There is at present something called the software industry. In
my humble opinion we have a software industry for three fundamental reasons.



1.style='font:7.0pt "Times New Roman"'>       class=docemphasis1>Compilation is tantamount to encryption: When source
code is compiled, information is lost. While it is possible to disassemble a
compiled binary, it is provably impossible to reconstruct the full source code
of the program. In fact, with highly optimizing compilers it is possible for
several different source code versions of an algorithm to have identical
resultant binaries. Thanks to compilation, there is an
artificial shortage of technique.
This artificial shortage raises the
price of software and supports the continuance of software as an industry.



2.style='font:7.0pt "Times New Roman"'>       class=docemphasis1>Capital cost of software distribution: When the
software industry began, it was necessary to manufacture and distribute media
(disks and books) in order to get software into the hands of users. Now we have
the Internet, which, while presently a bit too slow, will one day totally
replace physical software distribution. The capital cost to distribute your
program to every computer user on Earth is now so close to zero as to be hardly
worth mentioning.



3.style='font:7.0pt "Times New Roman"'>       class=docemphasis1>Human capital: Again, when the software industry
began it was necessary to gather large numbers of skilled people in one place
to develop any software beyond a certain level of complexity. Once again, we
now have the Internet. And as projects like Linux and Apache and others firmly
demonstrate, large and complex software projects can be built by hundreds, even
thousands of people, most of whom have never met one another. The capital cost
of combining talented people is now so close to zero as to be hardly worth
mentioning.



I imagine you are beginning to see my idea, which is that
software will cease to have value and that talented
programmers
will have the value. The vast majority of programmers work
not for the software industry, but in management information systems (MIS),
where they adapt systems of hardware and software to the specific needs of
specific businesses and processes.



This is just as it should be. After all, a computer and its software
has little inherent value. The only value it has is how it lets us do what we
would have done without it faster, better, and with fewer errors. Software is a
tool. It is only of value if you have something you want to build.



I believe that Free Software is the very beginning of a major
shift in the value proposition of software. I believe that software design and
development will evolve from its present state, analogous to laborers in
industrial production, into a profession more akin to architecture,
engineering, law, and medicine.



What if some of the other established professions worked like
the software industry? Imagine you are a heart surgeon. You develop a new heart
bypass technique. You would, of course, keep this technique secret. You would
invent a way to pass the technique on to other heart surgeons so that they
could perform it but not understand it or pass it on to others. Moreover, you
would keep some things you already know would improve the technique from being
included with the technique so that you could later sell an enhanced version.
This is what medicine would be like if it worked like the software industry.



Fortunately, medicine is a field where class=docemphasis1>skilled practitioners are highly desired and
therefore highly compensated. They give away their techniques in medical
journals, seminars, and schools (schools that charge tuition, of course�there's
nothing that says you can't charge for a skilled person's time). They disclose
it all and subject it to the public review of their peers. Surgeons are not
units of production in a manufacturing enterprise; they are professionals.



An interesting counterexample is where the
medical model does follow the manufacturing
model. Pharmaceutical companies do keep their techniques secret (well, they
publish them, but they obtain patent protection). This makes some sense,
however, since there is an actual physical product that requires raw materials
and physical plant. It cannot be distributed to more people without diminishing
supply. This is quite different from software, which, as we see with the advent
of the Internet, may be reproduced and distributed infinitely without
increasing cost or diminishing supply.



If Free Software continues (as I believe it
will) to replace the artificially scarce and therefore artificially expensive
supply of software, how will programmers make money? Surely Free Software is at
best an anticapitalist idea that threatens an entire economic sector?



I think not. Are physicians paupers? Do
surgeons have to hitch rides to work? Are they diminishing in number? How about
lawyers? How about architects? All of these professionals are paid not for the
secrets they keep, but for the quality of their practice. As I said before,
most programmers do not work for companies that manufacture and distribute
commercial software. Most work in MIS, writing software and/or integrating
systems to make them meet specific needs. Demand for this will only increase as
the cost of baseline systems software and development tools drops to zero. There
will be more work and more money to be made, because it is not the software
that has value; it is the quality of the programmer's practice that has value.



There will be considerable resistance to this
conversion of programming from industrial job to true profession. This
resistance will come largely from practitioners of the art. There was
considerable resistance to the conversion of medicine to scientific and
statistical methods as well. This resistance came because of the sheer number
of quacks and incompetents in the profession. Who can doubt that this is true
of software when Weinberg's second law still seems so true: "If builders
built buildings the way programmers write programs, then the first woodpecker
to come along would destroy civilization." Proprietary software, by hiding
poor design and implementation from peer review, helps to keep the state of the
art primitive. It is part of why user experience of computers is so poor.



Free Software's rise to prominence would have
been impossible without the Internet.
I believe the disappearance of
packaged closed software will be a natural consequence of the Internet. A
fundamental shift has already occurred in the economics of software production
and distribution. It will take some time for the shift to reach throughout the
system, but the economics will drive it.



The best part is that by making software open and free, all of
us who write software will be better prepared to be skilled practitioners. The
next best part is that all of us who use software will have a lot more money to
pay people for their skills, to put money into segments of the economy that
produce goods with real value. It is an exciting time to be working in
technology.



�Michael Schwarz



 





No comments: