Nick Sieger: RailsConf Europe: (Prag-) Dave Thomas tag:blog.nicksieger.com,2005:Typo Typo 2010-11-23T01:07:42+00:00 thoran urn:uuid:20542748-fe8b-41a1-a810-c9ff4f609fbb 2007-09-25T00:25:42+00:00 2010-11-23T01:07:42+00:00 Comment on RailsConf Europe: (Prag-) Dave Thomas by thoran <p>I have long considered programming to be a craft and did so even while the attempt was being made to indoctrinate me with the notion that it was science&#46; </p> <p>The nexus of engineering and art is craft&#46; </p> <p>I&#8217;d lost interest in programming until it was clear that the theoreticians were increasingly being undermined in favour of that which works and that my approach is not undervalued&#46; </p> <p>What works is people who have a love of what they do and develop their craft; that little bit of engineering and that little bit of art&#46; </p> steven urn:uuid:7f89210d-814f-4243-815a-78e113ec4ebd 2007-09-23T12:41:41+00:00 2010-11-23T01:07:42+00:00 Comment on RailsConf Europe: (Prag-) Dave Thomas by steven <p>that sistine chapel comment &#45; d&#8217;you possibly have any more info on that?</p> sri urn:uuid:7da843ef-c246-4fb9-8f55-4f632dde6520 2007-09-19T06:36:43+00:00 2010-11-23T01:07:41+00:00 Comment on RailsConf Europe: (Prag-) Dave Thomas by sri <p>Thank you, thanks you, thanks you for this information&#46;</p> Nick Sieger urn:uuid:b558ff15-96dd-4ee7-9fca-813639290095 2007-09-18T08:08:34+00:00 2010-11-22T21:06:39+00:00 RailsConf Europe: (Prag-) Dave Thomas <p><em>(Written from Dave&#8217;s perspective, in the first person, but paraphrased)</em></p> <p>What is a relevant topic in Germany? Engineering&#46; Except there&#8217;s no such thing as software engineering&#46; The software equivalent of building a bridge is taking a whole lot of dirt that fills in a hole&#46;</p> <p>So what makes engineering good? I look for elegance and beauty&#46;</p> <p>Fred Brooks &#45;&#45; Mythical Man&#45;Month&#46; Not a single thing in software engineering has changed in the 30 years since the book was written&#46; Go out and order it tonight if you haven&#8217;t read it&#46;</p> <p>We are privileged, because we get to start with nothing&#46; Anything we can conceive of, we can create&#46; And so, we suffer the same problems as poets suffer&#46;</p> <p>Writer&#8217;s block: a blank page standing in the way of getting started&#46; Painting: a blank canvas without structure or form&#46; Software project: a blank editor buffer&#46;</p> <p>Leonardo was commissioned to build a statue&#46; But, having never bronzed in his life, he picked up a scrap of paper and drew sketches&#46; He&#8217;s prototyping on paper, but in reality he&#8217;s prototyping in his mind, getting his brain thinking about what he&#8217;s doing&#46;</p> <p>We could do more of this experimentation&#46; Whiteboard, index cards, we eschew them for scaffolding or other crutches&#46; But we could think of more ideas if we got away from the familiar and tossed around new, fresh ideas&#46;</p> <p>The idea that we sit down and start coding the application is crazy&#46; We don&#8217;t know what it&#8217;s supposed to be&#46; Why should we fool ourselves into thinking that this works?</p> <p>Artists draw cartoons, often a fully rendered version of a painting&#46; If they don&#8217;t like the cartoon, it survives, but the final product probably takes a different form&#46;</p> <p>With Rails we can do rapid end&#45;to&#45;end prototyping&#46; Scaffolding helps with this, and it probably won&#8217;t make it into the end result&#46;</p> <p>So start anyway, and be prepared to throw it away&#46; Write tests, use them as tracer bullets&#46; And act on worry&#46; Listen to the inner voice that tells you when something is wrong&#46;</p> <p>Sistine Chapel: brilliant example of modularization&#46; It shows you how to conceive of doing a huge project without the fret of focusing on the entire thing&#46;</p> <p>Another example: comic books&#46; You&#8217;re splitting up the product into time slices&#46; Limit how much you do, and leave open the possibility of continuing at a later day&#46; Know when to stop&#46;</p> <p>Satisfy the customer&#46; Compare portraits to pictures&#46; The best portraits, while not always faithful to the real image of the subject, still achieve the goal of satisfying the customer&#46;</p> <p>There is art in engineering, and engineering in art&#46; Neither is an either/or proposition&#46; Art and engineering are mutually supportive, in that you can&#8217;t have one without another&#46;</p> <p>With Ruby and Rails, we have a responsibility to uphold&#46; Rails is a canvas, so be an artist&#46; Create something great&#46; But we also should create something beautiful&#46; Sign your name by your work, and take pride in it&#46;</p>