“That much software sucks — perhaps most of it — is hard to
dispute. Except for the simplest programs, it seems like the price
of complexity is a tendency to failure. Commands don’t work, user
interfaces are neglected to the point of ruin, and components of
even the same piece of software often clash with each other. And
once you start combining them and try to use more than one
application at once, sometimes the best you can hope for is an
operating system that neatly segregates the problems so that your
word processor doesn’t take down your web browser, your IDE or your
e-mail client. At least those are desktop applications for
individual users, though — the trouble compounds briskly when the
common faults of software manifest in multiuser environments, where
one machine going down means a wasted time and frustration for a
lot of people at once….”
“Once upon a time, a prominent writer and programmer rose to
declare “I want software that doesn’t suck!” He then explained that
certain successful free software projects have similar development
features that contribute to software quality. Most of us aren’t
gifted with the organizational clarity of a Linus, or the brilliant
non-orthogonal design of a Larry.”
“There’s hope, though. Improving the ways in which we produce
software can dramatically improve the software itself. Extreme
Programming suggests that simple habits, acting in concert, produce
extremely powerful results. By adapting these techniques to the
unique world of free software, we can improve the quality of our
programs. We start by restating some common truths about free
software development.”