<?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 : agile</title><link>http://devlicio.us/blogs/vinull/archive/tags/agile/default.aspx</link><description>Tags: agile</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>IncaBlocks Released, Thanks AgileZen and Kanban!</title><link>http://devlicio.us/blogs/vinull/archive/2009/10/14/incablocks-released-thanks-agilezen-and-kanban.aspx</link><pubDate>Wed, 14 Oct 2009 15:21:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:52665</guid><dc:creator>Michael C. Neel</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicio.us/blogs/vinull/rsscomments.aspx?PostID=52665</wfw:commentRss><comments>http://devlicio.us/blogs/vinull/archive/2009/10/14/incablocks-released-thanks-agilezen-and-kanban.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d8025855032f"&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="Box_cover" alt="Box_cover" src="http://www.vinull.com/Assets/Images/windowslivewriterincablocksreleasedfuncworksfirstxnagame_13492box_cover_0380a2b540504cb3b3302bc8609fbada.jpg" width="204" align="left" border="0" height="244" /&gt;&lt;/a&gt;&lt;a href="http://feelthefunc.com"&gt;FuncWorks, LLC&lt;/a&gt;&amp;rsquo;s first XNA game, &lt;a href="http://marketplace.xbox.com/en-US/games/media/66acd000-77fe-1000-9115-d8025855032f"&gt;IncaBlocks&lt;/a&gt;, is now available on Xbox Live Indie Games (XBLIG)!&lt;/p&gt;
&lt;p&gt;This game represents the many hours and weekends &lt;a href="http://dylanwolf.com"&gt;Dylan&lt;/a&gt;, &lt;a href="http://finsandstems.com"&gt;Cicelie&lt;/a&gt; and myself worked the past several months.&amp;nbsp; Looking back at SVN, I started this as a side project to &lt;a href="http://www.youtube.com/watch?v=RhZ03RUj_NE"&gt;ROCS&lt;/a&gt; around July 30th.&amp;nbsp; Shortly thereafter we decided to put ROCS on hold and make IncaBlocks the first game we would release.&amp;nbsp; Keeping with our belief in over delivering, we priced IncaBlocks at 80 Points ($1.00). &lt;/p&gt;
&lt;p&gt;Game play is pretty simple &amp;ndash; stack blocks following some rules, and the one with the most blocks on top at the end wins.&amp;nbsp; I recorded a short video of a game to help everyone check it out (there is also a free trial version on Xbox):&lt;/p&gt;
&lt;p align="center"&gt;
&lt;object width="580" height="360"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/Zg4OAck7rAA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;border=1" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/Zg4OAck7rAA&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="360"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;IncaBlocks was also the first project that we made heavy use of &lt;a href="http://en.wikipedia.org/wiki/Kanban"&gt;Kanban&lt;/a&gt; and &lt;a href="http://agilezen.com/"&gt;AgileZen&lt;/a&gt;.&amp;nbsp; Kanban is an idea I&amp;rsquo;ve loved in theory for a while, but hadn&amp;rsquo;t had the chance to use it on a real project (meaning a project with a deadline).&amp;nbsp; We used both the online board at AgileZen, and a real board in my office.&amp;nbsp; &lt;a href="http://kohari.org/"&gt;Nate&lt;/a&gt; and &lt;a href="http://nikibeth.com/"&gt;Nicole&lt;/a&gt; have done an awesome job with AgileZen, and in my not-so-humble opinion have a better project management system than &lt;a href="http://basecamphq.com/"&gt;Basecamp&lt;/a&gt;.&amp;nbsp; As with &lt;a href="http://ninject.org/"&gt;Ninject&lt;/a&gt;, Nate has a knack for stripping away the excess and leaving only the good parts.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;That said, you cannot beat the feeling of a physical Kanban board.&amp;nbsp; Moving a work item physically through the project flow gives one a great sense of accomplishment.&amp;nbsp; We stuck to two basic rules of the board: first, you can only have one task in progress at a time, and second, you must take a task, once started, all the way to done.&amp;nbsp; I think at least 3 times I &amp;ldquo;reset&amp;rdquo; the board and moved tasks around in the ready columns to change priority.&amp;nbsp; This allowed us to keep a high velocity while reacting to change (considering this was our first XNA game to be release, we had many changes as a result of just learning XNA and XBLIG worked).&amp;nbsp; While we pruned the done items from AgileZen, we left them all up on the wall:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.vinull.com/Assets/Images/windowslivewriterincablocksreleasedfuncworksfirstxnagame_13492dscf6419.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Don&amp;#39;t you have a Fender Stat in your office too?" alt="Don&amp;#39;t you have a Fender Stat in your office too?" src="http://www.vinull.com/Assets/Images/windowslivewriterincablocksreleasedfuncworksfirstxnagame_13492dscf6419_thumb.jpg" width="644" border="0" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We already have ideas for our next games, though I will have to take a break from game development while I work on an ebook for &lt;a href="http://www.wrox.com"&gt;Wrox&lt;/a&gt;.&amp;nbsp; The working title is &amp;ldquo;XNA 3D Primer&amp;rdquo;, and will be a crash course in 3D game programming.&amp;nbsp; I also plan to do some post mortem posts on IncaBlocks and the lessons we learned along the way.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=52665" 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/agile/default.aspx">agile</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/xna/default.aspx">xna</category><category domain="http://devlicio.us/blogs/vinull/archive/tags/kanban/default.aspx">kanban</category></item><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></channel></rss>