<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:iweb="http://www.apple.com/iweb" version="2.0">
  <channel>
    <title>Coding</title>
    <link>http://bricedruth.name/Site/Coding/Coding.html</link>
    <description>Welcome to “Coding”: Brice Ruth, Madison, WI M.S. SE, FCD</description>
    <generator>iWeb 3.0</generator>
    <image>
      <url>http://bricedruth.name/Site/Coding/Coding_files/821557046_1a236423c8.jpg</url>
      <title>Coding</title>
      <link>http://bricedruth.name/Site/Coding/Coding.html</link>
    </image>
    <item>
      <title>Enterprise Performance &amp; Scalability</title>
      <link>http://bricedruth.name/Site/Coding/Entries/2007/11/16_Enterprise_Performance_%26_Scalability.html</link>
      <guid isPermaLink="false">88f07008-c31e-4de2-a388-710000d1dd27</guid>
      <pubDate>Fri, 16 Nov 2007 23:08:35 -0600</pubDate>
      <description>&lt;a href=&quot;http://bricedruth.name/Site/Coding/Entries/2007/11/16_Enterprise_Performance_%26_Scalability_files/4.jpg&quot;&gt;&lt;img src=&quot;http://bricedruth.name/Site/Coding/Media/object001_1.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:107px; height:80px;&quot;/&gt;&lt;/a&gt;Attending the 2007 &lt;a href=&quot;http://www.nofluffjuststuff.com/&quot;&gt;No Fluff, Just Stuff&lt;/a&gt; (NFJS) conference in Chicago (Itasca), the first session I attended was Enterprise Performance &amp;amp; Scalability by &lt;a href=&quot;http://www.tedneward.com/&quot;&gt;Ted Neward&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;To start, the talk was excellent. Definitely chock full of useful information that you can walk away and start applying right away. If you’re interested in this stuff, I highly recommend that you check out Neward’s book, &lt;a href=&quot;http://www.amazon.com/Effective-Enterprise-Java-Software-Development/dp/0321130006/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1195269693&amp;sr=8-1&quot;&gt;Effective Enterprise Java&lt;/a&gt;. I know I will be. I also recommend that you figure out when NFJS will be coming to a metropolitan area near you, and see if you can get his talk first hand.&lt;br/&gt;&lt;br/&gt;Two points stuck out from his talk that I want to pass along.&lt;br/&gt;&lt;br/&gt;	1.	Myth - you know what the problem is&lt;br/&gt;	2.	Before you fix something, measure the problem.&lt;br/&gt;&lt;br/&gt;First, the myth. This really hit a chord with me, because I’ve done it many times myself. A customer or manager comes around, describes a problem, and as a developer, I start thinking what the problem could be and quickly jump to a determination of the problem and an idea of what could solve it. Unfortunately, as Ted points out, our intuition sucks.&lt;br/&gt;&lt;br/&gt;The problem is, systems are incredibly complex, and unfortunately, our intuition really does just suck. This leads into the second point. We need to measure.&lt;br/&gt;&lt;br/&gt;Measuring means getting information on our applications performance and scalability. This needs to be done before we jump to conclusions or even ideas about where the problem is and what can be done to solve it. To do this, developers need to provide a means of measuring the application, before a problem develops - but certainly, when a problem presents itself, we need to first think about measuring it, getting some data, then drawing conclusions.</description>
      <enclosure url="http://bricedruth.name/Site/Coding/Entries/2007/11/16_Enterprise_Performance_%26_Scalability_files/4.jpg" length="175149" type="image/jpeg"/>
    </item>
    <item>
      <title>Domain Driven Design</title>
      <link>http://bricedruth.name/Site/Coding/Entries/2007/11/16_Domain_Driven_Design.html</link>
      <guid isPermaLink="false">481d228f-b311-4730-a042-da8c82fec9d8</guid>
      <pubDate>Fri, 16 Nov 2007 15:55:21 -0600</pubDate>
      <description>&lt;a href=&quot;http://bricedruth.name/Site/Coding/Entries/2007/11/16_Domain_Driven_Design_files/cover_medium_1.jpg&quot;&gt;&lt;img src=&quot;http://bricedruth.name/Site/Coding/Media/object000_1.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:107px; height:137px;&quot;/&gt;&lt;/a&gt;The second session I attended at this year’s NFJS in Chicago was on Domain Drive Design with &lt;a href=&quot;http://www.agiledeveloper.com/blog/&quot;&gt;Venkat Subramaniam&lt;/a&gt; - something that has held my interest for about a year now. I’m slowly understanding it more, letting it percolate in the back of my head. In that process, one concept that has struck a chord and tripped me up is the &lt;a href=&quot;http://books.google.com/books?id=7dlaMs0SECsC&amp;pg=PA23&amp;vq=Language&amp;dq=domain+driven+design&amp;psp=1&amp;sig=ToavKrOPuonjDNk60FxwxXAdD3A&quot;&gt;ubiquitous language&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;The use of ubiquitous language is almost a no-brainer, once you’ve read what Eric Evans says about it. The tricky part seems to be how to get there, particularly how to include an entire I/S team and an entire client team so everyone is speaking the same language.&lt;br/&gt;&lt;br/&gt;So, I asked Subramaniam exactly that. Here’s what I learned.&lt;br/&gt;&lt;br/&gt;Subramaniam does not recommend sitting down and having an entire team design something. Instead, a pair of developers (&lt;a href=&quot;http://en.wikipedia.org/wiki/Pair_Programming&quot;&gt;pair programming&lt;/a&gt;) can sit down and design a feature. Developers should pair differently in short periods (daily, weekly, etc.). This causes the ubiquitous language to be cross-pollinated more readily as each pair works with the client on a feature and then switches up and works in a different area.&lt;br/&gt;&lt;br/&gt;In addition to this, senior developers (leads) can assist in validating and cross-pollinating by “running” - jumping from pair to pair in the course of a day or week. &lt;br/&gt;&lt;br/&gt;Good stuff, and definitely concrete information that at the very least can be tried and tweaked until it seems like the team and the client are starting to build and refine a domain specific ubiquitous language.&lt;br/&gt;&lt;br/&gt;I jotted down a couple other notes to share.&lt;br/&gt;&lt;br/&gt;	•	Building what your customers “wanted” guarantees failure. Write what your customers “want” (present), not what they “wanted” (past).&lt;br/&gt;	•	Code reviews are good (especially peer code reviews). A code review should make you smarter (peer should point out an improvement) or make you a hero (point out something you did really well).</description>
      <enclosure url="http://bricedruth.name/Site/Coding/Entries/2007/11/16_Domain_Driven_Design_files/cover_medium_1.jpg" length="46574" type="image/jpeg"/>
    </item>
  </channel>
</rss>
