<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devlicio.us/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ViNull, Off the Record : orm</title><link>http://devlicio.us/blogs/vinull/archive/tags/orm/default.aspx</link><description>Tags: orm</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Being a Duct Tape Programmer</title><link>http://devlicio.us/blogs/vinull/archive/2009/09/24/being-a-duct-tape-programmer.aspx</link><pubDate>Thu, 24 Sep 2009 13:40:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:51684</guid><dc:creator>Michael C. Neel</dc:creator><slash:comments>26</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicio.us/blogs/vinull/rsscomments.aspx?PostID=51684</wfw:commentRss><comments>http://devlicio.us/blogs/vinull/archive/2009/09/24/being-a-duct-tape-programmer.aspx#comments</comments><description>&lt;p&gt;&lt;a title="20071216 - Beavis - 144-4470-diptych-144-4473 - looking through the hole by Rev. Xanatos Satanicos Bombasticos (ClintJCL)" href="http://www.flickr.com/photos/clintjcl/2664775774/in/photostream/"&gt;&lt;img style="border-right-width:0px;margin:0px 10px 10px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" alt="image" src="http://devlicio.us/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vinull/image_5F00_56AC0CB0.png" align="left" border="0" width="223" height="244" /&gt;&lt;/a&gt;Things I&amp;rsquo;ve said in a session before:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Friends don&amp;rsquo;t let friends ORM&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;ORM is a pattern, not a framework&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I like typed datasets, and I cannot lie&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not that I&amp;rsquo;m anti-ORM, or believe popular ones like NHibernate, Linq2Sql, and EF are useless (okay, maybe EF is).&amp;nbsp; It&amp;rsquo;s the mindset that you need an ORM Framework bloating your app from the start.&amp;nbsp; It&amp;rsquo;s the common:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Hey, new project!&amp;rdquo; &amp;ldquo;Awesome, which ORM should we use!&amp;rdquo; &amp;ndash; WTF!?!&lt;/p&gt;
&lt;p&gt;While I&amp;rsquo;m busy loosing friends and respect, I&amp;rsquo;ll state this is an &amp;ldquo;anti-agile pattern&amp;rdquo; &amp;ndash; if you were truly agile and doing iterative development, there isn&amp;rsquo;t a whole bunch of plumbing to write at once.&amp;nbsp; SQL isn&amp;rsquo;t hard, and is too important to performance to let a tool codegen it for you.&amp;nbsp; ORM frameworks encourage data-driven design, leading to a database friendly UX. &lt;/p&gt;
&lt;p&gt;Last night I read &lt;a href="http://www.joelonsoftware.com/items/2009/09/23.html"&gt;The Duct Tape Programmer by Joel Spolsky&lt;/a&gt; and added &lt;a href="http://www.amazon.com/gp/product/1430219483?ie=UTF8&amp;amp;tag=joelonsoftware&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1430219483"&gt;Coders at Work&lt;/a&gt; to my Amazon queue (no Kindle edition, so they missed an impulse sale).&amp;nbsp; I love this post and the description of a Duct Tape Programmer.&amp;nbsp; I hate the term pragmatic &amp;ndash; the word itself sounds academic, and I don&amp;rsquo;t think a pragmatist (another suspicious term) came up with it.&amp;nbsp; I think the academics made up the word cause saying short sighted made them look bad.&amp;nbsp; That&amp;rsquo;s really what many mean when they say &amp;ldquo;pragmatic&amp;rdquo; &amp;ndash; &lt;i&gt;Oh sure, he got the app out, but his code is awful, and he has tons of technical debt, and it will all have to be rewritten, and how far do you think an app like that can scale without an Enterprise Service Bus?, and I bet there isn&amp;rsquo;t even an Inversion of Control framework, and I know he doesn&amp;rsquo;t have good test coverage and any tests he does have are only integration tests, and...&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;The Duct Tape Programmer is driven by a different force than the Academic.&amp;nbsp; The Duct Tape Programmer is looking at the release date, and only values stuff that gets the app working on that date.&amp;nbsp; She would rather have 10 meetings with users than one meeting with a Systems Architect.&amp;nbsp; She would tell you KISS when you asked if you should extract an interface for a single widget.&amp;nbsp; She lives Agile and Lean on a subconscious level, because to her it&amp;rsquo;s just common sense.&lt;/p&gt;
&lt;p&gt;Joel ended his post saying you can&amp;rsquo;t just be a Duct Tape Programmer.&amp;nbsp; I&amp;rsquo;ll add to this - you can become one.&amp;nbsp; Move your focus off the code to the app, and more importantly, the user.&amp;nbsp; Expand your knowledge base horizontally &amp;ndash; learn multiple languages, frameworks, systems.&amp;nbsp; Do some raw socket programming, and write a graphics shader.&amp;nbsp; Install Linux on a Sparc 10.&amp;nbsp; Make an app for your mobile phone.&amp;nbsp; Question the accepted wisdom, and be an old school hacker.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m off now to convince Cicelie (&lt;a href="http://DragonTee.com"&gt;DragonTee.com&lt;/a&gt;) to design a &amp;ldquo;Duct Tape Programmer&amp;rdquo; t-shirt, in the meantime you can tell me why I&amp;rsquo;m wrong below.&amp;nbsp; Don&amp;rsquo;t be shy, I&amp;rsquo;m used to it!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=51684" width="1" height="1"&gt;</description><category domain="http://devlicio.us/blogs/vinull/archive/tags/opinion/default.aspx">opinion</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/orm/default.aspx">orm</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/agile/default.aspx">agile</category></item><item><title>ORM talk at CodeStock Open Spaces</title><link>http://devlicio.us/blogs/vinull/archive/2008/08/14/orm-talk-at-codestock-open-spaces.aspx</link><pubDate>Fri, 15 Aug 2008 02:18:29 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:41846</guid><dc:creator>Michael C. Neel</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicio.us/blogs/vinull/rsscomments.aspx?PostID=41846</wfw:commentRss><comments>http://devlicio.us/blogs/vinull/archive/2008/08/14/orm-talk-at-codestock-open-spaces.aspx#comments</comments><description>&lt;p&gt;One thing I&amp;#39;m hearing from a lot of people who attended &lt;a href="http://codestock.org/"&gt;CodeStock&lt;/a&gt; last Saturday is how well the open spaces &amp;quot;track&amp;quot; was.&amp;#160; This is one area I can&amp;#39;t take any credit for, my only role in planning open spaces was requesting a room from the college; all credit for success goes to &lt;a href="http://netcave.org/"&gt;Alan Stevens&lt;/a&gt; the facilitator.&lt;/p&gt;  &lt;p&gt;An Open Spaces conference is explained as the &amp;quot;un-conference&amp;quot; - a very hippy, free flowing conference where the sessions self organize and the topics are chosen by the attendees.&amp;#160; This in contrast to a traditional conference of set speakers and topics.&amp;#160; Each have an advantage; an open space isn&amp;#39;t the best place to get a first look at a technology but once you&amp;#39;ve used a technology an open space is a great place to discuss with others how it should be used.&lt;/p&gt;  &lt;p&gt;Rather than choose one format, CodeStock featured both.&amp;#160; This worked out better than I could have imagined because it mixed two camps - the open space people hung out with the &amp;quot;straight laced&amp;quot; conference people.&amp;#160; This created a stage for some great conversations with all views represented and an exchange of ideas can commence.&amp;#160; &lt;a href="http://morewally.com/"&gt;Wally McClure&lt;/a&gt; was breaking in a new Flip, and managed to capture an ORM discussion for &lt;a href="http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/08/15/asp-net-podcast-show-122-codestock-openspaces-discussion-regarding-orm.aspx"&gt;the latest ASP.NET Podcast&lt;/a&gt; - I would have &lt;a href="http://www.vinull.com/Post/2008/06/27/youll-have-my-sql-when-you-pry-my-keybo.aspx"&gt;loved&lt;/a&gt; to have been there, but I was &lt;a href="http://www.vinull.com/Post/2008/08/11/poststock.aspx"&gt;fighting gnats&lt;/a&gt; at the time.&lt;/p&gt;  &lt;p align="center"&gt;&lt;embed name="MediaPlayer" src="http://www.aspnetpodcast.com/VideoFiles/ASPNETPodcast20080813-CodeStockOpenSpacesORM.wmv" width="320" height="240" type="application/x-mplayer2" /&gt; &lt;/p&gt;  &lt;p align="center"&gt;More video formats available at &lt;a href="http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/08/15/asp-net-podcast-show-122-codestock-openspaces-discussion-regarding-orm.aspx"&gt;ASP.NET Podcast&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=41846" width="1" height="1"&gt;</description><category domain="http://devlicio.us/blogs/vinull/archive/tags/Featured/default.aspx">Featured</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/session/default.aspx">session</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/conference/default.aspx">conference</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/orm/default.aspx">orm</category></item></channel></rss>