<?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:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" 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>Virtual Genius</title>
    <description>Paul Rayner's Blog</description>
    <link>http://www.virtual-genius.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.0.0.36</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.virtual-genius.com/blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Paul Rayner</dc:creator>
    <dc:title>Virtual Genius</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/VirtualGenius" /><feedburner:info uri="virtualgenius" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><item>
      <title>September DDD Immersion Class Sold Out!</title>
      <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/philofphotos/249220155/" target="_blank"&gt;&lt;img style="float: right;" title="LadyLiberty.png" src="http://www.virtual-genius.com/blog/image.axd?picture=LadyLiberty.png" border="0" alt="Statue of Liberty" width="220" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The September DDD Immersion class in Denver is now full. I'm really looking forward to teaching this one, as there is a certain energy and level of fun that comes from having a full complement of people, particularly for the group domain modeling exercises.&lt;/p&gt;
&lt;p&gt;Earlybird seats are still available for the classes running in NYC in November and in Denver in January 2012. Don't leave it too late though, as they are tending to go fast.&lt;/p&gt;
&lt;p&gt;Register now for the NYC or Denver classes at the &lt;a href="http://www.domainlanguage.com/training"&gt;Domain Language training page&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/UDdTAbSZsXQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/UDdTAbSZsXQ/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/September-DDD-Immersion-Class-Sold-Out!.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=4a7df477-edc2-4e85-9ef5-2b65cb2fec42</guid>
      <pubDate>Tue, 09 Aug 2011 16:25:47 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=4a7df477-edc2-4e85-9ef5-2b65cb2fec42</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=4a7df477-edc2-4e85-9ef5-2b65cb2fec42</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/September-DDD-Immersion-Class-Sold-Out!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=4a7df477-edc2-4e85-9ef5-2b65cb2fec42</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=4a7df477-edc2-4e85-9ef5-2b65cb2fec42</feedburner:origLink></item>
    <item>
      <title>Upcoming Domain-Driven Design (DDD) Immersion classes</title>
      <description>&lt;p&gt;&lt;img style="float: right;" title="DomainLanguage.png" src="http://www.virtual-genius.com/blog/image.axd?picture=DomainLanguage.png" border="0" alt="Domain Language" width="296" height="100" /&gt;&lt;/p&gt;
&lt;p&gt;I wanted to let everyone know I will be teaching two of the public DDD Immersion classes for &lt;a href="www.domainlanguage.com/training"&gt;Domain Language&lt;/a&gt; between now and the end of this year, one in Denver and one in New York. Seats are still available for these classes, but likely to go fast. The early bird discount for the September class in Denver is still available at this time.&lt;/p&gt;
&lt;p&gt;Go to &lt;a href="http://www.domainlanguage.com/training/"&gt;http://www.domainlanguage.com/training&lt;/a&gt; to register.&lt;/p&gt;
&lt;p&gt;Here is the schedule:&lt;/p&gt;
&lt;div class="event"&gt;&lt;strong&gt;Sept 20, Denver, CO&lt;/strong&gt;&lt;/div&gt;
&lt;div class="event"&gt;DDD Immersion&lt;br /&gt; Instructor Paul Rayner&lt;br /&gt; &lt;span style="text-decoration: line-through;"&gt;$2790&lt;/span&gt; $2090 if booked by 8/12&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="event"&gt;&lt;strong&gt;Nov 29, New York, NY&lt;/strong&gt;&lt;br /&gt; DDD Immersion&lt;br /&gt; Instructor Paul Rayner&lt;br /&gt; &lt;span style="text-decoration: line-through;"&gt;$2790&lt;/span&gt; $2490 if booked by 10/21&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="event"&gt;For those of you who are perhaps not familiar with the DDD Immersion, it is a 4 day deep-dive into creative domain modeling, combining hands-on coding with group modeling exercises for a truly immersive learning experience. I attended the class in February in NYC in Feb of last year, and &lt;a href="http://www.virtual-genius.com/blog/post/Domain-Driven-Design-Immersion-Course-e28093-Part-1.aspx"&gt;wrote in detail about my experience&lt;/a&gt;. Since then I have become a certified DDD Immersion instructor.&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="event"&gt;Here is what a typical class looks like:&lt;/div&gt;
&lt;div class="event"&gt;
&lt;h3&gt;Day 1: Model Exploration and Ubiquitous Language&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Domain-driven design overview&lt;/li&gt;
&lt;li&gt; Making implicit concepts explicit&lt;/li&gt;
&lt;li&gt; Ubiquitous Language&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Afternoon: Jumping in with code&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Brainstorming models &lt;/li&gt;
&lt;li&gt; Expressing a model in software &lt;/li&gt;
&lt;li&gt; Building-block patterns (entities, value objects, repositories,        etc.)&lt;/li&gt;
&lt;li&gt; Test-first development as a modeling process&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Day 2 Morning: Modeling with Domain Experts&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Techniques and pitfalls of bringing about a creative collaboration.&lt;/li&gt;
&lt;li&gt; Modeling out loud &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Day 2 Afternoon: Supple Design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Patterns and techniques to tighten models and their connection to code.&lt;/li&gt;
&lt;li&gt; Making code obvious, easier to use and change&lt;/li&gt;
&lt;li&gt; Modeling for transactional integrity and distributed systems&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Day 3: Strategic Design&lt;/h3&gt;
&lt;h3&gt;Morning: Context Mapping&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Pragmatic approach to dealing with diverse models and designs on real        projects&lt;/li&gt;
&lt;li&gt; Relationships between subsystems/ relationships between teams&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Afternoon: Distilling the Core Domain&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Distinguishing the core from the mass&lt;/li&gt;
&lt;li&gt; Ways of focusing effort&lt;/li&gt;
&lt;li&gt; Clarifying a shared vision&lt;/li&gt;
&lt;li&gt; Setting up a project for success&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Day 4: Bringing it Together&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; Design/code challenge - model supple design with context map &lt;/li&gt;
&lt;li&gt; Round-table discussion of SOA and enterprise frameworks with DDD &lt;/li&gt;
&lt;li&gt; In-depth discussion and Q&amp;amp;A, relating all topics to each other and to your own work &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="event"&gt;
&lt;blockquote&gt;Your class was a great experience on many levels…of course  what I learned about DDD - fabulous - but also how you taught the class  and the interactive nature of it is just wonderful.&lt;/blockquote&gt;
&lt;a href="http://thedatafarm.com/blog/bio-and-photos/"&gt;Julie Lerman&lt;/a&gt;, Author of &lt;cite&gt;Programming Entity Framework&lt;/cite&gt;.
&lt;blockquote&gt;Unlike some trainings and courses I’ve experienced, I don’t think anyone  left this course without a very solid understanding of how they can  better pursue DDD in their own environments.&lt;/blockquote&gt;
&lt;a href="http://persistall.com/archive/2010/05/14/eric-evansrsquo-ddd-immersion-course.aspx"&gt;Brian Donahue, May 2010&lt;/a&gt;&lt;/div&gt;
&lt;div class="event"&gt;&lt;br /&gt;There is also another Denver public class scheduled for January - for those who like &lt;em&gt;sunshine&lt;/em&gt; with their Winter snow!&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="event"&gt;&lt;strong&gt;Jan 17, Denver, CO&lt;/strong&gt;&lt;br /&gt; DDD Immersion&lt;br /&gt; Instructor Paul Rayner&lt;br /&gt; &lt;span style="text-decoration: line-through;"&gt;$2790&lt;/span&gt; $2090 if booked by 12/2&lt;/div&gt;
&lt;p&gt;I should also mention that Domain Language can also provide DDD Immersion classes and DDD consulting onsite for your team.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/2GQl-W5jTt8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/2GQl-W5jTt8/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/Upcoming-Domain-Driven-Design-(DDD)-Immersion-classes.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=c63af689-44c9-4994-b13b-4d6da70bec7c</guid>
      <pubDate>Fri, 22 Jul 2011 19:37:08 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=c63af689-44c9-4994-b13b-4d6da70bec7c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=c63af689-44c9-4994-b13b-4d6da70bec7c</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/Upcoming-Domain-Driven-Design-(DDD)-Immersion-classes.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=c63af689-44c9-4994-b13b-4d6da70bec7c</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=c63af689-44c9-4994-b13b-4d6da70bec7c</feedburner:origLink></item>
    <item>
      <title>Don’t give your customers what they ask for</title>
      <description>&lt;p&gt;&lt;img style="float: right;" title="Cucumber Workshop - Workbook.jpg" src="http://www.virtual-genius.com/blog/image.axd?picture=Cucumber Workshop - Workbook.jpg" border="0" alt="Cucumber Workshop  Workbook" width="237" height="300" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 24px; font-weight: bold;"&gt;Give them what they need&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;There is a pairing exercise participants experience in my BDD with Cucumber workshop where one person describes a commonplace activity to the other. The challenge is describing it without being able to use certain common words. You need to attend the workshop to see what this looks like, and how much fun it is (I'll post a short video of participants soon). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;One thing I have noticed, no matter where I have run this exercise, is that very few people actually explain &lt;/span&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;&lt;em&gt;why&lt;/em&gt;&lt;/span&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt; this activity should even be done. They typically spend all the time describing the mechanics of how to do it, but don't explain why, and the listener usually doesn't think to ask. I contend that as technologists we do the same thing to our customers all the time.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;&lt;strong&gt;The critical piece here is asking "why?" &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;Ask your customers, "why do you need this?" "How will it help you?" "What problem does having this feature solve?"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;&lt;strong&gt;And then ask "why?" a few more times.&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt; Failure to do this will lead to a mechanical understanding of the need rather than the type of creative collaboration that might lead to deep insights about the true problem being addressed. I think it is this lack of deeper questioning that explains how many user stories lack a clear statement of the benefit returned by implementing the feature described by the story. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;I really enjoyed reading Tom Preston-Werner's post &lt;a href="http://tom.preston-werner.com/2011/03/29/ten-lessons-from-githubs-first-year.html"&gt;Ten Lessons from GitHub’s First Year&lt;/a&gt;. Tom says it better than I ever could:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 style="font-size: 1.5em;"&gt;Adapt to Your Customers&lt;/h2&gt;
&lt;p&gt;Here’s a seemingly paradoxical piece of advice for you: Listen to your customers, but don’t let them tell you what to do. Let me explain. Consider a feature request such as “GitHub should let me &lt;span class="caps"&gt;FTP&lt;/span&gt; up a documentation site for my project.” What this customer is really trying to say is “I want a simple way to publish content related to my project,” but they’re used to what’s already out there, and so they pose the request in terms that are familiar to them. We could have implemented some horrible &lt;span class="caps"&gt;FTP&lt;/span&gt; based solution as requested, but we looked deeper into the underlying question and now we allow you to publish content by simply pushing a Git repository to your account. This meets requirements of both functionality &lt;em&gt;and&lt;/em&gt; elegance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In another post Tom points out how "building the right system" always trumps "building the system right":&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I hear a lot of talk these days about TDD and BDD and Extreme  Programming and SCRUM and stand up meetings and all kinds of  methodologies and techniques for developing better software, but it's  all irrelevant unless the software we're building meets the needs of  those that are using it. Let me put that another way. A perfect  implementation of the wrong specification is worthless.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;&lt;strong&gt;Producing working software frequently is necessary but insufficient. Producing&lt;/strong&gt;&lt;em&gt;&lt;strong&gt; valuable&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt; working software frequently is what matters. &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span style="font-weight: normal; font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/LWzdNiNnF2Q" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/LWzdNiNnF2Q/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/Don’t-give-your-customers-what-they-ask-for.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=e3517049-e5eb-4db5-8260-d1594df1743a</guid>
      <pubDate>Thu, 21 Jul 2011 19:24:26 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=e3517049-e5eb-4db5-8260-d1594df1743a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=e3517049-e5eb-4db5-8260-d1594df1743a</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/Don’t-give-your-customers-what-they-ask-for.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=e3517049-e5eb-4db5-8260-d1594df1743a</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=e3517049-e5eb-4db5-8260-d1594df1743a</feedburner:origLink></item>
    <item>
      <title>Some Reflections on Uberconf</title>
      <description>&lt;p&gt;If you do development on the JVM and you did not attend &lt;a href="www.uberconf.com"&gt;Uberconf&lt;/a&gt; this week then you really missed out. This is the second year of Uberconf in Denver, and it just keeps getting better and better.&lt;/p&gt;
&lt;p&gt;Even though I was not able to attend the entire conference, I feel like I come away from my time there with new friends, new knowledge and some great memories.&lt;/p&gt;
&lt;p&gt;&lt;img style="float: right;" title="BDD_Cucumber_workshop3.JPG" src="http://www.virtual-genius.com/blog/image.axd?picture=BDD_Cucumber_workshop3.JPG" border="0" alt="BDD_Cucumber_workshop3.JPG" width="300" height="224" /&gt;&lt;/p&gt;
&lt;h4&gt;Some takeaways&lt;/h4&gt;
&lt;p&gt;Thanks to all those that attended my sessions. I was also very impressed by the level of questions and attendee participation. In particular, my BDD with Cucumber was packed, and most attendees hung around for the second half. One person told me she attended the conference mainly because of this workshop, so that was a nice thing to hear. As a side note, it doesn't matter how much you check your class materials, it only takes one faulty USB key to throw a wrench in the works. Presenters beware!&lt;/p&gt;
&lt;p&gt;The group exercises I use in my BDD with Cucumber workshop (thanks to Richard Lawrence for letting me use them!) have been great ways to clarify the material for attendees and get everyone interacting with each other and having fun. I was aiming for it to be the funnest workshop at the conference - hopefully I came close!&lt;/p&gt;
&lt;p&gt;I now know about some especially &amp;nbsp;cool ways to improve my developer experience on OSX that I will be trying out in the weeks to come, such as Brew, MacVIM, Solarized and oh-my-zsh. Thanks especially to @arthurkalm for all the tool-foo sharing. Man, that guy knows his stuff.&lt;/p&gt;
&lt;p&gt;Use ant -emacs to have Cuke4Duke output code snippets more cleanly. Thanks Howard Ship!&lt;/p&gt;
&lt;p&gt;If you attended the workshop (or any of my sessions) then I would love&amp;nbsp;to hear any feedback you might have, especially if you try implementing any of the things I talked about.&lt;/p&gt;
&lt;p&gt;If you ever have the chance to attend a workshop by Venkat, don't miss it! He turns live coding into a performance art. Seriously.&lt;/p&gt;
&lt;p&gt;Thanks to Jay Zimmerman, Ben, NFJS and staff of the Westin hotel for making Uberconf such a great event.&lt;/p&gt;
&lt;p&gt;&lt;img style="float: left;" title="BDD_Cucumber_workshop2.JPG" src="http://www.virtual-genius.com/blog/image.axd?picture=BDD_Cucumber_workshop2.JPG" border="0" alt="Workshop 2" width="300" height="224" /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/8-LZUUF9j3k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/8-LZUUF9j3k/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/Some-Reflections-on-Uberconf.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=0c405b6c-ced9-4265-9382-adb5514addb5</guid>
      <pubDate>Fri, 15 Jul 2011 19:35:00 +0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=0c405b6c-ced9-4265-9382-adb5514addb5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=0c405b6c-ced9-4265-9382-adb5514addb5</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/Some-Reflections-on-Uberconf.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=0c405b6c-ced9-4265-9382-adb5514addb5</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=0c405b6c-ced9-4265-9382-adb5514addb5</feedburner:origLink></item>
    <item>
      <title>Learning About Lean and Agile Software Development</title>
      <description>&lt;p&gt;This year I have started giving a presentation for &lt;a href="http://www.nofluffjuststuff.com/conference/speaker/paul_rayner"&gt;No Fluff Just Stuff conferences&lt;/a&gt; that introduces many of the most critical ideas from lean software development, and provides some practical ways to start implementing them in whatever project context you find yourself: agile, traditional, or otherwise. Here is the presentation abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Successful software development is about building the right product  at the right time for your customers. This means focusing attention on  the right places in the portfolio of projects and products that your  company provides, and optimizing the entire value stream from "concept  to cash" for your customers and the development teams.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Agility is more than just adopting Scrum or some other agile process  framework; it involves adopting a new set of Lean-Agile values,  principles and practices through the entire software development  lifecycle and beyond in order to provide value to customers earlier and  more often.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Lean-Agile software development consists of frequent feedback loops,  intense team collaboration, continuous improvement, business and  customer involvement, baking quality in and consistent delivery of  valuable software. Learn how these Lean principles and practices  transform software development and the radical difference it can make in  your development work and wider organization.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Lean software development is a subset of Lean Product Development, not Lean Manufacturing. It is foolish to blindly apply Lean Manufacturing practices to software development. The underlying principles of value, flow, pull and waste remain the same, but the way these principles are applied to software development will look fundamentally different.&lt;/p&gt;
&lt;p&gt;As Paul Hodgetts points out in his excellent&lt;a href="http://www.agilelogic.com/files/LeanIsMoreWhitepaper.pdf"&gt; Lean is More&lt;/a&gt; white paper:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Treating software development as Lean Manufacturing leads us down a path of optimizing the mechanics of developing software, which can yield limited benefits but fails to address the much larger software product development issues.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I would put it even more strongly than this. Most of what software developers do is invisible, particularly when it comes to the thinking involved with design.&lt;/p&gt;
&lt;p&gt;It's just not about the mechanics of the process, any more than writing a song is about the mechanics of playing the instrument or enjoying a meal is about the nutritional content of the food. Such reductionism is a false hope for improvement. For example, seeking to create a more efficient process by reducing or eliminating design-related activities in software development as waste (such as design meetings, writing design documents, refactoring etc) will inevitably lead to a product with little conceptual integrity, and fast-track it towards becoming a Big Ball of Mud. Asking developers to track hours as a measure of productivity is the fast-track to disfunction and decreasing productivity. Let's not &lt;a href="http://alistair.cockburn.us/Taylorism+strikes+software+development"&gt;reintroduce Taylorism to software development&lt;/a&gt; through the back-door of Lean.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Agile methods were developed by assembling the best practices from successful projects. While the combinations of best practices found in agile methods exhibit the core values and principles of a lean approach, it can be difficult to understand the reasons why agile processes work just from examining their practices...Mapping agile practices to lean concepts such as value, flow, pull and waste can help explain why agile works, and offer new insights to guide process improvements. (Hodgetts, p. 3)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To see this more clearly we can look through at Kanban and Scrum the lens of lean and agile principles. Kniberg and Skarin, in &lt;em&gt;&lt;a href="http://www.infoq.com/minibooks/kanban-scrum-minibook"&gt;Kanban and Scrum: Making the Most of Both&lt;/a&gt;&lt;/em&gt;, point out that Scrum and Kanban are both aligned with the values and principles of both Lean and agile. For example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Scrum and Kanban are both pull scheduling systems, which corresponds to the JIT (Just in Time) inventory management principles of Lean. This means that the team chooses when and how much work to commit to, they "pull" work when they are ready, rather than having it "pushed" in from the outside. Just like a printer pulls in the next page only when it is ready to print on it (although there is a small and limited batch of paper that it can pull from).&lt;/li&gt;
&lt;li&gt;Scrum and Kanban are based on continuous and empirical process optimization, which corresponds to the Kaizen principles of Lean.&lt;/li&gt;
&lt;li&gt;Scrum and Kanban emphasize responding to change over following a plan (although Kanban allows faster response than Scrum), one of the four values of the agile manifesto.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the batch sizes in Scrum are much larger (batching work into timeboxed iterations) and thus not as lean as Kanban, producing shippable code every 2 weeks is certainly much leaner than a more traditional process which might integrate and release something 2-4 times per year. The shorter you make the iteration, the more you are approaching Kanban.&lt;/p&gt;
&lt;p&gt;As a DDD practitioner, one area where I think the careful application of Lean thinking holds a great deal of promise is in strategic design:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Agile and lean are not in conflict with each other as they may seem at first glance, nor are they incompatible approaches to process improvement... Lean Product Development offers several strategies and practices that can supplement agile methods, particularly in areas where agile methods have been criticized as lacking...the strategy of set-based design offers a balanced alternative to heavyweight up-front design approaches on one hand, and reactive, emergent approaches on the other." (Hodgetts, p. 3)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img style="float: right; border: 0px initial initial;" title="ImplementingLeanSoftwareDevelopment.png" src="http://www.virtual-genius.com/blog/image.axd?picture=/ImplementingLeanSoftwareDevelopment.png" border="0" alt="Implementing Lean Software Development" width="120" height="160" /&gt;&lt;/p&gt;
&lt;p&gt;Instead of teams feeling that they constantly have to adopt expedient design approaches to meet Sprint deadlines, Lean thinking combined with strategic DDD frees them to focus their design work where it matters most for the competitive advantage of their business. It encourages them to reduce the amount of code they write themselves, cultivate domain knowledge, and explore models collaboratively with the business to maximize the potential to develop innovative custom software solutions that leap ahead of the competition in the marketplace.&lt;/p&gt;
&lt;p&gt;To learn more about Lean Software Development, I highly recommend &lt;span style="font-family: Helvetica;"&gt;&lt;a href="http://www.amazon.com/gp/product/0321437381/"&gt;Implementing Software Development&lt;/a&gt; &lt;/span&gt;by Mary and Tom Poppendieck. This book is the definitive work on the subject at the moment.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/OGmiK3Kbg30" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/OGmiK3Kbg30/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/Learning-About-Lean-and-Agile-Software-Development.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=ff63d86d-e797-410c-ad80-407d98384d67</guid>
      <pubDate>Fri, 13 May 2011 18:30:01 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=ff63d86d-e797-410c-ad80-407d98384d67</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=ff63d86d-e797-410c-ad80-407d98384d67</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/Learning-About-Lean-and-Agile-Software-Development.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=ff63d86d-e797-410c-ad80-407d98384d67</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=ff63d86d-e797-410c-ad80-407d98384d67</feedburner:origLink></item>
    <item>
      <title>How do we get our organization, especially our stakeholders, on board with strategic design?</title>
      <description>&lt;p&gt;Great question. Most stakeholders would be delighted that you are seeking to distill down your core domain. Not that they would express it in DDD terms, but rather that want to see that development effort is being apportioned appropriately according to the business strategy.&lt;/p&gt;
&lt;p&gt;One approach would be to start by writing out the major business capabilities you are trying to achieve with each project. Put each one on a sticky note, and assign it to a quadrant in the Purpose Alignment Model.&lt;/p&gt;
&lt;div&gt;Try to mark each capability according to the approach you are taking - are you currently treating each as core domain, supporting subdomain, or generic subdomain? Look for inconsistencies. For example, do you have business capabilities in the Maintenance quadrant? I would recommend killing all custom software development in this quadrant. Outsource those capabilities as soon as possible. Don't waste time on custom development. Don't waste time trying to support those capabilities at all.&lt;/div&gt;
&lt;p&gt;
&lt;div&gt;Do you have parity capabilities that you are trying to implement using a core domain approach? Over-investment! Look for ways to use open source or 3rd party tools for generic subdomains. Hire contractors, and free up your in-house developers for supporting subdomains.&lt;/div&gt;
&lt;p&gt;
&lt;div&gt;Do you have differentiating business capabilities that are not mission critical for your business that you are currently doing in-house? Find a business partner that excels at these. Ask for recommendations - who in the industry is best at this? Approach them about collaborating on a solution.&lt;/div&gt;
&lt;p&gt;
&lt;div&gt;Like many development divisions/teams, you may be drowning in parity work. Trying to be too creative in your software development efforts for supporting subdomains and doing custom development for generic subdomains will leave little time for creativity in the core domain. Do everything you can to eliminate waste in your project portfolio by aligning effort and innovation to purpose. If you could reduce the amount of parity work on supporting and generic subdomains even a small amount, this would start to free up time, talent and energy to focus on your core domain.&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/quJC3kbqpf0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/quJC3kbqpf0/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/How-do-we-get-our-organization-especially-our-stakeholders-on-board-with-strategic-design.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=617cbd21-3dd3-4e7d-b56d-b5183bbb8a97</guid>
      <pubDate>Sat, 07 May 2011 16:31:37 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=617cbd21-3dd3-4e7d-b56d-b5183bbb8a97</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=617cbd21-3dd3-4e7d-b56d-b5183bbb8a97</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/How-do-we-get-our-organization-especially-our-stakeholders-on-board-with-strategic-design.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=617cbd21-3dd3-4e7d-b56d-b5183bbb8a97</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=617cbd21-3dd3-4e7d-b56d-b5183bbb8a97</feedburner:origLink></item>
    <item>
      <title>Does the Core Domain Change Over Time?</title>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;Does the Core Domain change over time?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;Yes, it does. As the marketplace changes and the business adapts to those changes, it must adopt new strategies to gain market share and enter new markets. Strategy changes will typically lead to Core Domain changes, as the areas of the software that support business activities that generate differentiation in the marketplace also change.&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/3iV0RtCHNPk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/3iV0RtCHNPk/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/Does-the-Core-Domain-Change-Over-Time.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=e7805ced-96f5-4ebc-afa4-52e628f97c8d</guid>
      <pubDate>Sat, 07 May 2011 16:20:41 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=e7805ced-96f5-4ebc-afa4-52e628f97c8d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=e7805ced-96f5-4ebc-afa4-52e628f97c8d</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/Does-the-Core-Domain-Change-Over-Time.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=e7805ced-96f5-4ebc-afa4-52e628f97c8d</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=e7805ced-96f5-4ebc-afa4-52e628f97c8d</feedburner:origLink></item>
    <item>
      <title>Strategic Design using DDD - Mile High Agile Conference 2011</title>
      <description>&lt;div id="__ss_7563025"&gt;&lt;img style="float: right;" title="mha2011.png" src="http://www.virtual-genius.com/blog/image.axd?picture=/mha2011.png" border="0" alt="Mile High Agile 2011" width="122" height="197" /&gt;I've uploaded the slides from yesterday's presentation at the Mile High Agile Conference here in Denver to SlideShare, and included them below.&lt;/div&gt;
&lt;p&gt;I wanted to say how impressed I was with the conference. Around 500 attendees, 4 tracks and an open space! This was a lot for the organizing committee to bite off, but the conference exceeded everyone's expectations.&lt;/p&gt;
&lt;p&gt;It was great to be a presenter, and also Sponsor the event through &lt;a href="http://www.agilecooperative.com/"&gt;The Agile Cooperative&lt;/a&gt; and be able to give away a prize. I was proud to be part of the event, and thank those who attended my session at the end of the day and gave me such great feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strategic Design - Meh?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One interesting question I was asked is &lt;strong&gt;&lt;em&gt;why isn't strategic design a more popular conference and agile community topic?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I don't know. In terms of the actual session itself, I felt that it was well-attended, and that everyone was very engaged through the presentation. In terms of the mechanics of the talk, next time I won't need to rely on my notes like I did yesterday. For the timeslot, I was also up against Bob Hartman and other popular presenters.&lt;/p&gt;
&lt;p&gt;As to the broader question of lack of focus on strategic design in the agile community, I think that is a topic for another blog post. Stay tuned - there were a number of great questions during and after the session, and I will respond to them all via blog posts in the coming weeks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Improving my Presentation Title - Free Prize!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Another reason - I think - is the pedestrian title for the presentation. Perhaps I need to spice it up a little.&lt;/p&gt;
&lt;p&gt;Here are some tongue-in-check (or not) suggestions, feel free to propose others:&lt;/p&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;How agile development killed design&lt;/li&gt;
&lt;li&gt;Scrum is the worst thing that every happened to strategic software design&lt;/li&gt;
&lt;li&gt;Agile design - how did we get so far off track?&lt;/li&gt;
&lt;li&gt;Why is agile design rarely strategic?&lt;/li&gt;
&lt;li&gt;Strategy and Design - finding a line of sight&lt;/li&gt;
&lt;li&gt;Aligning strategy and agile design&lt;/li&gt;
&lt;li&gt;...?&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;What do YOU think I should call future iterations of the talk? &lt;strong&gt;&lt;em&gt;I'll send a free copy of Eric's DDD book to the best suggestion.&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a title="Strategic design using ddd" href="http://www.slideshare.net/virtualgenius/strategic-design-using-ddd"&gt;Strategic design using ddd&lt;/a&gt;&lt;/strong&gt; 
&lt;object width="425" height="355"&gt;
&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=strategicdesignusingddd-110408104929-phpapp01&amp;amp;stripped_title=strategic-design-using-ddd&amp;amp;userName=virtualgenius" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=strategicdesignusingddd-110408104929-phpapp01&amp;amp;stripped_title=strategic-design-using-ddd&amp;amp;userName=virtualgenius" name="__sse7563025" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;div id="__ss_7563025"&gt;
&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/virtualgenius"&gt;Paul Rayner&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/-KBkPxZB4zc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/-KBkPxZB4zc/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/Strategic-Design-using-DDD-Mile-High-Agile-Conference-2011.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=9dbd69ba-bce0-427c-9fe8-a0fa707c0e2a</guid>
      <pubDate>Fri, 08 Apr 2011 19:06:37 +0100</pubDate>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=9dbd69ba-bce0-427c-9fe8-a0fa707c0e2a</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=9dbd69ba-bce0-427c-9fe8-a0fa707c0e2a</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/Strategic-Design-using-DDD-Mile-High-Agile-Conference-2011.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=9dbd69ba-bce0-427c-9fe8-a0fa707c0e2a</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=9dbd69ba-bce0-427c-9fe8-a0fa707c0e2a</feedburner:origLink></item>
    <item>
      <title>New Domain-Driven Design (DDD) Article in The Architecture Journal</title>
      <description>&lt;p&gt;&lt;a href="http://www.virtual-genius.com/blog/image.axd?picture=Architecture_Journal_Logo.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="Architecture_Journal_Logo" src="http://www.virtual-genius.com/blog/image.axd?picture=Architecture_Journal_Logo_thumb.jpg" border="0" alt="Architecture_Journal_Logo" width="244" height="59" align="right" /&gt;&lt;/a&gt;The&amp;nbsp; article that Brandon Satrom and I cowrote for &lt;a href="http://msdn.microsoft.com/en-us/architecture/ff476933.aspx" target="_blank"&gt;The Architecture Journal, Issue 23&lt;/a&gt;&amp;nbsp; has finally been released to the wild. Our article is titled: &lt;em&gt;&amp;ldquo;Keeping Architectures Relevant: Using Domain-Driven Design and Emergent Architecture to Manage Complexity and Enable Change.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The overall issue is titled &lt;em&gt;Architecture Modeling and Processes&lt;/em&gt;, and also includes articles on topics such as &amp;ldquo;Modeling in an Agile Context&amp;rdquo;, &amp;ldquo;Software Architecture in the Agile Life Cycle&amp;rdquo; and &amp;ldquo;UML or DSL: Which Bear is Best?"&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.virtual-genius.com/blog/image.axd?picture=Architecture%20Journal%20Cover.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px; display: inline; border-top: 0px; border-right: 0px" title="Architecture Journal Cover" src="http://www.virtual-genius.com/blog/image.axd?picture=Architecture%20Journal%20Cover_thumb.png" border="0" alt="Architecture Journal Cover" width="244" height="150" align="left" /&gt;&lt;/a&gt;One thing I should mention is that Figure 2 in our article is intended to be descriptive, rather than prescriptive. This is possibly not clear from the context in the article, and something we realized only after the article was well past the point of making changes in the editorial process.&amp;nbsp; In some situations there may be several Bounded Contexts within a single Ubiquitous Language, and in others the Ubiquitous Language may be contained within the Bounded Context. This becomes more important as you consider Context Mapping, so I wanted to make sure this is clear.&lt;/p&gt;
&lt;p&gt;Brandon and I are very interested in feedback on from our readers, so please post any comments about the article here or on &lt;a href="http://www.userinexperience.com/post/New-Article-in-The-Architecture-Journal.aspx" target="_blank"&gt;Brandon&amp;rsquo;s blog&lt;/a&gt;. I want to thank Brandon for making writing the article such an enjoyable learning experience.&lt;/p&gt;
&lt;p&gt;From the introduction to our article:&lt;/p&gt;
&lt;h4&gt;&lt;span style="font-family: Verdana; color: #004080; font-size: x-small;"&gt;Keeping Architectures Relevant: Using Domain-Driven Design and Emergent Architecture to Manage Complexity and Enable Change&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-family: Verdana; color: #004080; font-size: x-small;"&gt;Brandon Satrom     &lt;br /&gt;Thought Ascent, Inc.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Verdana; color: #004080; font-size: x-small;"&gt;Paul Rayner     &lt;br /&gt;Virtual Genius, LLC.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Verdana; color: #004080; font-size: x-small;"&gt;March 2010&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: #004080;"&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Sustainable and successful software development is all about managing complexity and enabling change. Successful software architects create designs that clearly address both concerns. For businesses that have complex domains, designing with evolution in mind and using techniques from Domain-Driven Design will result in systems whose architectures deliver a strong, sustainable competitive advantage.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/architecture/ff476933.aspx" target="_blank"&gt;The Architecture Journal, Issue 23&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.microsoft.com/download/5/9/E/59E7BB3C-181D-4180-BC9A-ACAC3C556C7B/AJ23_EN.zip" target="_blank"&gt;PDF version of Issue 23&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=" http://bit.ly/ddd_arch_journal"&gt;Keeping Architectures Relevant: Using Domain-Driven Design and Emergent Architecture to Manage Complexity and Enable Change&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/2zbjsLApz5c" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/2zbjsLApz5c/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/New-Domain-Driven-Design-(DDD)-Article-in-The-Architecture-Journal.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=8e3d38b3-e05a-4d4f-a70c-7becc91dd447</guid>
      <pubDate>Fri, 26 Mar 2010 15:12:00 +0100</pubDate>
      <category>Architecture</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=8e3d38b3-e05a-4d4f-a70c-7becc91dd447</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=8e3d38b3-e05a-4d4f-a70c-7becc91dd447</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/New-Domain-Driven-Design-(DDD)-Article-in-The-Architecture-Journal.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=8e3d38b3-e05a-4d4f-a70c-7becc91dd447</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=8e3d38b3-e05a-4d4f-a70c-7becc91dd447</feedburner:origLink></item>
    <item>
      <title>What is Acceptance Test-Driven Development?</title>
      <description>&lt;p&gt;Acceptance Test-Driven Development (ATDD) employs the approach of specification by example. ATDD is also known as Storytesting or Behavior-Driven Development (BDD).&lt;/p&gt;
&lt;p&gt;Instead of talking in abstract terms about what the system will do, the team collaborates to create specific examples that specify what the system should do from the user's perspective. These executable specifications function as acceptance criteria for the user stories the team is developing. The team specifies as concretely as possible what the specification is, and then the developers code enough of the system to make the test pass to satisfy the acceptance criteria for that specification.&lt;/p&gt;
&lt;p&gt;Frameworks such as Fit and Cucumber provide the means to embed this kind of collaboration into the development process. As Mugridge and Cunningham point out:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;[ATDD]&amp;hellip;tests are a natural way to help develop this ubiquitous language. Such tests provide a comprehensive bridge between discussions of business need and software design. Writing concrete examples as tests explores ways in which to use and evolve the ubiquitous language for expressing business objects, constraints and rules.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="right"&gt;&lt;span style="font-size: xx-small;"&gt;&lt;em&gt;Fit for Developing Software: Framework for Integrated Tests&lt;/em&gt;, by Rick Mugridge and Ward Cunningham. (p. 336)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.virtual-genius.com/blog/image.axd?picture=cucumber_logo.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="cucumber_logo" src="http://www.virtual-genius.com/blog/image.axd?picture=cucumber_logo_thumb.png" border="0" alt="cucumber_logo" width="240" height="97" align="right" /&gt;&lt;/a&gt; Cucumber, for example, is such an amazing ATDD tool because it&amp;rsquo;s so good at mapping stories and acceptance criteria to automated functional tests. Product Owners and BA's write acceptance criteria in natural language. Developers and testers unobtrusively automate tests for them. Anyone on the team can run the tests and see the current state of the system.&lt;/p&gt;
&lt;p&gt;Those wanting to learn more about using Cucumber for ATDD can schedule a private training course, or attend our &lt;a href="http://cucumber-for-atdd-april2010.eventbrite.com/" target="_blank"&gt;next public course in Denver&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Additional resources on ATDD:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://testobsessed.com/wordpress/wp-content/uploads/2008/12/atddexample.pdf" target="_blank"&gt;Elizabeth Hendrickson&amp;rsquo;s article &amp;ldquo;Driving Development with Tests: ATDD and TDD&amp;rdquo;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.industriallogic.com/papers/storytest.pdf" target="_blank"&gt;Industrial Logic&amp;rsquo;s paper on StoryTesting&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/VirtualGenius/~4/IhPzfalTezI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VirtualGenius/~3/IhPzfalTezI/post.aspx</link>
      <comments>http://www.virtual-genius.com/blog/post/What-is-Acceptance-Test-Driven-Development.aspx#comment</comments>
      <guid isPermaLink="false">http://www.virtual-genius.com/blog/post.aspx?id=1fa51c23-d7aa-49a1-a4f1-7b253913c754</guid>
      <pubDate>Tue, 16 Mar 2010 09:44:00 +0100</pubDate>
      <category>Craft</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.virtual-genius.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.virtual-genius.com/blog/post.aspx?id=1fa51c23-d7aa-49a1-a4f1-7b253913c754</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.virtual-genius.com/blog/trackback.axd?id=1fa51c23-d7aa-49a1-a4f1-7b253913c754</trackback:ping>
      <wfw:comment>http://www.virtual-genius.com/blog/post/What-is-Acceptance-Test-Driven-Development.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.virtual-genius.com/blog/syndication.axd?post=1fa51c23-d7aa-49a1-a4f1-7b253913c754</wfw:commentRss>
    <feedburner:origLink>http://www.virtual-genius.com/blog/post.aspx?id=1fa51c23-d7aa-49a1-a4f1-7b253913c754</feedburner:origLink></item>
  </channel>
</rss>

