<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>the 'bee log</title><link>http://codebetter.com/blogs/david_laribee/default.aspx</link><description>Dave Laribee's thoughts on software development.</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><geo:lat>40.727093</geo:lat><geo:long>-73.978644</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/thebeelog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Ubiquitous Language in Product Development</title><link>http://feedproxy.google.com/~r/thebeelog/~3/BkPtbFlfYJk/ubiquitous-language-in-product-development.aspx</link><pubDate>Wed, 24 Jun 2009 21:15:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249270</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=249270</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2009/06/24/ubiquitous-language-in-product-development.aspx#comments</comments><description>&lt;p&gt;Hi there. &lt;/p&gt;
&lt;p&gt;I got this question from a fellow named Martin today: &lt;/p&gt;
&lt;blockquote&gt;&lt;i&gt;Real simple ... most of the discussion on DDD surrounds the design in terms of the ubiquitous language.&lt;br /&gt;&lt;br /&gt;
What if you are developing a product that is designed to be a tool for
a certain industry, say marketing, but the processes and terminology
all differ according to the marketing company that is in discussion.&lt;br /&gt;&lt;br /&gt;
To be specific, one company may use the term Client and the other Customer?&lt;br /&gt;&lt;br /&gt;
How do you accommodate the difference in terms? &amp;nbsp;Do you code to a common denominator or do you just pick one and go?&lt;/i&gt;&lt;/blockquote&gt;
&lt;p&gt;Great question; in product development we&amp;#39;re often trying to make a general solution that solves the common problems of customers that have different languages. There&amp;#39;s no way around that.&lt;/p&gt;
&lt;p&gt;First, find those elements that are universal. Question if there&amp;#39;s really a need for all of this customization or if your clients are OK with calling a client a customer. Having a ubiquitous language that can be used end-to-end, from developer to end user, is extremely valuable and kind of the original point. &lt;/p&gt;
&lt;p&gt;For variable terms you should, in my estimation and experience, form an &lt;i&gt;internal ubiquitous language&lt;/i&gt; that&amp;#39;s adhered to across product management and software development. In cases like this, you&amp;#39;ll can potentially also apply DDD guidance to a generic subdomain that handles terminology. This domain usually goes by the name &amp;quot;localization,&amp;quot; only slightly extended to allow clients to change terminology. This is exactly how we handle the differences in terminology (silly) between agile methods like Scrum and XP in our product at VersionOne. We simply have a set of components that handle the change between backlog item and story, iteration and sprint, etc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249270" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=BkPtbFlfYJk:PoC6pUhMUvk:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=BkPtbFlfYJk:PoC6pUhMUvk:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=BkPtbFlfYJk:PoC6pUhMUvk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=BkPtbFlfYJk:PoC6pUhMUvk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=BkPtbFlfYJk:PoC6pUhMUvk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=BkPtbFlfYJk:PoC6pUhMUvk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/BkPtbFlfYJk" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/DDD/default.aspx">DDD</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/product+development/default.aspx">product development</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2009/06/24/ubiquitous-language-in-product-development.aspx</feedburner:origLink></item><item><title>Announcing the Lean Kanban Conference</title><link>http://feedproxy.google.com/~r/thebeelog/~3/ZfItfpzmXSM/announcing-the-lean-kanban-conference.aspx</link><pubDate>Tue, 06 Jan 2009 14:44:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:186982</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=186982</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2009/01/06/announcing-the-lean-kanban-conference.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve been working with &lt;a href="http://www.agilemanagement.net/Articles/Weblog/blog.html"&gt;David Anderson&lt;/a&gt; and crew to produce the &lt;a href="http://leankanbanconference.com/"&gt;Lean Kanban Conference&lt;/a&gt; in Miami, February 18th-20th. &lt;/p&gt;&lt;p&gt;There are a number of great speakers and some folks that have been practicing Kanban and flexing Agile methodologies with Lean thinking for some time. For my part, I&amp;#39;m going to do a talk about introducing pull systems at the edges of an Agile team (based on experiences at VersionOne), JIT&amp;#39;ing retrospectives, and rethinking software development activities and practices -- architectures, continuous integration, source control -- through the Lean lens, which would have us release regularly (on a feature basis, in fact).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you&amp;#39;re interested in Lean Software Development and Kanban, this is &lt;u&gt;the&lt;/u&gt; place to be. &lt;a href="http://leankanbanconference.com/"&gt;Register now!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=186982" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZfItfpzmXSM:aZN1Bxrl82E:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZfItfpzmXSM:aZN1Bxrl82E:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZfItfpzmXSM:aZN1Bxrl82E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=ZfItfpzmXSM:aZN1Bxrl82E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZfItfpzmXSM:aZN1Bxrl82E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=ZfItfpzmXSM:aZN1Bxrl82E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/ZfItfpzmXSM" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/conferences/default.aspx">conferences</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/lean/default.aspx">lean</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/housekeeping/default.aspx">housekeeping</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/kanban/default.aspx">kanban</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2009/01/06/announcing-the-lean-kanban-conference.aspx</feedburner:origLink></item><item><title>Spicing Up Your Standup</title><link>http://feedproxy.google.com/~r/thebeelog/~3/CPpjqHYa6WM/spicing-up-your-standup.aspx</link><pubDate>Mon, 17 Nov 2008 01:58:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:185103</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=185103</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/11/16/spicing-up-your-standup.aspx#comments</comments><description>&lt;p&gt;&lt;b&gt;Tags:&lt;/b&gt; &lt;a href="http://www.lukemelia.com/devblog/"&gt;luke-melia&lt;/a&gt;&lt;a href="http://www.weplay.com/blog/the-daily-stand-up"&gt;-is-awesome&lt;/a&gt;, funny&lt;/p&gt;

&lt;p&gt;
&lt;object height="344" width="425"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/SUcmpZ8hzKA&amp;amp;hl=en&amp;amp;fs=1"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;embed src="http://www.youtube.com/v/SUcmpZ8hzKA&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" height="344" width="425"&gt;&lt;/object&gt;
&lt;/p&gt;

&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=185103" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CPpjqHYa6WM:58YtL9URf9M:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CPpjqHYa6WM:58YtL9URf9M:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CPpjqHYa6WM:58YtL9URf9M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=CPpjqHYa6WM:58YtL9URf9M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CPpjqHYa6WM:58YtL9URf9M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=CPpjqHYa6WM:58YtL9URf9M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/CPpjqHYa6WM" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/Agile/default.aspx">Agile</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/stand-up/default.aspx">stand-up</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/11/16/spicing-up-your-standup.aspx</feedburner:origLink></item><item><title>Ayende on Advanced NHibernate</title><link>http://feedproxy.google.com/~r/thebeelog/~3/xkRh46cgUus/ayende-on-advanced-nhibernate.aspx</link><pubDate>Thu, 13 Nov 2008 14:02:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184983</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>24</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184983</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/11/13/ayende-on-advanced-nhibernate.aspx#comments</comments><description>&lt;p&gt;There&amp;#39;s this cat called Ayende that&amp;#39;s been around the NHibernate block (20 or 30 times). &lt;a href="http://kaizenconf.pbwiki.com/"&gt;In Austin&lt;/a&gt;, he did a 3-hour workshop detailing the advanced features of the tool. If you weren&amp;#39;t there, sorry you missed it.&lt;/p&gt;
&lt;p&gt;Oh wait! You&amp;#39;re in luck; someone recorded it! The audio is a little quiet so be sure to, as the kids say, &amp;quot;pump up the volume.&amp;quot;&lt;/p&gt;
&lt;p&gt;Enjoy...&lt;/p&gt;
&lt;p&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="viddler_d579ac3f" height="351" width="545"&gt;&lt;param name="movie" value="http://www.viddler.com/player/d579ac3f/"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.viddler.com/player/d579ac3f/" type="application/x-shockwave-flash" allowscriptaccess="always" name="viddler_d579ac3f" height="351" width="545"&gt;&lt;/object&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184983" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=xkRh46cgUus:o3P3L-umTeM:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=xkRh46cgUus:o3P3L-umTeM:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=xkRh46cgUus:o3P3L-umTeM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=xkRh46cgUus:o3P3L-umTeM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=xkRh46cgUus:o3P3L-umTeM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=xkRh46cgUus:o3P3L-umTeM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/xkRh46cgUus" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/NHibernate/default.aspx">NHibernate</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/conferences/default.aspx">conferences</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/video/default.aspx">video</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/11/13/ayende-on-advanced-nhibernate.aspx</feedburner:origLink></item><item><title>Designing the Team Room, Take 2</title><link>http://feedproxy.google.com/~r/thebeelog/~3/illYVgybeFM/designing-the-team-room-take-2.aspx</link><pubDate>Thu, 06 Nov 2008 15:19:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184700</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184700</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/11/06/designing-the-team-room-take-2.aspx#comments</comments><description>&lt;p&gt;Based on the comments, a couple of clarifications on my &amp;quot;&lt;a href="http://codebetter.com/blogs/david_laribee/archive/2008/11/05/designing-the-team-room.aspx"&gt;Designing the Team Room&lt;/a&gt;&amp;quot; post from yesterday.&lt;/p&gt;&lt;p&gt;The text at the bottom certainly does have contradictions and conflicts. That&amp;#39;s by design. We wanted to see what people came up with, what ideas latched on to &amp;quot;productivity&amp;quot; versus &amp;quot;collaboration.&amp;quot; The opening is simply for context. People that are up on Theory of Constraints will realize that defining conflicts and finding solutions based on root cause is, well, kind of the whole point.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I also neglected to detail the mechanics used for the design storm.&lt;/p&gt;&lt;p&gt;1. Each person tore of a sheet from a 3M sticky easel pad, grabbed a marker, and found a spot on the wall.&amp;nbsp; &lt;br /&gt;2. We had twelve (12) people stand in the circle.&lt;br /&gt;3. I read the context statement I posted yesterday.&lt;br /&gt;4. For 5 minutes, each person made a &amp;quot;design.&amp;quot; Some of these were visual, some textual, some floor plans, etc.&lt;br /&gt;5. We then counted off by threes to form a total of four groups (ones in one group, twos in another).&lt;br /&gt;6. Each group member (within their group) had 1 minute to pitch their ideas.&lt;br /&gt;7. After the individual pitches, we took another 5 minutes to synthesis a cohesive design.&lt;br /&gt;8. The cohesive designs were presented to the entire group.&lt;/p&gt;&lt;p&gt;What was interesting is that this process took under 30 minutes and we got a little closer to consensus and got some &lt;i&gt;really&lt;/i&gt; good ideas. And that was the point... &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184700" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=illYVgybeFM:DOZ00qYQaW8:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=illYVgybeFM:DOZ00qYQaW8:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=illYVgybeFM:DOZ00qYQaW8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=illYVgybeFM:DOZ00qYQaW8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=illYVgybeFM:DOZ00qYQaW8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=illYVgybeFM:DOZ00qYQaW8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/illYVgybeFM" height="1" width="1"/&gt;</description><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/11/06/designing-the-team-room-take-2.aspx</feedburner:origLink></item><item><title>Designing the Team Room</title><link>http://feedproxy.google.com/~r/thebeelog/~3/ZeYS_wewm4I/designing-the-team-room.aspx</link><pubDate>Wed, 05 Nov 2008 18:53:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184623</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>13</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184623</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/11/05/designing-the-team-room.aspx#comments</comments><description>&lt;p&gt;At &lt;a href="http://www.versionone.com/"&gt;VersionOne&lt;/a&gt;, we just got the opportunity to move to a new team room. It&amp;#39;s far superior in terms of size, noise level, and natural light. It&amp;#39;s a very cool, very lofty kind of space. To get things started, we applied the &amp;quot;design storm&amp;quot; exercise which is &lt;a href="http://kaizenconf.pbwiki.com/Concurrent%20Set-Based%20Engineering"&gt;a form of concurrent set-based design&lt;/a&gt;, an evolution of the &lt;a href="http://en.wikipedia.org/wiki/Charrette"&gt;old school architectural charette&lt;/a&gt;. Special thanks to &lt;a href="http://twitter.com/uxdesignermike"&gt;@uxdesignermike&lt;/a&gt; who turned us on to &lt;a href="http://kaizenconf.pbwiki.com/Concurrent%20Set-Based%20Engineering"&gt;this tool at KaizenConf&lt;/a&gt;. Mike, for the unaware, is awesome.&lt;/p&gt;&lt;p&gt;You&amp;#39;ll find the opening I used to kick the session off below. I&amp;#39;ll be sure to post a few follow up shots as we get our space together in the coming days.&lt;/p&gt;&lt;p&gt;#&lt;/p&gt;&lt;p&gt;In moving to a new, more-ideal space we have an unusual opportunity to optimize for collaboration, productivity, and fun. To get this process and involve the numerous smart and opinionated members of the V1 development team, we’d like to engage in a process called “the design storm.”&lt;br /&gt;&lt;br /&gt;We have a few goals and constraints going into this:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;We want to keep noise at an acceptable level.&lt;/li&gt;&lt;li&gt;We want an intensely collaborative environment.&lt;/li&gt;&lt;li&gt;We want the space to be flexible and permit promiscuous pairing.&lt;/li&gt;&lt;li&gt;We need spaces for breakouts and loud meetings.&lt;/li&gt;&lt;li&gt;We want stand-ups to remain unbroken (no walkthroughs).&lt;/li&gt;&lt;li&gt;We want to pay attention to traffic patterns.&lt;/li&gt;&lt;li&gt;We want to change it up every so often. Take that how you will.&lt;/li&gt;&lt;li&gt;We want our continuous improvement efforts to be highly visible and easily accessible.&lt;/li&gt;&lt;li&gt;We want the team to sit in the same area together (i.e. no cave dwellers).&lt;/li&gt;&lt;li&gt;We want to leverage natural light the best we can.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I’ve hinted at this, but our main motivations are:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Collaboration – proximity promotes knowledge sharing.&lt;/li&gt;&lt;li&gt;Creativity – ours is a creative job. it should be easy to start designing stuff.&lt;/li&gt;&lt;li&gt;Productivity – it’s easy to focus and get stuff done.&lt;/li&gt;&lt;li&gt;Awareness – looking at the walls yields information.&lt;/li&gt;&lt;li&gt;A pleasant working space is, well, pleasant.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Now, without pre-designing the space, does anyone have anything else?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184623" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZeYS_wewm4I:w8KjnLPjzRg:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZeYS_wewm4I:w8KjnLPjzRg:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZeYS_wewm4I:w8KjnLPjzRg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=ZeYS_wewm4I:w8KjnLPjzRg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=ZeYS_wewm4I:w8KjnLPjzRg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=ZeYS_wewm4I:w8KjnLPjzRg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/ZeYS_wewm4I" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/teams/default.aspx">teams</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/design/default.aspx">design</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/collaboration/default.aspx">collaboration</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/coaching/default.aspx">coaching</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/team+room/default.aspx">team room</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/11/05/designing-the-team-room.aspx</feedburner:origLink></item><item><title>KaizenConf Workshops Schedule</title><link>http://feedproxy.google.com/~r/thebeelog/~3/d--21GggqNg/kaizenconf-workshops-schedule.aspx</link><pubDate>Mon, 27 Oct 2008 04:32:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184339</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184339</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/10/27/kaizenconf-workshops-schedule.aspx#comments</comments><description>&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;b&gt;UPDATE: We will try to record the full sessions. I&amp;#39;m hoping some participants will bring video cameras and have at it. I&amp;#39;m bringing mine.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;First of all the temporal situation: &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Morning Sessions - 9a-Noon&lt;br /&gt;Afternoon Sessions - 1:30p-4:30p&lt;br /&gt;&lt;br /&gt;Then, we have to talk about the nomenclature around and sizing of rooms:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Huge&lt;/b&gt; - 50-60 people&lt;br /&gt;&lt;b&gt;Large&lt;/b&gt; - 40-50 people&lt;br /&gt;&lt;b&gt;Wimpy&lt;/b&gt; - 15-25 people&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Thursday Morning &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Huge &lt;/b&gt;- Advanced NHibernate&lt;br /&gt;&lt;b&gt;Large &lt;/b&gt;-&amp;nbsp; Introduction to Lua&lt;br /&gt;&lt;b&gt;Wimpy &lt;/b&gt;- Pull, Don’t Push: Lean Systems and Kanban&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thursday Afternoon&lt;/b&gt; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;b&gt;Huge &lt;/b&gt;- Functional Programming - Is it a game changer?&lt;br /&gt;&lt;b&gt;Large &lt;/b&gt;- DSLs in BOO&lt;br /&gt;&lt;b&gt;Wimpy &lt;/b&gt;- Driving Toward the Goal &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;b&gt;Friday Morning&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Huge &lt;/b&gt;- Using and Abusing ASP.NET MVC for Fun and Profit&lt;br /&gt;&lt;b&gt;Large &lt;/b&gt;- All About MEF (the Managed Extensibility Framework)&lt;br /&gt;&lt;b&gt;Wimpy &lt;/b&gt;- Mystery Session with Scott Bellware&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Friday Afternoon&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Huge&lt;/b&gt; - Presentation Patterns: Going beyond MVP and Presentation Model&lt;br /&gt;&lt;b&gt;Large&lt;/b&gt; - Fluent APIs with C# 3&lt;br /&gt;&lt;b&gt;Wimpy&lt;/b&gt; - DDD Chalk Talk&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184339" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=d--21GggqNg:jGIBbjVzIyw:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=d--21GggqNg:jGIBbjVzIyw:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=d--21GggqNg:jGIBbjVzIyw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=d--21GggqNg:jGIBbjVzIyw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=d--21GggqNg:jGIBbjVzIyw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=d--21GggqNg:jGIBbjVzIyw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/d--21GggqNg" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/conferences/default.aspx">conferences</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/housekeeping/default.aspx">housekeeping</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/10/27/kaizenconf-workshops-schedule.aspx</feedburner:origLink></item><item><title>The Value of Lean and Kanban</title><link>http://feedproxy.google.com/~r/thebeelog/~3/atpC3hoj5XE/the-value-of-lean-and-kanban.aspx</link><pubDate>Thu, 23 Oct 2008 21:42:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184232</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184232</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/10/23/the-value-of-lean-and-kanban.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.notesfromatooluser.com/"&gt;Mark Levison&lt;/a&gt; wrote up and &lt;a href="http://www.infoq.com/news/2008/10/kanban_agile"&gt;introductory article on Kanban&lt;/a&gt; for InfoQ. It&amp;#39;s from a people perspective and worth a read if your new to this scene or interested. I&amp;#39;m especially happy he conveyed the &amp;quot;work to done&amp;quot; concept.&lt;br /&gt;&lt;br /&gt;For me &lt;a href="http://codebetter.com/blogs/david_laribee/archive/2008/09/26/done-for-real.aspx"&gt;that&amp;#39;s the biggest thing&lt;/a&gt;. Done has a pretty simple definition: &amp;quot;it&amp;#39;s in production.&amp;quot; I think this is a message that should be in the forefront. As with any message, repetition is key.&lt;br /&gt;&lt;br /&gt;Throughput accounting (David Anderson&amp;#39;s book on &lt;a href="http://www.amazon.com/Agile-Management-Software-Engineering-Constraints/dp/0131424602"&gt;Agile Management&lt;/a&gt;, great intro) is a big, big, big deal. This is the theory/justification/whatever of the done definition.&lt;br /&gt;&lt;br /&gt;The other thing that&amp;#39;s really important to me is the visual management stuff. You can &lt;u&gt;see&lt;/u&gt; where things are getting bogged down. Corey Ladas pegged this best in &lt;a href="http://leansoftwareengineering.com/2008/06/12/queue-utilization-is-a-leading-indicator/"&gt;his leading indicators post&lt;/a&gt;. Queue utilization trumps velocity/cycle time in having an effect on throughput.&lt;br /&gt;&lt;br /&gt;Standard work and thinking about your pipeline is rather critical. Continuous improvement happens much more regularly when we say &amp;quot;hey, here&amp;#39;s how we&amp;#39;re gonna work&amp;quot; and make that explicit with a whiteboard, cards, and a marker, and tweak over time. There&amp;#39;s gotta be a baseline.&lt;br /&gt;&lt;br /&gt;Other things, like cycle time, seem less important (but still matter) as, in the case of cycle time, it&amp;#39;s just a re-imagining/slight reconfiguration of an agile concept (velocity). Of course it&amp;#39;s important to establish it and improve upon it, but I don&amp;#39;t necessarily see it as new ground.&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184232" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=atpC3hoj5XE:727UT3xbU6o:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=atpC3hoj5XE:727UT3xbU6o:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=atpC3hoj5XE:727UT3xbU6o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=atpC3hoj5XE:727UT3xbU6o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=atpC3hoj5XE:727UT3xbU6o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=atpC3hoj5XE:727UT3xbU6o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/atpC3hoj5XE" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/lean/default.aspx">lean</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/kanban/default.aspx">kanban</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/10/23/the-value-of-lean-and-kanban.aspx</feedburner:origLink></item><item><title>Presenting the KaizenConf Workshops</title><link>http://feedproxy.google.com/~r/thebeelog/~3/WI0UQDqlCqg/presenting-the-kaizenconf-workshops.aspx</link><pubDate>Wed, 22 Oct 2008 05:35:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184150</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>23</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184150</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/10/22/presenting-the-kaizenconf-workshops.aspx#comments</comments><description>&lt;p&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;UPDATE 1: Schedule is coming tonight. Each workshop is approximately three hours long. We&amp;#39;re going with a longer form to get more knowledge transfer, interactivity, etc.&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;UPDATE 2: Based on space and time constraints, there will be two sessions going on at once. No tracks (we don&amp;#39;t do tracks), but I will make an attempt to provide some variety.&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Here&amp;#39;s the final lineup for the workshops immediately preceding &lt;a href="http://www.kaizenconf.com/"&gt;the KaizenConf Open Spaces event&lt;/a&gt;. I&amp;#39;m pretty psyched about the line-up. There&amp;#39;s some very relevant/edge topics covered by seasoned people chock full of juicy content.&lt;/p&gt;

&lt;p&gt;ALT.NET assemble!&lt;/p&gt;

&lt;p&gt;# &lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Advanced NHibernate&lt;/b&gt;&lt;a href="http://ayende.com/blog/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ayende.com/blog/"&gt;Ayende Rahien&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Object relational mapping are becoming only more popular, as
people developing complex systems find that they need more than the tabular
model to work with in their applications. A
sophisticated ORM can do a lot more than merely get the data out of the database
in object form, it can be a valuable asset in
simplifying development and making things possible. In this session, you will
see how you can utilize an ORM in nontraditional ways to get an additional,
better, approach to solving complex issues.&lt;/p&gt;

&lt;p&gt;Some of those ways include business rules, localization,
state transitions, inversion of control, etc. All done via the ORM layer, and
all can be used to drasticly simplify the complexity
of the given scenarios.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Presentation Patterns:&amp;nbsp; Going beyond MVP and Presentation Model&lt;/b&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;Jeremy D. Miller&lt;/a&gt; and &lt;a href="http://codebetter.com/blogs/glenn.block/Default.aspx"&gt;Glenn Block&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our
desktop applications are becoming more complicated every year, and just
slamming all the behavior into the code behind isn&amp;#39;t cutting it any
more.&amp;nbsp; You know about Model View Presenter and Presentation Model for
individual screens, but what about the application as a whole?&amp;nbsp; How do
you govern screen activation?&amp;nbsp; What about communicating across
screens?&amp;nbsp; Extensibility?&amp;nbsp; In this session I&amp;#39;ll present some patterns
and strategies for handling complex behavior in stateful clients.&amp;nbsp;
We&amp;#39;ll examine some possible approaches for using IoC tools to wire
together a composite application.&amp;nbsp; I&amp;#39;ll also present on the screen
activation lifecycle, state management throughout the application, and
coordinating events over an application.&amp;nbsp; Taking another tact, I&amp;#39;d like
to examine the MicroController pattern combined with language oriented
programming as a way to wring out more productivity in our development
efforts.&lt;/p&gt;

&lt;p&gt;Time permitting, I&amp;#39;ll also share some lessons learned for automated testing of desktop applications.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Fluent APIs with C# 3&lt;/b&gt;&lt;a href="http://www.lostechies.com/blogs/chad_myers/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.lostechies.com/blogs/chad_myers/"&gt;Chad Myers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You may not know it, but you&amp;#39;re likely already using
internal DSLs in C#: The Linq IEnumerable
extension methods (Select(), Where(), ToArray(),
etc), the NHibernate ICriteria
API, Rhino Mocks, StructureMap, Windsor, Moq, Ninject, and many others all
have internal DSL syntaxes. Whether it be for configuration, programmatic
assembly of an object graph, or a myriad of other purposes, an internal DSL can
usually make the process go faster, easier to test, and easier to consume by
the API consumer.&lt;/p&gt;


&lt;p&gt;In this workshop, we&amp;#39;ll go through the process of creating a
basic internal DSL. We&amp;#39;ll then go deeper into more advanced variations and
themes of internal DSLs, learn about tricks and pitfalls, and end up with an
advanced internal DSL. &amp;nbsp;We&amp;#39;ll learn about method chaining, the builder
pattern, function sequences, and many other internal DSL patterns and related
concepts.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Using and Abusing
ASP.NET MVC for Fun and Profit&lt;/b&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/"&gt;Jeremy D. Miller&lt;/a&gt; &amp;amp; &lt;a href="http://www.lostechies.com/blogs/chad_myers/"&gt;Chad Myers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After deciding to go with ASP.NET MVC Preview 2, we quickly
ran into a few design/testability problems and some missing functionality we
needed (it&amp;#39;s a preview, after all). Still agreeing that ASP.NET MVC was good and
still worth pursuing, we decided to begin filling in some of the gaps and
trying to avoid some of the testability problems by creating our own extensions
and overriding certain behavior. &amp;nbsp;Jeremy has come up with some great
concepts during this process that we&amp;#39;d like to share with the community.&lt;/p&gt;

&lt;p&gt;During this workshop, we&amp;#39;ll go through the various additions
and derivations we&amp;#39;ve made in our ASP.NET MVC-based application and how they&amp;#39;ve
helped us create a very adaptable, reusable, and testable web application
infrastructure. &amp;nbsp;The goal is to discuss and contribute ideas to the
community, suffer critical feedback, and hopefully increase interest in
MVC-based design and testability in a web environment.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Introduction to Lua&lt;/b&gt;&lt;a href="http://marcusirven.com/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://marcusirven.com/"&gt;Marcus Irven&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lua is a powerful, fast, light-weight,&amp;nbsp;open
source,&amp;nbsp;scripting language. &amp;nbsp;Though Lua can be used for standalone
applications a lot of its power lies in how can easily it can be used to extend
programs written in other languages.&lt;/p&gt;

&lt;p&gt;In this workshop you will get a thorough introduction into
the Lua language. After covering the basics we will dive into code and explore
the interesting and unique features of Lua. You will also get an introduction
on how Lua can be used to extend your applications. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Functional
Programming – Is it a game changer?&lt;/b&gt;&lt;a href="http://podwysocki.codebetter.com/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://podwysocki.codebetter.com/"&gt;Matt Podwysocki&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We hear a lot about functional programming lately, and many
wonder the reasons.&amp;nbsp; We’ll dig into the
philosophy of functional programming, how you can apply it, and what uses it
has.&amp;nbsp; Immutable by default, recursion
over mutation and functional composition over inheritance are
some of the mind shifts required for this technique.&amp;nbsp; As we run into Moore’s law changing, we need
to be aware of how to realize the full potential of our applications when it
comes to asynchronous and concurrent behavior. &lt;/p&gt;

&lt;p&gt;Learn how functional programming can help solve some of
these problems that we have not only today, but in the years upcoming.&amp;nbsp; Using languages such as C#, and F#, we can
apply these functional techniques today to help make your code more concise.&amp;nbsp; But, with any paradigm shift, there are
traps.&amp;nbsp; Learn of some of the pitfalls you
may fall into and how to avoid them.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Pull, Don’t Push:
Lean Systems and Kanban&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Dave Laribee&lt;/p&gt;

&lt;p&gt;Full description forthcoming. I will say this will be aimed at getting you up and running with an iteration-less pull system or &amp;quot;Kanban.&amp;quot; We&amp;#39;ll cover some of the principles of Lean Software Development, queue and buffer patterns, and metrics/reporting.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Driving Toward the Goal:
Standard Work in Software Development&lt;/b&gt;&lt;a href="http://www.integralpath.blogs.com/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.integralpath.blogs.com/"&gt;Jef Newsom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kent Beck titled his first book on XP &amp;quot;Extreme
Programming: Embrace Change.&amp;quot; Yet so many organizations and individuals
that adopt agile software development practices only attempt to embrace the
ongoing change of requirements, not the ongoing change of themselves and their
processes. Because of this, so many teams who approach agile software adoption
either plateau or backslide into a rebranded status quo. To truly become
agile--to truly embrace change--we must focus on constantly improving our
people, our products, and our processes.&lt;/p&gt;

&lt;p&gt;To determine whether we are improving, we need both an
understanding of where we are and to where we want to head. Taiichi
Ohno is quoted to have said, &amp;quot;Where there is no
standard there can be no kaizen.&amp;quot; This notion of &amp;quot;standard work&amp;quot;
is key to how the production workers in the Toyota
Production System continuously improve the repetitive tasks of manufacturing.
And this standard work is not a static &amp;quot;best practice&amp;quot; that we adopt
to magically reach nirvana. It is a detailed description of how we currently
know to best perform the repetitive tasks, along with examples of both desired
outcomes and common defects. We will explore two common &amp;quot;Best
Practices&amp;quot; for agile development: TDD/BDD and User Stories.
We&amp;#39;ll define our standard work, execute it, decide what works and what needs
improving, and determine how we&amp;#39;ll take action. We&amp;#39;ll look for challenges,
undesirable effects that are introduced, and we&amp;#39;ll think logically about how we
can remove them, experiment, and improve our standard.&lt;/p&gt;

&lt;p&gt;By the end of this workshop, you will have shared and learned how others in the
workshop are best applying practices like user stories
and TDD. You will have shared what you struggle with and learned what others
struggle with in applying the practices. You will &amp;quot;stop the line,&amp;quot;
come up with experiments for improving the approaches, try them out, establish
a new standard, and continue improving. We&amp;#39;ll explore common questions such as: how to identify the right user stories; how best to split user stories
and still deliver value; how and where to get started when doing TDD. And we&amp;#39;ll explore powerful tools such as: standard work; &amp;quot;stop the
line&amp;quot; issue resolution’ TOC&amp;#39;s thinking processes&lt;/p&gt;

&lt;p&gt;Bring a laptop and your intuition.&lt;/p&gt;


&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;All About MEF (the Managed Extensibility Framework)&lt;/b&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/Default.aspx"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/Default.aspx"&gt;Glenn Block&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Today, it is difficult for applications and frameworks to
meet an open-ended set of needs. Building in extensibility allows third-party
customization, however there are many challenges in doing so. The application
developer is often faced with creating an extensibility mechanism from scratch.
This forces the extender to learn a new extensibility model for each
application he extends.&amp;nbsp; The design of the extensibility APIs directly
impacts the ability of the extender to do what he wants. The Managed
Extensibility Framework (MEF) is a new extensibility model in the .NET
framework that addresses many of these problems. It provides as simple
declarative model for application developers and extenders. The model itself can
be enhanced to support your own semantics. It focuses on discoverability and
composition, drawing from lessons learned from the DI (Dependency Injection)
community although it is not a traditional DI container.&lt;/p&gt;


&lt;p&gt;In this workshop we’ll start with the basics of what MEF is and how you use it. Then we’ll peel back the covers and go deeper into more advanced usages of MEF. Along the way we’ll also look at how
MEF compares to DI/IoC containers, and how it fares with TDD and other agile
practices.&lt;/p&gt;

&lt;p&gt;We’ll come out of the session having built an application
from scratch that uses MEF.&lt;/p&gt;


&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Textual DSLs in Boo&lt;/b&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href="http://ayende.com/blog/"&gt;Ayende Rahien&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Domain Specific Language is not
just the DSL SDK from Microsoft. A DSL can make working with the domain much
easier, since you are capable of leveraging the domain concepts directly. The
other alternative to a DSL is an XML file, and we all know how well declarative
model can work when you need imperative concepts, just consider NAnt for a minute and you will see the issue. Usually,
writing a DSL in .NET would be a complex issue, requiring writing a parser,
interpreter, etc. Boo already handles all of that, and its open architecture
means that it is very easy to extend it to express the concepts of the domain.
This talk will show you how to build DSLs in Boo and how to utilize this power
in your applications.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;


&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;DDD Chalk Talk&lt;/b&gt;&lt;/p&gt;


&lt;p&gt;Dave Laribee and &lt;a href="http://codebetter.com/blogs/gregyoung/"&gt;Greg Young&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full description forthcoming. Greg *might* make
it, still up in the air. This will be a looser and more interactive workshop for all skill levels, but will
focus on techniques for implementing rich domain models for .NET.
Audience participation is highly encouraged!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184150" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=WI0UQDqlCqg:YHtVYZmTyRY:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=WI0UQDqlCqg:YHtVYZmTyRY:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=WI0UQDqlCqg:YHtVYZmTyRY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=WI0UQDqlCqg:YHtVYZmTyRY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=WI0UQDqlCqg:YHtVYZmTyRY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=WI0UQDqlCqg:YHtVYZmTyRY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/WI0UQDqlCqg" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/ALT.NET/default.aspx">ALT.NET</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/Community/default.aspx">Community</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/conferences/default.aspx">conferences</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/housekeeping/default.aspx">housekeeping</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/10/22/presenting-the-kaizenconf-workshops.aspx</feedburner:origLink></item><item><title>Transitioning from NAnt to Rake</title><link>http://feedproxy.google.com/~r/thebeelog/~3/UmE8mdOdTFs/transitioning-from-nant-to-rake.aspx</link><pubDate>Fri, 17 Oct 2008 19:05:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:184004</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>9</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=184004</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/10/17/transitioning-from-nant-to-rake.aspx#comments</comments><description>&lt;p&gt;Maybe you&amp;#39;re interested in &lt;a href="http://codebetter.com/blogs/david_laribee/archive/2008/08/25/omg-rake.aspx"&gt;this Rake business&lt;/a&gt;. Maybe you&amp;#39;ve got a big investment in a whole build infrastructure in NAnt. Maybe, just maybe, it&amp;#39;s impractical to convert the whole enchilada over at once. What do you do?&lt;/p&gt;

&lt;p&gt;Wrap it in Rakey goodness, of course!&lt;/p&gt;

&lt;p&gt;Step one: leave your nant build in place. Write a little ruby function to fake call into Nant from Rake.&lt;/p&gt;

&lt;script src="http://gist.github.com/17499.js"&gt;&lt;/script&gt;

&lt;p&gt;Step two: create your rakefile.rb (or rakefile).&lt;/p&gt;

&lt;script src="http://gist.github.com/17501.js"&gt;&lt;/script&gt;

&lt;p&gt;Step three: incrementally replace NAnt tasks with Rake equivalents. Start simple...&lt;/p&gt;

&lt;script src="http://gist.github.com/17504.js"&gt;&lt;/script&gt;

&lt;p&gt;Step four: evolve as necessary and on your own timeline!&lt;/p&gt;

&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=184004" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=UmE8mdOdTFs:LabqmeoWpKc:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=UmE8mdOdTFs:LabqmeoWpKc:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=UmE8mdOdTFs:LabqmeoWpKc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=UmE8mdOdTFs:LabqmeoWpKc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=UmE8mdOdTFs:LabqmeoWpKc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=UmE8mdOdTFs:LabqmeoWpKc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/UmE8mdOdTFs" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/Ruby/default.aspx">Ruby</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/rake/default.aspx">rake</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/builds/default.aspx">builds</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/nant/default.aspx">nant</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/10/17/transitioning-from-nant-to-rake.aspx</feedburner:origLink></item><item><title>VersionOne, Day Zero</title><link>http://feedproxy.google.com/~r/thebeelog/~3/CyyN2HOheKw/versionone-day-zero.aspx</link><pubDate>Fri, 03 Oct 2008 03:50:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:183557</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>9</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=183557</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/10/02/versionone-day-zero.aspx#comments</comments><description>&lt;p&gt;I announced this &lt;a href="http://twitter.com/laribee/statuses/903601335"&gt;on Twitter&lt;/a&gt; a while back, but I&amp;#39;ve left my full-time job at Xclaim to join VersionOne as their internal Agile Development Coach.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ll say, leaving Xclaim was kind of a bittersweet thing. I&amp;#39;m still a part owner of the business, which is nice, but it&amp;#39;s the excellent team and practice we&amp;#39;ve forged together that I&amp;#39;ll miss the most. I get really involved in my work and it was at 5:00pm on my final Friday that I was feeling, let&amp;#39;s say, like the ultimate chicken.&lt;/p&gt;

&lt;p&gt;I&amp;#39;m comforted, however, by the fact that Xclaim goes on and continues to be a great team. Every coach needs a captain, and my colleague, Rik Bardrof, is more than ready to take on the next set of challenges. He&amp;#39;s in cahoots with the same awesome and dedicated people I had the pleasure of working with over the years and I&amp;#39;m positive they&amp;#39;ll continue to kick it, as they say, up a notch.&lt;/p&gt;

&lt;p&gt;For those that don&amp;#39;t know, &lt;a href="http://www.versionone.com/"&gt;VersionOne makes tools for Agile teams and organizations&lt;/a&gt;. In fact Xclaim is a happy customer. My job there, as the internal coach to their development team, is to drive new practices and process improvements that can help take them to the next level. What&amp;#39;s cool is that they&amp;#39;ve got an already-rocking team right now. In the course of a day long interview/visit, I got a sense of clear vision from top leadership and met some very talented, passionate team members. All the ingredients for a legendary team are in place and that&amp;#39;s something I knew I had to be a part of.&lt;/p&gt;

&lt;p&gt;I took the job for another big reason: the domain is really interesting. You&amp;#39;re working to drive continuous improvement on an Agile team working on a product for other Agile teams. &lt;i&gt;How meta can you get?!&lt;/i&gt; I quite like the challenge of serving both domain expert and playing coach roles simultaneously. This team will push the edge of Agile and Lean to the point where we can harvest and validate innovations and bake them into a product that sells itself. This has to be the highest form of technical excellence a product team can achieve. I believe that&amp;#39;s within reach, and am looking forward to sharing our experiences along the way.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=183557" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CyyN2HOheKw:6xlgbBN9YMo:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CyyN2HOheKw:6xlgbBN9YMo:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CyyN2HOheKw:6xlgbBN9YMo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=CyyN2HOheKw:6xlgbBN9YMo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=CyyN2HOheKw:6xlgbBN9YMo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=CyyN2HOheKw:6xlgbBN9YMo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/CyyN2HOheKw" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/housekeeping/default.aspx">housekeeping</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/10/02/versionone-day-zero.aspx</feedburner:origLink></item><item><title>.NET: Coming to a Cloud Near You</title><link>http://feedproxy.google.com/~r/thebeelog/~3/96pMAK1ClUM/net-coming-to-a-cloud-near-you.aspx</link><pubDate>Thu, 02 Oct 2008 01:26:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:183506</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>9</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=183506</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/10/01/net-coming-to-a-cloud-near-you.aspx#comments</comments><description>&lt;p&gt;I was very happy to hear the news that Amazon will be providing Windows/SQL support on their &lt;a href="http://aws.amazon.com/ec2/"&gt;EC2 cloud computing service&lt;/a&gt;. From the email announcement:&lt;/p&gt;

&lt;blockquote&gt;We are excited to let you know that Amazon Elastic Compute Cloud (Amazon EC2) will offer you the ability to run Microsoft Windows Server or Microsoft SQL Server starting later this Fall. Today, you can choose from a variety of Unix-based operating systems, and soon you will be able to configure your instances to run the Windows Server operating system. In addition, you will be able to use SQL Server as another option within Amazon EC2 for running relational databases.&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://laribee.com/blog/2007/02/16/iis-7-lagging/"&gt;I&amp;#39;ve been waiting for this option.&lt;/a&gt; For a long time the LAMP stack has held a distinct (and unarguable) advantage in long tail plays; much easier to find the kinds of virtual, on-demand models associated with &amp;quot;cloud computing.&amp;quot; With this, I see that gap narrowing.&lt;/p&gt;

&lt;p&gt;Even so, during this time of low availability, new architectures might have had a chance to sneak into the (at times monolithic) .NET developer community. When we reach for a persistence solution for our next killer web apps will it be SQL Server 2008 or a &lt;a href="http://portal.acm.org/citation.cfm?id=1298455.1298475"&gt;distributed&lt;/a&gt; &lt;a href="http://swaroopch.com/notes/Distributed_Storage_Systems#CouchDB"&gt;hashtable&lt;/a&gt;?&lt;/p&gt; &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=183506" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=96pMAK1ClUM:lirkxf_j-uo:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=96pMAK1ClUM:lirkxf_j-uo:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=96pMAK1ClUM:lirkxf_j-uo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=96pMAK1ClUM:lirkxf_j-uo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=96pMAK1ClUM:lirkxf_j-uo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=96pMAK1ClUM:lirkxf_j-uo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/96pMAK1ClUM" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/.net/default.aspx">.net</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/infrastructure/default.aspx">infrastructure</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/cloud-computing/default.aspx">cloud-computing</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/10/01/net-coming-to-a-cloud-near-you.aspx</feedburner:origLink></item><item><title>Done For Real</title><link>http://feedproxy.google.com/~r/thebeelog/~3/k08_Vu3LLpw/done-for-real.aspx</link><pubDate>Fri, 26 Sep 2008 16:03:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:183339</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>12</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=183339</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/09/26/done-for-real.aspx#comments</comments><description>&lt;p&gt;I had the good fortune to sit in on a day long session with &lt;a href="http://www.devjam.com/"&gt;Dave Hussman&lt;/a&gt; (who is awesome, by the way) on the topic Agile coaching as a lead in to the &lt;a href="http://www.aplnatlanta.org/"&gt;Atlanta APLN meeting&lt;/a&gt;. It was chock full of tips and I recommend getting out to see Dave if and when you get the chance; he packs a lot of knowledge into a short amount of time in an extremely entertaining way.&lt;/p&gt;

&lt;p&gt;One of the questions he asked is: &lt;i&gt;when is a feature done?&lt;/i&gt; This is a perennial topic with Agilists and it&amp;#39;s a very valid question; how do we know when a feature is &amp;quot;potentially shippable?&amp;quot;&lt;/p&gt;

&lt;p&gt;I piped up with my answer: &lt;i&gt;&lt;b&gt;a story is done when it&amp;#39;s in production use&lt;/b&gt;&lt;/i&gt;. That was a little different than the answers from the others in the room.&lt;/p&gt;

&lt;p&gt;Think about it: we&amp;#39;re not delivering value until that value has been delivered. That&amp;#39;s a very Yogi Berra way of saying that until the user&amp;#39;s using, that feature you made isn&amp;#39;t contributing to business value. In a way that&amp;#39;s one of the original premises of Agile: release early, release often.&lt;/p&gt;

&lt;p&gt;This is the reason why I like the cycle time measure over the velocity measure. Cycle time tells us how long the feature took from the time it was green lit to the time it went into production. This gives us a real measure of how long it takes to deliver business value. Velocity simply tells us how long a feature took to develop (unless, of course, we have release-per-iteration)&lt;/p&gt;

&lt;p&gt;Agile asked us to work better as software development teams and deliver in tiny little batches. Lean asks us to do the same thing, but put the software team in the context of the larger organization and from the customer perspective. Think globally, act locally. Doesn&amp;#39;t matter how rockin&amp;#39; a development team is, if those features are being held in inventory until waiting for some deployment event, they&amp;#39;re not done; they&amp;#39;re only done &lt;i&gt;as far as you&amp;#39;re concerned&lt;/i&gt;, and, last I checked, there were more than developers and testers involved in the process of delivering software.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=183339" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=k08_Vu3LLpw:oTqF0NCGWWU:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=k08_Vu3LLpw:oTqF0NCGWWU:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=k08_Vu3LLpw:oTqF0NCGWWU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=k08_Vu3LLpw:oTqF0NCGWWU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=k08_Vu3LLpw:oTqF0NCGWWU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=k08_Vu3LLpw:oTqF0NCGWWU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/k08_Vu3LLpw" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/Agile/default.aspx">Agile</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/lean/default.aspx">lean</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/kanban/default.aspx">kanban</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/09/26/done-for-real.aspx</feedburner:origLink></item><item><title>Laribee's Final Law of Continuous Integration</title><link>http://feedproxy.google.com/~r/thebeelog/~3/VUmyJUnIHJE/laribee-s-final-law-of-continuous-integration.aspx</link><pubDate>Tue, 23 Sep 2008 00:48:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:183186</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>14</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=183186</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/09/22/laribee-s-final-law-of-continuous-integration.aspx#comments</comments><description>&lt;p&gt;Seeing that DJ Miller is spinning up some &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2008/09/22/jeremy-s-first-law-of-continuous-integration.aspx"&gt;amusing-but-true&lt;/a&gt; &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2008/09/22/jeremy-s-other-laws-of-continuous-integration.aspx"&gt;laws of continuous integration&lt;/a&gt;, I&amp;#39;m gonna weigh in and declare &lt;b&gt;Laribee&amp;#39;s Final Law of Continuous Integration&lt;/b&gt;. I see it as so critical that I&amp;#39;m going to put it quasi-biblical speak and in a blockquote:&lt;/p&gt;

&lt;blockquote&gt;Thou shalt not leave the office before the successful build of thine last commit. Doing so is beyond uncool and shall impose as a penalty, at minimum, the collective stink eye of the team to be cast upon thee.&lt;/blockquote&gt;

&lt;p&gt;Or maybe we&amp;#39;ll go with modern and more direct version.&lt;/p&gt;

&lt;blockquote&gt;Stick around and make sure your last commit doesn&amp;#39;t break the build.&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=183186" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=VUmyJUnIHJE:vlY7KdayAQ4:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=VUmyJUnIHJE:vlY7KdayAQ4:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=VUmyJUnIHJE:vlY7KdayAQ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=VUmyJUnIHJE:vlY7KdayAQ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=VUmyJUnIHJE:vlY7KdayAQ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=VUmyJUnIHJE:vlY7KdayAQ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/VUmyJUnIHJE" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/opinion/default.aspx">opinion</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/continuous-integration/default.aspx">continuous-integration</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/09/22/laribee-s-final-law-of-continuous-integration.aspx</feedburner:origLink></item><item><title>More General Thing Madness</title><link>http://feedproxy.google.com/~r/thebeelog/~3/noEhmRi9jsM/more-general-thing-madness.aspx</link><pubDate>Tue, 23 Sep 2008 00:24:00 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:183182</guid><dc:creator>Dave Laribee</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://codebetter.com/blogs/david_laribee/rsscomments.aspx?PostID=183182</wfw:commentRss><comments>http://codebetter.com/blogs/david_laribee/archive/2008/09/22/more-general-thing-madness.aspx#comments</comments><description>&lt;p&gt;This description of problem analysis by &lt;a href="http://www.infoq.com/interviews/Rewrite-Reginald-Braithwaite"&gt;Reginald Braithwaite&lt;/a&gt; (who &lt;i&gt;is&lt;/i&gt; a smart person) struck a chord with me:&lt;/p&gt;

&lt;blockquote&gt;
I found this to be an important point in my own programming, and I don&amp;#39;t know if that&amp;#39;s a general point but quite often we see something and we are very tempted to say &amp;quot;Oh, this is a special case of a more general thing&amp;quot;, and then we solve the general thing. However that is an infinite recursion, it&amp;#39;s always the special case of something more general. And if you are always climbing up the tree into the more general thing you will eventually wind up with a PhD in computer science and no code.
&lt;/blockquote&gt;

&lt;p&gt;I know one of the areas that I get into trouble sometimes is when I try to make something too meta, too flexible. One of the things we abandoned early on at Xclaim was a very flexible party/roles management system that was so general -- it would have modeled &lt;i&gt;anything&lt;/i&gt; -- but it was nigh impossible to represent in as a consistent and meaningful user experience and programming interface (developer experience). I try to stay more mindful, as an applications guy, of my abstractions now and root them in the concrete problem.&lt;/p&gt;

&lt;p&gt;For me, learning and flexing DDD was a really useful approach for all sorts of domains and reigning in my tendency to get too abstract. As a method, you can apply it (in part, at least) to really any domain: vertical or horizontal. Patterns such as bounded contexts, intention revealing interfaces, the core pattern language, and ubiquitous language can keep you from falling into the pit of meta-meta-meta-madness.&lt;/p&gt; &lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=183182" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=noEhmRi9jsM:rmhQ-Uf4i2A:GX2IY5MWfH0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=GX2IY5MWfH0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=noEhmRi9jsM:rmhQ-Uf4i2A:XQ266DUsA9M"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?d=XQ266DUsA9M" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=noEhmRi9jsM:rmhQ-Uf4i2A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=noEhmRi9jsM:rmhQ-Uf4i2A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/thebeelog?a=noEhmRi9jsM:rmhQ-Uf4i2A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/thebeelog?i=noEhmRi9jsM:rmhQ-Uf4i2A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/thebeelog/~4/noEhmRi9jsM" height="1" width="1"/&gt;</description><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/DDD/default.aspx">DDD</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/opinion/default.aspx">opinion</category><category domain="http://codebetter.com/blogs/david_laribee/archive/tags/analysis/default.aspx">analysis</category><feedburner:origLink>http://codebetter.com/blogs/david_laribee/archive/2008/09/22/more-general-thing-madness.aspx</feedburner:origLink></item></channel></rss>
