The Interplay of Art and Science in Software

Although history and science have provided lots of important bits and pieces of information about the world around us, we are still pretty short on getting a good overall understanding of what's going on. Humans have an uncanny knack for figuring out how to do something when there is no perfect answer. It is at this boundary that science merges with art, and progress is possible only when they work together. The creation of genuinely new software has far more in common with developing a new theory of physics than it does with producing cars or watches on an assembly line. As a corollary, the goal of a software process improvement should not simply be to reduce errors or increase predictability. Instead, process improvement should seek to make a group of developers collectively smarter than any one of its members. Real progress begins with the unrelenting pursuit of the annoying paradoxes and dangling threads that ruin the status quo's otherwise tidy appearance.