“Angelo, why is that angel mooning god?” Dave Thomas’s Keynote
Keynote Dave Thomas:
Today’s keynote was by Dave Thomas who as David. A. Black said needs no introduction. That talk was titled “Art and Software Engineering” and contained gems of wisdom. It successfully drew analogies between art/artists & poets and software/programmers and had some hilarious metaphors from the art-world. Stories about being “off-by-one robotic cameras”, “poets who dislike people” and “angels mooning god”. Dave showed that these art-metaphors applied equally to the programming-world and that programmers should be learning from them. So what did I get out of the talk? I will try to summarize some of the talk in dot-point
- Know who this man is (or live in shame)
- Read his book (again if you haven’t recently)
- Software development is a creative process (like the creative arts), since software development unlike other engineering activities is not constrained by the physical medium
- Just as authors overcome writer’s block by beginning the writing process by quickly putting down thoughts on paper and throwing them away if they are unhappy with them, as programmers we should be experimenting, creating prototypes and tracer-bullets and be throwing some these away as we home-in on what we are happy with
- Artists when working on large/complex paintings divide up the panting into smaller self contained paintings (e.g. Sistine Chapel Ceiling) with minimal coupling. Here Dave gave the hysterical analogy of a client wanting to change part of Sistine Chapel because they were unhappy with the portrayal of an “angel mooning god”.
- There is a difference between portraits and pictures. Portraits require a deeper knowledge of the subject and artists who draw them need to understand their subject at a much deeper level than someone just drawing a mediocre picture. Similarly the programmer needs to understand their clients underlying needs. Here Dave gave the example of NASA and the pen manufacturer – where the product designers understood the needs of the client better than the client themselves. So the upshot of the story was: Don’t listen to your client! But rather work with them to understand their underlying needs
- without art there is no engineering
- without engineering there is no art
- Take pride in your work
- Ruby is your Paint; Rails is your Canvas; Use them and create something beautiful
Use this link to trackback from your own site.