We have a long tradition in the software field of debating whether computer programming is art or science. Thirty years ago, Donald Knuth began writing a seven-volume series, The Art of Computer Programming . The first three volumes stand at 2,200 pages, suggesting the full seven might amount to more than 5,000 pages. People who advocate programming as art point to the aesthetic aspects of software development and argue that science does not allow for such inspiration and creative freedom. In my view, both these views are incomplete and both ask the wrong question.
Software development is art.
It is science. It is craft, fire fighting, archeology, and a host of other activities. It is as many different things as there are different people programming. The dictionary definition of engineering is the application of scientific and mathematical principles toward practical ends. We apply scientifically developed and mathematically defined algorithms, functional design methods, quality-assurance practices, and other practices to develop software products and services.