Hackers and Painters is an essay by Paul Graham about “hacking” being more of a creative art than an actual science. Its is one of the best reads I have found online in a while. Originally seen at Slashdot.
To be fair and honest from the gate I must admit no not agreeing with many of the points that Paul makes in his essay. This is not really a concern to me because I, with very few exceptions, find fault with things everyone says.
What I find interesting about the article is how much rings true in my own experiences. Not that things that “ring true” make for a good evaluation of real truth. Communism appealed to so many people because it seem to do such a good job of explaining problems that they saw in their own world. But that being said…
My CS background was from a PhD is Mathematics who was bound and determined to convince us that software development was the physical extention of mathematics. I program by putting something down in code, trying to compile it, debug it, and see what happens. This does not jive well with the basic “workings” of mathematics, start with the known and move to extend from that. I, also, spent a lot of time feeling bad because I did not “know” theory.
Looking back over code I developed just a year ago; it becomes blazingly obvious that I am “working” on applications, not “solving” problems. My applications constantly change as my skill and style improve. During my freetime I work on applications because I love developing them, changing them, molding them, and seeing what the outcome becomes.
That being said, I spend most of my work hours architecting and designing. At work I am most assuredly a software engineer/architect (at least most of the time) from the standpoint of implementing changes and creating software designs. So maybe the answer is that software development is BOTH art and engineering. It can be, for hackers, something done to express and create while still being, for non-hackers, be a science used to discover and understand. Heck, most architects I know consider themselves artists and not engineers.