Skip to main content

Posts

Showing posts from May, 2008

The Software Artists: Citations for Part Three

Citations For the section “Practicing, Rehearsing, and Performing Software” Programmer, poet and guitarist Richard Gabriel's quote is from his proposal for a Master of Fine Arts in Software: http://www.dreamsongs.com/MFASoftware.html Apple CEO Steve Jobs' quote is widely noted, but is documented in context by Andy Hertzfeld here: http://www.folklore.org/StoryView.py?story=Pirate_Flag.txt The practice/rehearse/perform rubric was first presented on the author's blog in September 2007: http://chrismcmahonsblog.blogspot.com/2007/09/become-better-software-artist.html The title of this paper comes from the author's blog post of May 2007 in response to Jonathan Kohl's recommendation of theater and musical experience for software testing: http://chrismcmahonsblog.blogspot.com/2007/05/here-come-software-artists.html A performance by Ella Fitzgerald and Count Basie available on YouTube was a strong influence on this paper, cited in response to another of B...

The Software Artists: Practicing, Rehearsing, and Performing Software

Software development is a performance exhibiting skills developed by an individual—often in groups of teams... -Richard P. Gabriel Real artists ship. -Steve Jobs Since the language of art criticism provides useful tools for evaluating software, and the practice of teaching music provides useful approaches to teaching software, it is reasonable to think that the practice of artistic performance should provide useful ways to approach creating software. Only one way to build software has ever been acknowledged: software is designed, coded, and tested. Sometimes the design/code/test cycle is done a single time, sometimes design/code/test is done iteratively or incrementally, sometimes, as in Test Driven Development, the steps are moved around, so that the cycle goes test/design/code. But this is not how human beings create a performance. Instead of design/code/test, artists have a cycle of practice/rehearse/perform. Since human beings have been creating performances since p...

The Software Artists: Citations for Part Two

Citations for the section “Pedagogy and Practice in Software and in Guitar” Some of Joel Spolsky's writing about working with young software creators is at these links: http://www.joelonsoftware.com/articles/CollegeAdvice.html http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html http://www.joelonsoftware.com/items/2008/01/08.html Thoughtworks University had been called “Thoughtworks Boot Camp” until the author had to explain the term upon crossing an international border in 2005. A description of Thoughtworks University is here: http://www.thoughtworks.com/work-for-us/TWU.html Some representative citations from IEEE publications about poor software education are: http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/8994/28540/01276501.pdf http://stevemcconnell.com/ieeesoftware/eic12.htm http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/mags/so/&toc=comp/mags/so/2002/05/s5toc.xml&DOI=10.1109/MS.2002.1032848 The citation from CrossTalk is here: ...

The Software Artists: Pedagogy and Practic in Software and in Guitar

Very few people graduating with a college degree in Computer Science or Information Technology are prepared to write production code or to test production software. Companies that hire recent college graduates often have special training for such employees before they may work on actual projects. Joel Spolsky has written extensively about how his company Fog Creek trains young software workers. Publications of the IEEE mention the issue frequently. The well-regarded software consultancy Thoughtworks has “Thoughtworks University”, a six-week “boot camp” style training event for new hires hosted in Bangalore. Even the journal CrossTalk: The Journal of Defense Software Engineering says: It is our view that Computer Science (CS) education is neglecting basic skills, in particular in the areas of programming and formal methods. The Craft of Software Besides the mentorship approach Spolsky takes and the “boot camp” approach Thoughtworks takes, Robert C. (Uncle Bob) Martin, Pete McBr...

The Software Artists: Citations for Part One

Many of the ideas in this paper were first presented at the Austin Workshop on Test Automation in early 2007. The substance of the talks appeared on the author's blog shortly afterward: http://chrismcmahonsblog.blogspot.com/2007/01/craft-and- discipline-larks-tongues-in.html Most of the New Criticism and Structuralist citations are from Wikipedia, except: Child Jr., William C. 2000 Monroe Beardsley's Three Criteria for Aesthetic Value: A Neglected Resource in the Evaluation of Recent Music. Journal of Aesthetic Education, Vol 34, No. 2 (Summer 2000), pp 49-63 doi:10.2307/3333576 The author did not know that unity/variety/intensity had been first presented in music criticism until reading this article. The author also referred to Adams, Hazard, Searle, Leroy (eds.) 1986 Critical Theory Since 1965 University Presses of Florida/Florida State University Press for background information. Bruce Schneier on “security theater”: http://www.schneier.com/blog/archives/2006/08/terrori...

The Software Artists: The Value of Software

Previous: The Software Artists: Explanation Previous: The Software Artists: Introduction Philosophy of Art and the Value of Software Manufactured goods generally have a clear relationship between cost, price, and value. In software, as in art, the value of the work is more often completely unrelated to cost and price. Operating systems provide a great example: the Windows audience for the most part must use Windows regardless of cost or price. The Mac OSX audience generally chooses to use OSX regardless of price, and often explicitly because of the aesthetic experience of using OSX. Linux has no cost at all, and a price that varies wildly, and it also has a dedicated audience. The value of software, like the value of an artistic performance, lies in the ability of the software to attract and keep an audience. The software industry would benefit immensely by turning the tools of artistic criticism on software. The 20th century in particular saw a great proliferation of critical the...

The Software Artists: Introduction

The people who create software are not factory workers. Nor are they engineers, in the sense that engineering is the “practical application of the knowledge of pure sciences, as physics or chemistry”. But the software industry continues to treat software workers as if they were factory workers or construction workers. The software industry also attempts to value software as if it were a manufactured product. But making software is a fundamentally creative process, more similar to performance than to manufacturing. Like art and music, software has an audience that is involved in a personal way with the software. And the people who create software are much more like performers than they are like construction workers. If it is true that software is much more like art than it is like manufacturing, then the tools of artistic criticism should be useful for evaluating software. It should also be possible to apply successful approaches to art or music pedagogy to software pedagogy. Furt...

The Software Artists: Explanation

I wrote a paper some time ago to submit to the Conference of the Association for Software Testing , but the paper was not accepted for the program. I'm on the waiting list if another presenter drops out, which seems unlikely at this point. I think it is likely that my paper was not accepted at CAST was because it is somewhat similar to a presentation from Jonathan Kohl and Michael Bolton , two of the best testers in the universe. I intend to publish my paper here on my blog in the hopes that Jonathan and Michael and other Software Artists will have access to as much relevant information as possible to support their position. I think that one enormous reason that few people take software-as-artistic-practice seriously is because of a perceived lack of practical application: manufacturing and engineering provide venerable examples of measurement tools, education curricula, and market strategy-- assuming that you believe that software is an engineered and manufactured product....