<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Robby on Rails: Tag agile</title>
    <link>http://www.robbyonrails.com/articles/tag/agile</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>thoughts.sort_by{|t| t[:topic]}.collect </description>
    <item>
      <title>Basecamp...</title>
      <description>&lt;p&gt;Kudos to the 37signals team for launching what looks like a nice way to get the word out about their products.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve been using Basecamp for three years and it&amp;#8217;s been a great tool for collaborating with our clients.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.basecampHQ.com?referrer=ROBBYRUSSELL"&gt;&lt;img alt="Basecamp" border="0" height="250" src="https://affiliate.37signals.com/images/products/basecamp/banner-300x250.png" width="300" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Disclaimer: This is my get-rich-quick scheme for the day.&lt;/p&gt;
</description>
      <pubDate>Wed, 04 Jun 2008 12:13:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:56c1393e-7174-428c-9fc1-04cb3bac8f5c</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2008/06/04/basecamp</link>
      <category>37signals</category>
      <category>basecamp</category>
      <category>projects</category>
      <category>agile</category>
      <category>team</category>
      <category>collaborate</category>
      <category>dialogue</category>
    </item>
    <item>
      <title>The Art of Delivery, part 2</title>
      <description>&lt;p&gt;Two years ago, I wrote an article titled, &lt;a href="http://www.robbyonrails.com/articles/2006/05/31/the-art-of-delivery-part-1"&gt;The Art of Delivery&lt;/a&gt;. I wanted to post a few updates based on how our process has evolved since then (and continues to).&lt;/p&gt;


	&lt;p&gt;Over the past few years, we&amp;#8217;ve been fortunate enough to work on quite a diverse collection of projects. This has enabled us to work with many different clients and solicit feedback on our process. This has given us an opportunity to evolve a set of best practices that fulfills the long-term project goals/budgets of our client while making sure that we&amp;#8217;re able to maintain a design and development process that is agile.&lt;/p&gt;


	&lt;p&gt;As I&amp;#8217;ve mentioned in previous posts, our team typically bills work per-iteration on projects rather than per-hour or a flat-bid per-project. Since iterations are bite-sized pieces of the entire project and limited to 1-2 weeks, our teams estimates are much more accurate and we&amp;#8217;re able to keep things rolling and on track.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2275337814/" title="stay on track by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2129/2275337814_6774d562ee.jpg" width="500" height="333" alt="stay on track" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The basic structure of our project looks like this.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;A &lt;strong&gt;Project&lt;/strong&gt; has many releases&lt;/li&gt;
		&lt;li&gt;A &lt;strong&gt;Release&lt;/strong&gt; has many iterations&lt;/li&gt;
		&lt;li&gt;An &lt;strong&gt;Iteration&lt;/strong&gt; has many deliverables&lt;/li&gt;
		&lt;li&gt;A &lt;strong&gt;Deliverable&lt;/strong&gt; has many tasks&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Before we begin working on an iteration, we outline a set of goals that we want to create solutions for. This process comes out of discussions between our client and us until we agree on what is the highest value/most critical to the success of the project, based on our shared understanding of where we are today. These goals translate into Deliverables, which in a typical iteration might require Interaction Design, Interface Design, or Development. We tend to break our process up into stages so that Interaction Design on Module &lt;span class="caps"&gt;XYZ&lt;/span&gt; would be implemented in a following iteration. This is because it&amp;#8217;s unrealistic to expect someone to provide an accurate estimate on how long it&amp;#8217;ll take to implement something before you know how people will interact with it.&lt;/p&gt;


	&lt;p&gt;Within any given iteration, our team is spread across several sets of deliverables. As a team, we breakdown these deliverables into smaller sets of tasks. It&amp;#8217;s our aim to keep tasks smaller than a full days worth of work as it&amp;#8217;s much easier to measure progress across the iteration when we can track tasks at a granular level.&lt;/p&gt;


	&lt;p&gt;Essentially, tasks are the individual steps needed to achieve these goals. We don&amp;#8217;t go out of our way to list each one of those during an estimate process as some tasks take less time than it takes to generate an estimate for them. Each person providing estimates should avoid getting too granular and aim to find a good balance that compliments their workflow.&lt;/p&gt;


	&lt;p&gt;Like most things&amp;#8230; mileage may vary.&lt;/p&gt;


	&lt;p&gt;Through this process, we can get calculate the estimated costs for each deliverable, which then provides us an cost for the entire iteration. In addition to deliverables, we also budget a set of hours/days so that we can be compensated for handling small requests, bug fixes, and project management. It&amp;#8217;s important to factor these things into your process.&lt;/p&gt;


	&lt;p&gt;In future posts, I&amp;#8217;ll discuss how we&amp;#8217;re handling this process while working on multiple projects&amp;#8230; as that&amp;#8217;s where it can chaos can start if you&amp;#8217;re not careful. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/2274544107/" title="oops by Robby Russell, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2123/2274544107_0d427f84a7.jpg" width="500" height="333" alt="oops" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;How does your team work? As we&amp;#8217;re always evolving our process in an effort so that we can be more efficient and speed up our delivery cycle, I&amp;#8217;d love to learn from those in the community.&lt;/p&gt;
</description>
      <pubDate>Thu, 22 May 2008 13:42:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:268b4aaa-a86f-443e-8365-039ef5c747aa</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2008/05/22/the-art-of-delivery-part-2</link>
      <category>Business</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>agile</category>
      <category>development</category>
      <category>iterations</category>
      <category>projects</category>
      <category>deliverables</category>
      <category>team</category>
      <category>estimates</category>
      <category>budgets</category>
      <category>process</category>
    </item>
    <item>
      <title>The Argon Express 2008? It's not too late!</title>
      <description>&lt;p&gt;Picture yourself and your laptop. It&amp;#8217;s been over a day and you&amp;#8217;re sitting on a train with a group of Rails developers with a view like this over your shoulder.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/planetargon/172836278/"&gt;&lt;img src="http://farm1.static.flickr.com/58/172836278_971d94bdcf.jpg?v=0" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Hacking and reading on the train.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/planetargon/171979062/"&gt;&lt;img src="http://farm1.static.flickr.com/48/171979062_67b4f36d32.jpg?v=0" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Enjoying the sceneary of the U.S.A.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/planetargon/171147271/in/pool-argonexpress"&gt;&lt;img src="http://farm1.static.flickr.com/72/171147271_327da3ae00.jpg?v=0" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Two years ago&amp;#8230; a group of us went from Portland to Chicago for RailsConf 2006 on the &lt;a href="http://theargonexpress.com"&gt;Argon Express&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/planetargon/170934210/"&gt;&lt;img src="http://farm1.static.flickr.com/60/170934210_1f1c24fdf1.jpg?v=0" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I know this is a tad late&amp;#8230; but uf you haven&amp;#8217;t purchased plane tickets to Portland yet for CabooseConf or RailsConf 2008 and would be interested in catching the train from somewhere the East Coast, &lt;a href="mailto:robbyrussell+argonexpress@gmail.com"&gt;email me&lt;/a&gt; and we&amp;#8217;ll talk. I&amp;#8217;m hoping to organize the Argon Express 2008 over next few weeks.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/jeremyhubert/174669916/"&gt;&lt;img src="http://farm1.static.flickr.com/45/174669916_e117fb56b8.jpg?v=0" /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 05 Mar 2008 18:39:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:44f449d6-32ae-45c8-9a12-581bdc84a5c1</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2008/03/05/the-argon-express-2008-its-not-too-late</link>
      <category>Ruby on Rails</category>
      <category>PLANET ARGON</category>
      <category>argonexpress</category>
      <category>train</category>
      <category>railsconf</category>
      <category>caboose</category>
      <category>cabooseconf</category>
      <category>rails</category>
      <category>rubyonrails</category>
      <category>agile</category>
    </item>
    <item>
      <title>Embracing Chaos, part 1</title>
      <description>&lt;p&gt;Consider this part one of several posts on my thoughts of &lt;strong&gt;the art of embracing chaos&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;Don&amp;#8217;t let &lt;a href="http://www.amazon.com/Agile-Software-Development-SCRUM-Schwaber/dp/0130676349"&gt;the books&lt;/a&gt; fool you. The construction of custom software is an unmastered and volatile cesspool of chaos. I don&amp;#8217;t adhere to the belief that there is a perfect methodology or process that will work for every project&amp;#8230; as I&amp;#8217;m sure many of you don&amp;#8217;t.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.robbyonrails.com/files/usa_lebowski_hi.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Unlike bowling, you&amp;#8217;ll never achieve a perfect score. Even in bowling, It&amp;#8217;s unlikely that anybody will learn how to bowl a perfect score and do so on every game for the rest of their career.&lt;/p&gt;


	&lt;p&gt;You&amp;#8217;ll never meet &lt;em&gt;every&lt;/em&gt; expectation that a client has on every project.&lt;/p&gt;


	&lt;p&gt;You&amp;#8217;ll never meet &lt;em&gt;every&lt;/em&gt; expectation that a user has when they interact with your application.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.mickipedia.com/?p=1007"&gt;Expectations are an interesting thing&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Your project might get widely adopted and embraced, but &lt;a href="http://istwitterdown.com/"&gt;you&amp;#8217;re still trying to control chaos&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/robbyrussell/261845948/" title="chaos by Robby Russell, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/88/261845948_5c6fc23e4f.jpg" width="500" height="333" alt="chaos" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s chaos. Pure chaos&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;


	&lt;p&gt;So, why do we bother? Why do we try so hard when the odds aren&amp;#8217;t in our favor?&lt;/p&gt;


	&lt;p&gt;To be continued&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Related Posts:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/04/10/embracing-failure-part-1"&gt;Embracing Failure&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/11/18/dont-over-promise"&gt;Don&amp;#8217;t Over Promise&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; &lt;a href="http://en.wikipedia.org/wiki/Chaos_theory"&gt;Chaos Theory&lt;/a&gt;, Wikipedia&lt;/p&gt;
</description>
      <pubDate>Mon, 17 Dec 2007 22:21:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b33dc953-4c4c-478b-9332-b0f58c09e214</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/12/17/embracing-chaos-part-1</link>
      <category>Business</category>
      <category>Programming</category>
      <category>d3</category>
      <category>agile</category>
      <category>development</category>
      <category>d3</category>
      <category>projectmanagmeent</category>
      <category>clients</category>
      <category>choas</category>
      <category>bowling</category>
      <category>expectations</category>
      <category>control</category>
    </item>
    <item>
      <title>Skitch... my favorite desktop application of 2007?</title>
      <description>&lt;p&gt;It just occurred to me that &lt;a href="http://myskitch.com/robbyrussell/rmad_-_action_alerts__nalgene_boycott-20070712-161219/"&gt;my first Skitch&lt;/a&gt; was on July 7th, 2007. 7/7/7. I&amp;#8217;ve been meaning to post an article about how Skitch has changed the way &lt;a href="http://planetargon.com/about.html"&gt;our team&lt;/a&gt; approaches reporting bugs and communicating ideas visually.&lt;/p&gt;


	&lt;p&gt;First of all, &lt;a href="http://plasq.com/skitch"&gt;the Skitch web site&lt;/a&gt; advertises it (&lt;a href="http://plasq.com/skitch#demo"&gt;see video&lt;/a&gt;) as a fun tool for playing with photos and sharing stuff with friends/family. While this is true, I think their bigger market could be those of us who work in the web design and development community. It took a less than a week for Skitch to become a tool that I rely on the most during my day to day work and since it keeps surprising me that people aren&amp;#8217;t using it and/or haven&amp;#8217;t heard about it&amp;#8230; I thought that I&amp;#8217;d share how we&amp;#8217;re using it at &lt;a href="http://planetargon.com"&gt;Planet Argon&lt;/a&gt;.&lt;/p&gt;


	&lt;h2&gt;Introducing &amp;#8220;LOLBUGZ&amp;#8221;&lt;/h2&gt;


	&lt;p&gt;Our team is currently using &lt;a href="http://lighthouseapp.com"&gt;Lighthouse&lt;/a&gt; for managing bugs/tickets for internal and client projects. If there is one way to slow down bug fixing cycle.. .it&amp;#8217;s the ticket submission process. It takes a lot of time and commitment to try and communicate some problems that you&amp;#8217;ll find in a web application. This is why screenshots can be so useful to helping speed up the process. Skitch allows us to not only provide a screenshot really quickly, but it gives us the ability to focus our attention with shapes and text, which provides more context when viewing an image.&lt;/p&gt;


	&lt;p&gt;For example, here are a few real-world Skitches that I&amp;#8217;ve used to report some problems.&lt;/p&gt;


	&lt;p&gt;What happened to this drop down?&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/highrise_dropdown...-20071102-153422.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;This pagination needs some &lt;span class="caps"&gt;CSS&lt;/span&gt;-Love!&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/contiki_holidays___contikipedia___articles_tagged_with__europe-20071014-173118.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Oh no! Tags are getting grouped together&amp;#8230;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/contiki-20070926-165250.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Styling has gone crazy&amp;#8230;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/contiki_holidays___robbyrussell_s_profile-20071014-232305.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;I mastered an unordered list! (hooray!!)&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/contiki-20070926-162150.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;This list isn&amp;#8217;t scaling anymore&amp;#8230;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/contiki__create_a_new_ticket-20071001-202613.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Side note: &lt;span class="caps"&gt;LOL BUGZ&lt;/span&gt; was a term coined by Rick Olson at &lt;a href="http://activereload.com"&gt;Active Reload&lt;/a&gt; to describe the tickets that I post for &lt;a href="http://lighthouseapp.com"&gt;Lighthouse&lt;/a&gt;. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/tickets_projects-20070925-141221.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Trying out 15 during the initial releases for the iPhone&amp;#8230; bug report sent via twitter to Erik Kastner.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/15_on_iphone_alpha-20071120-104208.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;As you can see, using Skitch helps communicate some very specific things without needing to type a huge description. Of course, we do try our best to add more context with our tickets. For example, here is a &lt;a href="http://activereload.lighthouseapp.com/projects/44/tickets/444-members-people-and-the-confusion"&gt;real-world example of a ticket&lt;/a&gt; that I posted on Lighthouse. As you&amp;#8217;ll see, there are a few skitches embedded in the tickets, which works &lt;em&gt;much&lt;/em&gt; better  than attaching screenshots to tickets.&lt;/p&gt;


	&lt;p&gt;One of the best features of Skitch is it&amp;#8217;s work-flow. Within a few seconds, I can do the following tasks.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Take a screenshot of a specific region of my screen&lt;/li&gt;
		&lt;li&gt;Add some arrows and text&lt;/li&gt;
		&lt;li&gt;Click on &lt;strong&gt;Webpost&lt;/strong&gt;, which will upload directly to myskitch.com&lt;/li&gt;
		&lt;li&gt;Click on &lt;strong&gt;Share&lt;/strong&gt; to navigate to the new upload&lt;/li&gt;
		&lt;li&gt;Click on the &lt;strong&gt;embed&lt;/strong&gt; textfield and it uses JS to copy the embed html into my paste buffer&lt;/li&gt;
		&lt;li&gt;Paste the html snippet directly into the ticket that I&amp;#8217;m reporting&lt;/li&gt;
		&lt;li&gt;Submit my &lt;span class="caps"&gt;LOL BUG&lt;/span&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Side note: it also allows you to upload to Flickr, a ftp account, etc.&lt;/p&gt;


	&lt;p&gt;Over the past four months, Skitch has become one of my favorite &lt;span class="caps"&gt;OS X&lt;/span&gt; tools. The interface is lightweight and the workflow is almost perfect (feature request: providing the embed code in my paste buffer without needing to go to myskitch would be A+++)&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve also used &lt;a href="http://jingproject.com/"&gt;Jing&lt;/a&gt;, which works on Windows and &lt;span class="caps"&gt;OS X&lt;/span&gt; and does video. I&amp;#8217;ve not found it to be as intuitive for working in this manner. In fact, the work-flow leaves a lot to be desired. However! It does do video and this has come in handy a few times for showing people some &amp;#8220;live&amp;#8221; interaction-type bugs that can&amp;#8217;t be communicated as easily through text/images.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re not using Skitch yet and are on &lt;span class="caps"&gt;OS X&lt;/span&gt;&amp;#8230; I highly recommend that you try it out for a few weeks during a bug fixing sprint. We&amp;#8217;ve gotten our clients and almost everybody on the team using it in this fashion. The productivity increases haven&amp;#8217;t gone unnoticed.&lt;/p&gt;


	&lt;p&gt;That&amp;#8217;s not to say that it&amp;#8217;s not fun for point out things that aren&amp;#8217;t related to your project bugs. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/home__pitchfork-20070728-124442.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/happy_bosses_day___-20071016-080950.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://myskitch.com/robbyrussell/planetargon-street-2-20071010-093822.jpg/preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Happy Skitching!&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Plasq liked the writeup and gave me 50 extra invites to pass out for Skitch. So, if you&amp;#8217;re in need of one&amp;#8230; &lt;a href="mailto:robby@planetargon.com"&gt;ask me via email&lt;/a&gt;. Thanks Plasq team!&lt;/p&gt;
</description>
      <pubDate>Tue, 20 Nov 2007 13:04:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:7b519cb1-f5aa-43cb-ac60-60ca7eae194c</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/11/20/skitch-my-favorite-desktop-application-of-2007</link>
      <category>PLANET ARGON</category>
      <category>bugs</category>
      <category>skitch</category>
      <category>tickets</category>
      <category>design</category>
      <category>development</category>
      <category>agile</category>
      <category>apple</category>
      <category>osx</category>
    </item>
    <item>
      <title>Designers, Developers, and the x_ Factor</title>
      <description>&lt;p&gt;Our team is lucky enough to be in a position where we have both designers &lt;span class="caps"&gt;AND&lt;/span&gt; developers working on the same code base in parallel.&lt;/p&gt;


	&lt;p&gt;Since Ruby on Rails adopts the Model-View-Control pattern for separating business logic from the presentation layer, we&amp;#8217;re able to give our designers a lot of breathing room to to design the interface, whether it&amp;#8217;s for interaction or aesthetic reasons. However, sometimes this breathing room has resulted in small bugs slipping into the application interface. In general, nothing disastrous, but each bug that slips into the queue, slows down the project and we want to avoid as much of that as possible.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;d like to share a few issues that we&amp;#8217;ve seen occur on various occasions, and then show you what we&amp;#8217;ve done to avoid them happening again.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Scenario #1:&lt;/strong&gt; The case of the changed &lt;code&gt;div&lt;/code&gt; id, (victim: designer)&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Designer adds a few &lt;span class="caps"&gt;HTML&lt;/span&gt; elements to the page, defines an &lt;code&gt;id&lt;/code&gt; on a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tag and styles it with &lt;span class="caps"&gt;CSS&lt;/span&gt;.&lt;/li&gt;
		&lt;li&gt;A few days later, a developer needs to make some changes, tests it in their favorite browser and commits.&lt;/li&gt;
		&lt;li&gt;Later, the designer doesn&amp;#8217;t understand why the styling is all messed up. &amp;#8220;It &lt;em&gt;was&lt;/em&gt; working fine.&amp;#8221; &lt;/li&gt;
		&lt;li&gt;...minutes, hours&amp;#8230; go by where the designer tries to track down the issue. &amp;#8220;Oh! Someone renamed the &lt;code&gt;id&lt;/code&gt; in this &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tag. Sigh.&amp;#8221; &lt;/li&gt;
		&lt;li&gt;Developer apologies, but explains that he needed to do it because he needed to make it work with his new &lt;span class="caps"&gt;RJS&lt;/span&gt; code.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;&lt;strong&gt;Scenario #2:&lt;/strong&gt; The case of the changed &lt;code&gt;div&lt;/code&gt; id, (victim: developer)&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Developer is implementing this cool new Ajax feature into the web application
	&lt;ul&gt;
	&lt;li&gt;The code relies on there being one or many &lt;span class="caps"&gt;HTML&lt;/span&gt; elements in the &lt;span class="caps"&gt;DOM&lt;/span&gt; with specific &lt;code&gt;id&lt;/code&gt; values defined.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Example: &lt;code&gt;&amp;lt;div id="notification_message"&amp;gt;&lt;/code&gt;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;A few days later, a designer is making some changes to the layout and needs to restyle some of the view that this &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tag is defined. Designer decides to change the id to a different value for any variety of reasons. (or perhaps they changed it to use a class instead of styling it by the id). Often times, we don&amp;#8217;t know who set the id or class&amp;#8230; and many times the developers aren&amp;#8217;t savvy enough with &lt;span class="caps"&gt;HTML&lt;/span&gt; and designers end up cleaning things up a bit. &lt;/li&gt;
		&lt;li&gt;Later, code is checked in and designer didn&amp;#8217;t notice that the Ajax was now breaking as they weren&amp;#8217;t focusing on just the layout.&lt;/li&gt;
		&lt;li&gt;Day or two later, developer sees bug, &amp;#8220;Feature X isn&amp;#8217;t working, throwing JavaScript error&amp;#8230;&amp;#8221; &lt;/li&gt;
		&lt;li&gt;Developer is confused, &amp;#8220;Hey, that was working! What happened?&amp;#8221; &lt;/li&gt;
		&lt;li&gt;Developer tracks down the problem, discusses with designer, they figure out a solution. Problem solved.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I could outline a few other examples, but I really wanted to highlight these two types of situations, as our team has seen this happen on several occasions. Luckily, we&amp;#8217;ve learned through these experiences and have taken some measures to try and avoid them in the future.&lt;/p&gt;


	&lt;h2&gt;Moving forward (together)&lt;/h2&gt;


	&lt;p&gt;Both of the examples above, were essentially the same problem, but resulted in problems for a different role in the design and development cycle. While, I&amp;#8217;ve definitely been the victim of #2 several times myself, I know that I&amp;#8217;ve also been the guilty of #1. So, what can we do as designers and developers to work with each other without causing these little problems from occurring? (remember: many little problems can add up to a lot of wasted time spent resolving them)&lt;/p&gt;


	&lt;p&gt;Several months ago, I had a meeting with &lt;a href="http://chriszgriffin.com/"&gt;Chris&lt;/a&gt; (User Interface Designer) and &lt;a href="http://blog.imperialdune.com/"&gt;Graeme&lt;/a&gt; (Lead Architect/Developer) to discuss this very problem. At the time, we were implementing a lot of Ajax into an application and were occasionally running into Scenario #2. We discussed a few possible ways of communicating that, &amp;#8220;yes, this div id should &lt;span class="caps"&gt;NOT&lt;/span&gt; be changed (without talking to a developer first)!&amp;#8221;&lt;/p&gt;


	&lt;h3&gt;Idea 1: Comment our &amp;#8220;special&amp;#8221; &lt;span class="caps"&gt;HTML&lt;/span&gt; elements&lt;/h3&gt;


	&lt;p&gt;We discussed using ERb comments in our views to do something like the following.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  &amp;lt;% # no seriously, please don't change this id, it's needed for some Ajax stuff %&amp;gt;
  &amp;lt;div id="notification_message"&amp;gt;
    ...
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;We all agreed that, while effective, it was going to clutter up our &lt;span class="caps"&gt;RHTML&lt;/span&gt; code more than any of us desired.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Team Response:&lt;/strong&gt; &lt;em&gt;Meh.&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt;Idea 2: Reserve id&amp;#8217;s for developers&lt;/h3&gt;


	&lt;p&gt;Another idea that came up, was to ask that designers only use classes and ids wold be used by the developers when they needed it.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  &amp;lt;div id="developer_terriroty" class="designer_territory"&amp;gt;
    ...
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Chris pointed out that this wasn&amp;#8217;t an ideal solution as there is a distinct case for when to use ids versus classes.. and he is very strict about adhering to the &lt;span class="caps"&gt;HTML&lt;/span&gt;/CSS standards.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Team Response&lt;/strong&gt;: &lt;em&gt;Not hot about it&amp;#8230;&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt;Idea 3: Naming convention for Ajax-dependent elements&lt;/h3&gt;


	&lt;p&gt;The third idea that was discussed, was specifying a naming convention for any elements that were needed by our Ajax code. We played around on the whiteboard with some ideas and settled on the idea that we&amp;#8217;d prefix our id&amp;#8217;s with something easy to remember for both designers and developers.&lt;/p&gt;


	&lt;p&gt;We agreed on&amp;#8230; &lt;code&gt;x_&lt;/code&gt; (x underscore), which would make an element id look something like this:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  &amp;lt;div id="x_notification_message"&amp;gt;
    ...
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;&lt;strong&gt;x == ajax&lt;/strong&gt;... get it?&lt;/p&gt;


	&lt;p&gt;While this adds the strain of typing two more characters to much of our &lt;span class="caps"&gt;RJS&lt;/span&gt; code, we don&amp;#8217;t run into Scenario #2 very often anymore.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  render :update do |page|
    page[:x_notification_message] = 'Something exciting happened... and this is your notification!'
    page[:x_notification_message].visual_effect :highlight
  end
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;or in client-side JavaScript (where we also use this)...&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;
  $('x_notification_message').do_something
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;I find that this helps our team keep a clear distinction between what can and shouldn&amp;#8217;t be changed in the views by our designers. Sometimes they have a good reason to do so, but they know that if there is &lt;code&gt;x_&lt;/code&gt;, then they should ask one of the developers on the team for assistance in renaming it without causing any problems in the application. It also allows our designers to add classes to these elements, or style the id that we&amp;#8217;ve defined.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Team Response&lt;/strong&gt;: &lt;em&gt;Wow, was that all we needed to agree on? Hooray!&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;This leads me to some other problems that have/may come up, but I&amp;#8217;ll discuss that in my next post on this topic, when I&amp;#8217;ll show you how we can use RSpec to avoid these sorts of designer versus developer problems.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re working in a similar environment, how are your designers and developers working, together, in perfect harmony?&lt;/p&gt;


	&lt;p&gt;Until next time, remember to &lt;a href="http://www.robbyonrails.com/articles/2007/05/23/hug-your-designer-day-part-2"&gt;hug your designer&lt;/a&gt;. ...and if you&amp;#8217;re still having developer &lt;em&gt;design&lt;/em&gt; your applications, consider hiring a designer. ;-)&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;:&lt;/strong&gt; changed examples after a few comments about using div_for as another solution. (see comments for details)&lt;/p&gt;
</description>
      <pubDate>Wed, 01 Aug 2007 00:39:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:bcf3fb50-6b05-48cd-830f-43144d80c243</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/08/01/designers-developers-and-the-x_-factor</link>
      <category>Ruby on Rails</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>rails</category>
      <category>ajax</category>
      <category>development</category>
      <category>rubyonrails</category>
      <category>agile</category>
      <category>design</category>
      <category>process</category>
      <category>views</category>
      <category>designers</category>
      <category>developers</category>
      <category>rhtml</category>
      <category>erb</category>
      <category>conventions</category>
      <category>bugs</category>
    </item>
    <item>
      <title>Berkun introduces ADD</title>
      <description>&lt;p&gt;Author of &lt;a href="http://www.scottberkun.com/the-book-the-art-of-project-management/"&gt;The Art of Project Management&lt;/a&gt;, Scott Berkun, &lt;a href="http://www.scottberkun.com/blog/2007/asshole-driven-development/"&gt;introduces Asshole Driven development&lt;/a&gt;.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;Asshole Driven development (ADD) &amp;#8211; Any team where the biggest jerk makes all the big decisions is asshole driven development. All wisdom, logic or process goes out the window when Mr. Asshole is in the room, doing whatever idiotic, selfish thing he thinks is best. There may rules and processes, but Mr. A breaks them and people follow anyway.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;&lt;a href="http://www.scottberkun.com/blog/2007/asshole-driven-development/"&gt;Read the rest&amp;#8230;&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 19 Jun 2007 17:22:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:da2a9c45-a001-46c3-83ba-23c38346a0eb</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/06/19/berkun-introduces-add</link>
      <category>Programming</category>
      <category>agile</category>
      <category>project</category>
      <category>management</category>
    </item>
    <item>
      <title>Rails Business: Weekly Review #2</title>
      <description>&lt;p&gt;First of all, I&amp;#8217;d like to welcome the more than fifty people that have joined the &lt;a href="http://groups.google.com/group/rails-business"&gt;Rails Business group&lt;/a&gt; since &lt;a href="http://www.robbyonrails.com/articles/2007/06/09/rails-business-weekly-review-1"&gt;my last post&lt;/a&gt;. Over the past week, there were less posts, but we did cover a few important topics, which may be of interest to you.&lt;/p&gt;


	&lt;h2&gt;Subcontracting&lt;/h2&gt;


	&lt;p&gt;Michael Breen asked a few questions about subcontracting for larger firms and how people set their rates when doing this. Several of the responses provided some personal experiences (good and bad) of being a subcontractor on large projects. Where some risks are and how to negotiate your rates, when applicable.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://groups.google.com/group/rails-business/browse_thread/thread/f75725585cd0cbe8"&gt;Read the discussion&lt;/a&gt;&lt;/p&gt;


	&lt;h2&gt;Change Requests&lt;/h2&gt;


	&lt;p&gt;Nick Coyne &lt;a href="http://groups.google.com/group/rails-business/browse_thread/thread/6d29ba1dedc81a8c"&gt;started a discussion&lt;/a&gt; on how to manage change requests in an Agile development process.&lt;/p&gt;


	&lt;h2&gt;Dealing with large clients&lt;/h2&gt;


	&lt;p&gt;There was also a discussion about how to go about responding to a 150 page &lt;span class="caps"&gt;RFP&lt;/span&gt; for a large client. A few of us offered our experiences of bidding on large projects. &lt;a href="http://groups.google.com/group/rails-business/browse_thread/thread/bc6665070c3e391b"&gt;Read more&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Join the Community&lt;/h3&gt;


	&lt;p&gt;The list is about to pass &lt;strong&gt;400 members&lt;/strong&gt; and it&amp;#8217;s already proving to be a valuable resource for all of you entrepreneurs out there. I encourage you all to &lt;a href="http://groups.google.com/group/rails-business/browse_thread/thread/f374441071075c4d"&gt;introduce yourself&lt;/a&gt;.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;For more info: &lt;a href="http://groups.google.com/group/rails-business"&gt;http://groups.google.com/group/rails-business&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
</description>
      <pubDate>Mon, 18 Jun 2007 01:26:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:46c41c8e-58fa-4311-9993-2edc4f43f0f8</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/06/18/rails-business-weekly-review-2</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>PLANET ARGON</category>
      <category>business</category>
      <category>subcontracting</category>
      <category>clients</category>
      <category>changes</category>
      <category>agile</category>
      <category>planetargon</category>
    </item>
    <item>
      <title>BDD is still kinky</title>
      <description>&lt;p&gt;&lt;a href="http://flickr.com/photos/planetargon/447627473"&gt;&lt;img src="http://farm1.static.flickr.com/214/447627473_36d5614c82.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I still believe that &lt;a href="http://www.robbyonrails.com/articles/2007/02/08/is-bdd-kinkier-than-tdd"&gt;Behavior-Driven Development is kinkier than Test-Driven Development&lt;/a&gt;...&lt;/p&gt;
</description>
      <pubDate>Tue, 10 Apr 2007 16:51:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:936e15de-98f3-41da-8ef2-895c8c6dbb0d</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/04/10/bdd-is-still-kinky</link>
      <category>Programming</category>
      <category>bdd</category>
      <category>tdd</category>
      <category>behavior</category>
      <category>driven</category>
      <category>agile</category>
      <category>development</category>
      <category>kinky</category>
      <category>rspec</category>
    </item>
    <item>
      <title>Embracing Failure, part 1</title>
      <description>&lt;p&gt;I&amp;#8217;m currently reading &lt;a href="http://www.amazon.com/Engineer-Human-Failure-Successful-Design/dp/0679734163"&gt;To Engineer is Human&lt;/a&gt;, by Henry Petroski and found the following applicable to software development and managing client and customer expectations.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;As much as it is human to make mistakes, it is also human to want to avoid them. Murphy&amp;#8217;s Law, holding that anything that can go wrong will, is not a law of nature but a joke. All the light bulbs that last until we tire of the lamp, all the shoelaces that outlast their shoes, all the automobiles that give trouble-free service until they are traded in have the last laugh on Murphy. Just as he will not outlive his law, so nothing manufactured can be or is expected to last forever. Once we recognize this elementary fact, the possibility of a machine or a building being as near to perfect for its designed lifetime as its creators may strive to be for theirs is not only a realistic goal but also a reasonable expectation for consumers. It is only when we set ourselves such an unrealistic goal as buying a shoelace that will never break, inventing a perpetual motion machine, or building a vehicle that will never break down that we appear to be fools and not rational beings.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I&amp;#8217;m sure that most of us are guilty of having high expectations for products that we purchased. (why does my ipod screen scratch so easily when in my pocket?) We also set high expectations for the code that we develop, which is why we (hopefully) continue to refine our process. We&amp;#8217;re bound to time and budget constraints, which often prevent us from testing every imaginable edge case. Given our constraints, problems are almost always going to arise. It&amp;#8217;s no wonder that we see Test-Driven Development as an important part of a healthy development process. We want to catch our failures as early as possible.&lt;/p&gt;


	&lt;p&gt;Our clients often have high expectations and it&amp;#8217;s almost always very reasonable. That&amp;#8217;s not to say that some clients will not have highly irrational expectations. It&amp;#8217;s our job to manage these expectations as best as possible.&lt;/p&gt;


	&lt;p&gt;Do we mislead our clients by convincing them that our &lt;span class="caps"&gt;TDD&lt;/span&gt;/BDD process is going to prevent any bugs from creeping from the woodwork after the development cycle is finished?&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;&amp;#8220;I thought that we paid you to fully test the code?&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Really&amp;#8230; is that even possible? Can we predict (and test) every possible interaction within an application? Highly unlikely.&lt;/p&gt;


	&lt;p&gt;What we &lt;em&gt;can&lt;/em&gt; do is plan for and embrace failure. We can help our clients understand that almost every application needs to be &lt;em&gt;maintained&lt;/em&gt; after it&amp;#8217;s initial development cycle. Bugs are inevitable and there needs to be a &lt;a href="http://daringfireball.net/linked/2007/march#wed-14-adobedevcycle"&gt;clear process for handling them&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Perhaps I&amp;#8217;m abusing the bug fixing process by calling it a failure&amp;#8230; but I&amp;#8217;ve also found that yes&amp;#8230; many bugs are due to failure. Whether that be a failure to &lt;a href="http://behavior-driven.org/"&gt;specify application behavior&lt;/a&gt;, a failure to understand the project goals, a &lt;a href="http://www.robbyonrails.com/articles/2006/09/27/project-enlightenment-with-d3"&gt;failure in communication&lt;/a&gt;, ...or maybe a failure in our software architecture. We&amp;#8217;re constantly failing.. and it&amp;#8217;s okay!&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;IT&amp;#8217;S &lt;span class="caps"&gt;OKAY TO FAIL&lt;/span&gt;!&lt;/strong&gt; (some of the time&amp;#8230;)&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;No one &lt;em&gt;wants&lt;/em&gt; to learn by mistakes, but we cannot learn enough from successes to go beyond the state of the art. Contrary to their popular characterization as intellectual conservatives, engineers are really among the avant-garde. They are constantly seeking to employ new concepts to reduce the weigh and thus the cost of their structures, and they are constantly striving to do more with less so the resulting structure represents an efficient use of materials. The engineer always believes he is trying something without error, but the truth of the matter is that each new structure can be a new trial. In the meantime the layman, whose spokesman is often a poet or writer, can be threatened by both the failures &lt;em&gt;and&lt;/em&gt; the successes. Such is the nature not only of science and engineering, but of all human endeavors.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;As we&amp;#8217;re creating these virtual structures&amp;#8230; are we really taking the time to reflect on our failures? This is why some teams adopt practices like iteration retrospectives and post-mortems.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ll end this with a few questions, which I hope that you&amp;#8217;ll share your experiences about&amp;#8230;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;In what ways is your team embracing the failures of your development projects?&lt;/li&gt;
		&lt;li&gt;How do you help manage your clients expectations&amp;#8230; so that they too can plan for and embrace failure? Isn&amp;#8217;t their new business venture on the web&amp;#8230; likely to experience some failure?&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;We have so much to learn&amp;#8230;&lt;/p&gt;
</description>
      <pubDate>Tue, 10 Apr 2007 16:38:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b216559d-75b1-443f-a42b-65a8feefe92d</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/04/10/embracing-failure-part-1</link>
      <category>Business</category>
      <category>Programming</category>
      <category>d3</category>
      <category>book</category>
      <category>tdd</category>
      <category>development</category>
      <category>testing</category>
      <category>agile</category>
      <category>design</category>
      <category>clients</category>
      <category>communication</category>
      <category>bdd</category>
      <category>failure</category>
      <category>expectations</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Poor Communication and IT Projects</title>
      <description>&lt;p&gt;InformationWeek has a short story titled, &lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=198000251&amp;#38;cid=RSSfeed_IWK_All"&gt;Poor Communications, Unrealistic Scheduling Lead To IT Project Failure&lt;/a&gt;.&lt;/p&gt;


&lt;blockquote&gt;&amp;#8220;Communications failures top the list of reasons IT projects fail, according to poll results from the Computing Technology Industry Association.
&lt;br /&gt;&lt;br /&gt;
About 28% of 1,000 respondents identified poor communications as the main cause of project failure, according to CompTIA, which offers project management training.&amp;#8221; 
&lt;/blockquote&gt;

	&lt;p&gt;So, while we&amp;#8217;re all spending so much of our time focused on improving our technical skills, are we also investing our time into becoming communication superstars?&lt;/p&gt;


	&lt;p&gt;If you look back at the following posts, you&amp;#8217;ll see some links to some excellent books on this topic.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/09/27/project-enlightenment-with-d3"&gt;Project Enlightenment with d3&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2006/09/12/the-technology-of-dialogue"&gt;The Technology of Dialogue&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.robbyonrails.com/articles/2007/01/04/those-that-tend-the-store-need-dialogue"&gt;Those that Tend the Store need Dialogue&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
</description>
      <pubDate>Mon, 12 Mar 2007 17:25:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:01265ea4-f529-4442-919e-5f25b676766b</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/03/12/poor-communication-and-it-projects</link>
      <category>d3</category>
      <category>projects</category>
      <category>dialogue</category>
      <category>communication</category>
      <category>agile</category>
    </item>
    <item>
      <title>Is BDD kinkier than TDD?</title>
      <description>&lt;p&gt;If you&amp;#8217;re in need of a compelling reason to switch from Test-Driven Development to &lt;a href="http://www.behavior-driven.org/"&gt;Behavior-Driven Development&lt;/a&gt;... consider this.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;BDD sounds kinkier.&amp;#8221;&lt;/em&gt;  -Michael K. Loukides, Book Editor for O&amp;#8217;Reilly&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;...on that &lt;em&gt;bombshell&lt;/em&gt;... I am going to suggest that this be used as the official &lt;span class="caps"&gt;BDD&lt;/span&gt; logo.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.robbyonrails.com/files/kinkier_than_tdd.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;There you have it. Deep down&amp;#8230; the biggest reason that I switched from Test::Unit to &lt;a href="http://rspec.rubyforge.org"&gt;RSpec&lt;/a&gt;... was the sex appeal. ;-)&lt;/p&gt;


	&lt;p&gt;What was your reason?&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Feb 2007 13:20:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:95d594a2-43ce-4682-b024-2a01af278078</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/02/08/is-bdd-kinkier-than-tdd</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>Programming</category>
      <category>bdd</category>
      <category>tdd</category>
      <category>behavior</category>
      <category>driven</category>
      <category>agile</category>
      <category>development</category>
      <category>kinky</category>
      <category>sex</category>
      <category>handcuffs</category>
      <category>rspec</category>
    </item>
    <item>
      <title>Rails 1.2 On CRN.com</title>
      <description>&lt;p&gt;I was recently asked a few questions by Stacy Cowley, a writer for &lt;a href="http://www.crn.com"&gt;&lt;span class="caps"&gt;CRN&lt;/span&gt;&lt;/a&gt; about the &lt;a href="http://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations"&gt;Rails 1.2 release&lt;/a&gt; and how our Design and Development team at &lt;a href="http://www.planetargon.com/"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; is adopting it. This Q&amp;#38;A session resulted in a brief article titled, &lt;a href="http://www.crn.com/sections/breakingnews/breakingnews.jhtml?articleId=197000959"&gt;Ruby on Rails Gets RESTFul in Major Update&lt;/a&gt;, which appeared on the &lt;span class="caps"&gt;CRN&lt;/span&gt; site last Friday afternoon.&lt;/p&gt;


	&lt;p&gt;Thanks to the Rails Core team and all of those in the community who continue to help make Ruby on Rails an awesome addition in my tool belt.&lt;/p&gt;
</description>
      <pubDate>Sun, 28 Jan 2007 13:58:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b441d400-38a4-49a0-b071-163cfad5f3f2</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/01/28/rails-1-2-on-crn-com</link>
      <category>Business</category>
      <category>Ruby on Rails</category>
      <category>Programming</category>
      <category>PLANET ARGON</category>
      <category>rails</category>
      <category>interview</category>
      <category>crn</category>
      <category>development</category>
      <category>agile</category>
      <category>REST</category>
      <category>restful</category>
    </item>
    <item>
      <title>Those that Tend the Store need Dialogue</title>
      <description>&lt;p&gt;I&amp;#8217;ve been keeping my eye on a series of blog posts by Chad Fowler, which he calls &lt;a href="http://chadfowler.com/2006/12/27/the-big-rewrite"&gt;The Big Rewrite&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Today, Chad posted an entry titled, &lt;a href="http://www.chadfowler.com/2007/1/4/who-s-tending-the-store"&gt;Who&amp;#8217;s Tending the Store?&lt;/a&gt; He writes&amp;#8230;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;the experts keep the old system running while the new system is being built. So, who builds the new system? Not the experts, that&amp;#8217;s who. Usually, it’s people like me: technology experts. And while we&amp;#8217;re banging away at the existing system&amp;#8217;s UI, trying to figure out what needs to be coded, the domain experts are doing their jobs. Unfortunately, this means the domain experts aren&amp;#8217;t watching the Big Rewrite very closely. Regardless of how good the team, if communication is impaired between the domain experts and the technology experts, things are going to move slowly, and wrong software is going to be created.&amp;#8221;&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I wanted to follow up on this issue as it&amp;#8217;s an area of great interest to me.&lt;/p&gt;


	&lt;p&gt;I feel like this issue runs deeper and while it&amp;#8217;s important to be mindful of the communication between domain and technology experts, it&amp;#8217;s a good idea for each of us to take a break every few days (or everyday) to assess our perceptions in all areas of the project. More specifically, I&amp;#8217;m suggesting that in order for us to be effective in our communication, we must make time to &lt;strong&gt;refactor our perceptions&lt;/strong&gt; about the state of a project. From the design, to the development, to team communication, to the schedule, and all the way to customer satisfaction&amp;#8230; or what Martin Fowler calls, &lt;a href="http://martinfowler.com/bliki/CustomerAffinity.html"&gt;Customer Affinity&lt;/a&gt;. These things are not static and we must see them as extremely dynamic variables&amp;#8230; much more dynamic than our &lt;a href="http://www.ruby-lang.org"&gt;wonderful language of choice&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;When &lt;a href="http://blog.brightredglow.com/"&gt;Brian Ford&lt;/a&gt; and I started discussing &lt;a href="http://www.dialogue-driven.org/"&gt;Dialogue-Driven Development&lt;/a&gt; (d3), we were initially focused on an area that always seems to come up in projects. Client communication. From managing expectations to &lt;em&gt;delivering the right product&lt;/em&gt;, d3 has become an essential tool in our team&amp;#8217;s tool belt. We refactored our entire &lt;a href="http://www.planetargon.com/development.html"&gt;Design and Development&lt;/a&gt; process (and it&amp;#8217;s always evolving) to focus on &lt;a href="http://www.robbyonrails.com/articles/2006/09/27/project-enlightenment-with-d3"&gt;the things that we felt were the most important&lt;/a&gt; to a successful project. Clients come to us in search of expertise and guidance so that we can build them innovative solutions. When it comes to this process, &lt;a href="http://www.robbyonrails.com/articles/2006/08/06/clients-deserve-simplicity"&gt;clients deserve simplicity&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;For starters, we&amp;#8217;re misguided&lt;/h3&gt;


	&lt;p&gt;If there is one thing that I have learned, it is that our &lt;em&gt;initial perceptions are often misguided&lt;/em&gt;. We have to work really hard to think critically, not only of the problem we&amp;#8217;re trying to build a solution for, but also of how we, ourselves, are actually looking at the problem. It&amp;#8217;s easy to fall victim to tunnel vision. I often find myself having to take a step back from problems on a very regular basis. While I have no scientific proof to back this, it seems to feels natural for us to &lt;a href="http://blog.brightredglow.com/2006/8/29/tracer-bullets-are-about-aiming-not-firing"&gt;keep firing once we pull the trigger&lt;/a&gt;. It&amp;#8217;s important to re-aim.&lt;/p&gt;


	&lt;p&gt;Chad raises a very important topic and leaves readers to think about the problem. After thinking about this, it&amp;#8217;s my opinion that in order for the domain and technology experts to be effective, they &lt;a href="http://www.robbyonrails.com/articles/2006/10/18/teams-need-healthy-collaboration"&gt;need healthy collaboration&lt;/a&gt;. But, I feel like this applies to many other areas of our process as well.&lt;/p&gt;


	&lt;h3&gt;Is there even a problem?&lt;/h3&gt;


	&lt;p&gt;So, what is the solution? Better yet, what is the problem? Is there even a problem?&lt;/p&gt;


	&lt;p&gt;How can we avoid situations where communication becomes impaired? We&amp;#8217;ve all been there. We know how to spot impaired communication, but how can we spot it&amp;#8230; before we perceive it as &lt;em&gt;too late&lt;/em&gt;? How can we recover from it? What causes the communication to break down? What if&amp;#8230; it were possible to repair the situation?&lt;/p&gt;


	&lt;p&gt;These questions &lt;em&gt;don&amp;#8217;t&lt;/em&gt; have easy answers. These are complicated problems that reach &lt;em&gt;far beyond&lt;/em&gt; the development community. These are the same problems that all members of organizations, communities, countries, and &lt;a href="http://www.planetargon.com/about.html"&gt;planets&lt;/a&gt; all face, each and every day.&lt;/p&gt;


	&lt;h3&gt;Take action!&lt;/h3&gt;


	&lt;p&gt;While it&amp;#8217;s important to make sure we&amp;#8217;re engaging in healthy dialogue through a project, bad things will happen. They are inevitable. As Agilists, we&amp;#8217;re accepting this as a fact of (project) life and should be prepared to take action. If you see communication being impaired, it&amp;#8217;s time to step up and help the team out. Otherwise, you&amp;#8217;re only hurting yourself&amp;#8230; and your colleagues.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;Be the change you wish to see in the world.&amp;#8221;&lt;/em&gt;&amp;#8212;Mahatma Gandhi&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;If these sorts of topics are of interest to you, I encourage you to join the &lt;a href="http://dialogue-driven.org/community"&gt;Dialogue-Driven community&lt;/a&gt; and help us figure this stuff out!&lt;/p&gt;
</description>
      <pubDate>Thu, 04 Jan 2007 17:18:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4a80dd67-6ada-4bcf-8c98-08625306346f</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2007/01/04/those-that-tend-the-store-need-dialogue</link>
      <category>Business</category>
      <category>Programming</category>
      <category>d3</category>
      <category>PLANET ARGON</category>
      <category>dialogue</category>
      <category>clients</category>
      <category>communication</category>
      <category>chadfowler</category>
      <category>perceptions</category>
      <category>refactoring</category>
      <category>agile</category>
      <category>solutions</category>
      <category>problems</category>
    </item>
    <item>
      <title>This Week in d3: 2</title>
      <description>&lt;p&gt;I missed a week&amp;#8230; but last week, Brian wrote about one of the &lt;a href="http://blog.brightredglow.com/2006/10/12/principles-of-d3-simplicity"&gt;Principles of d3: simplicty&lt;/a&gt;.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;As a principle of d3, we want our client interaction to be simpler. So we want to talk about problems with our clients. We want these to be the concrete, explicit elements we dialogue about.&amp;#8221;&lt;/em&gt; (&lt;a href="http://blog.brightredglow.com/2006/10/12/principles-of-d3-simplicity"&gt;read more&lt;/a&gt;)&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Today, &lt;a href="http://groups.google.com/group/dialoguedriven/browse_frm/thread/bfd7bffcb2613994/b9a50e4908610207#b9a50e4908610207"&gt;I asked&lt;/a&gt; on the &lt;a href="http://groups.google.com/group/dialoguedriven"&gt;Dialogue-Driven Development mailing list&lt;/a&gt;, &lt;em&gt;&amp;#8220;What are some elements in group interaction (clients, colleagues, users) that prevent healthy Dialogue from taking place?&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;The biggest element that I&amp;#8217;ve seen that harms dialogue is an emotionalattachment to some idea or decision&amp;#8230; ...When people are emotionally attached to one particular point of view, they have a difficult time making objective, rational decisions.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://david.goodlad.ca"&gt;David Goodlad&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


&lt;hr&gt;

	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;The biggest problem that &lt;strong&gt;we&lt;/strong&gt; have is semi-literate users thinking too soon about implementation details about the solution, rather than considering the true nature of the problem instead.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://interblah.net/"&gt;James Adam&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;This resulted in me thinking up a new term for this horrible infection&amp;#8230; &lt;em&gt;implementitus&lt;/em&gt;.&lt;/p&gt;


&lt;hr&gt;

	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;One of the biggest problems I&amp;#8217;m continuously having to overcome is physical proximity.  I&amp;#8217;m a firm believer in kicking off a project with a face-to-face meeting, but when working remotely, and not having an on-site customer to easily communicate with your skills has a communicator must be greatly increased.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://joshknowles.com/"&gt;Josh Knowles&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


&lt;hr&gt;

&lt;blockquote&gt;&lt;em&gt;&amp;#8220;Fortune-telling the user&amp;#8217;s reaction. &lt;br /&gt;
&amp;#8220;The user wouldn&amp;#8217;t like this.&amp;#8221; &lt;br /&gt;
&amp;#8220;This user wants this button there.&amp;#8221; &lt;br /&gt;
&amp;#8220;That would confuse the user.&amp;#8221; &lt;br /&gt;

	&lt;p&gt;Of course, user opinion should be critically important, but in my experience it&amp;#8217;s often used as a veto that doesn&amp;#8217;t have to be explained just because someone doesn&amp;#8217;t like an idea.  I&amp;#8217;ve done this, myself.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://www.ibrasten.com"&gt;Brasten Sager&lt;/a&gt;&lt;/blockquote&gt;&lt;/p&gt;


&lt;hr&gt;

	&lt;p&gt;I&amp;#8217;m really excited to get the interact with other people who are facing the same types of obstacles that we are. Being a successful developer requires a lot of discipline and it&amp;#8217;s our goal to enhance our communication skills&amp;#8230; so that we can reach &lt;em&gt;shared meaning&lt;/em&gt; with our colleagues, clients, and users.&lt;/p&gt;


	&lt;p&gt;If developer to client, developer to developer, or developer to user interaction is important to you&amp;#8230; come talk with us in the &lt;a href="http://www.dialogue-driven.org"&gt;Dialogue-Driven Development&lt;/a&gt; project.&lt;/p&gt;
</description>
      <pubDate>Fri, 20 Oct 2006 17:53:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:2f85b95d-6d74-418b-998b-c301a4854ec9</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/10/20/this-week-in-d3-2</link>
      <category>Business</category>
      <category>Programming</category>
      <category>d3</category>
      <category>d3</category>
      <category>dialogue</category>
      <category>agile</category>
      <category>devleopment</category>
    </item>
    <item>
      <title>The Circular Perspective of BDD</title>
      <description>&lt;p&gt;A few weeks ago, Brian Ford was in my office and we were discussing &lt;span class="caps"&gt;BDD&lt;/span&gt; and how we can make this process even easier for our clients to understand&amp;#8230; much less our own internal staff. With all concepts, each person has their own idea about what it is, why it is important, regardless of whether or not it&amp;#8217;s accurate. This can cause some people to not find a good need for some practices.&lt;/p&gt;


	&lt;p&gt;During our discussion, Brian grabbed one of my whiteboard markers and drew diagrams to explain how he saw &lt;span class="caps"&gt;BDD&lt;/span&gt; vary from &lt;span class="caps"&gt;TDD&lt;/span&gt;. He has since posted an article on his blog titled, &lt;a href="http://blog.brightredglow.com/2006/10/4/what-s-it-worth-to-me"&gt;what&amp;#8217;s it worth to me&lt;/a&gt;, and discusses his circular view of &lt;a href="http://blog.brightredglow.com/2006/10/4/what-s-it-worth-to-me"&gt;Behavior-Driven Developent&lt;/a&gt; and the importance of using &lt;a href="http://www.dialogue-driven.org"&gt;Dialogue&lt;/a&gt; to &lt;a href="http://www.seedsofunfolding.org/issues/04_06/features_1.htm"&gt;evolve shared meaning&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 12 Oct 2006 09:56:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:307718be-a5c2-4ee5-b137-6913857a706d</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/10/12/the-circular-perspective-of-bdd</link>
      <category>Programming</category>
      <category>d3</category>
      <category>bdd</category>
      <category>agile</category>
      <category>d3</category>
      <category>dialogue</category>
      <category>brian</category>
    </item>
    <item>
      <title>Dialogue versus Debate</title>
      <description>&lt;p&gt;How many times have you participated in a conversation with someone and realized that you really didn&amp;#8217;t understand what they had said. Or&amp;#8230; perhaps you&amp;#8217;ve been talking and even though the other person is nodding, you&amp;#8217;re not confident that they&amp;#8217;ve really heard what you&amp;#8217;ve been saying. Yet, you might find yourself nodding in agreement when they speak&amp;#8230; and walk away&amp;#8230; totally clueless about what you just talked about.&lt;/p&gt;


	&lt;p&gt;Were you really listening? Were they speaking over your head? Were you speaking over their head? Perhaps you were distracted? Whatever the reason&amp;#8230; it&amp;#8217;s probably worth thinking about. We all do it from time to time.&lt;/p&gt;


	&lt;p&gt;Even worse, you were only thinking about how they were wrong and you had the right answer already in your head&amp;#8230;&lt;/p&gt;


	&lt;p&gt;In Dialogue, there are rules for participation, which we&amp;#8217;ll explore in future writings.&lt;/p&gt;


	&lt;p&gt;One might wonder if we&amp;#8217;ve been trained to work this way. In school, we had classes that taught us to debate one another&amp;#8230; further cultivating a society focused on &lt;strong&gt;you versus I&lt;/strong&gt;. But, what about the community? What about the team? &lt;strong&gt;What about us?&lt;/strong&gt; Sadly, most of the teamwork that we saw encouraged was in the form of sports. To be fair&amp;#8230; we did have debate teams&amp;#8230; but the purpose was to argue for one side of an argument&amp;#8230; not to find a way for both sides to work together. One might wonder our society would be like if we encouraged Dialogue in the same way.&lt;/p&gt;


	&lt;p&gt;Perhaps we need Dialogue teams. ;-)&lt;/p&gt;


	&lt;p&gt;Dialogue allows teams of people to work together. It&amp;#8217;s a process that cultivates learning and discovery. Dialogue is not a process that encourages the passing of judgement or pushing for specific outcomes&amp;#8230; the aim is to share understanding. Through empathetic listening and questioning, the seeds of trust are planted.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.dialogue-driven.org"&gt;Dialogue-Driven Development&lt;/a&gt; is about building trust.&lt;/p&gt;


	&lt;p&gt;I came across &lt;a href="http://www.ullerymanagement.com/art_of_dialogue.htm"&gt;this great table&lt;/a&gt;, which contrasts Dialogue and Debate. It&amp;#8217;s worth taking a few moments to review.&lt;/p&gt;


	&lt;p&gt;Here are a few that caught my attention&amp;#8230;&lt;/p&gt;


	&lt;table&gt;
		&lt;tr&gt;
			&lt;td&gt;&lt;strong&gt;Dialogue&lt;/strong&gt;&lt;/td&gt;
			&lt;td&gt;&lt;strong&gt;Debate&lt;/strong&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Dialogue is collaborative: the sides work together.&lt;/td&gt;
			&lt;td&gt;Debate is a type of fight: two sides oppose each other to prove each other wrong.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;In a dialogue the goals are finding common ideas and new ideas.&lt;/td&gt;
			&lt;td&gt;In a debate the goals is winning with your own ideas.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;In a dialogue you contribute your best ideas to be improved upon.&lt;/td&gt;
			&lt;td&gt;In a debate you contribute your ideas and defend them against challenges.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;In a dialogue you listen to each other to understand and build agreement.&lt;/td&gt;
			&lt;td&gt;In a debate you listen to each other to find flaws and disagree.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;In a dialogue you may consider new ideas and even change your mind completely.  &lt;/td&gt;
			&lt;td&gt;In a debate you do not admit you are considering new ideas and you must not change your mind, or you lose.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Dialogue encourages you to evaluate yourself. &lt;/td&gt;
			&lt;td&gt;Debate encourages you to criticize others.&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Dialogue promotes open-mindedness, including an openness to being wrong. &lt;/td&gt;
			&lt;td&gt;Debate creates a close-minded attitude, a determination to be right.&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;




	&lt;p&gt;There is something to be said about &lt;a href="http://www.ullerymanagement.com/art_of_dialogue.htm"&gt;the art of Dialogue&lt;/a&gt;, which is why we&amp;#8217;re so excited about &lt;a href="http://www.dialogue-driven.org"&gt;the d3 project&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Tue, 10 Oct 2006 00:40:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1a051e4e-a476-4491-85c6-ae9f76e2d1fa</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/10/10/dialogue-versus-debate</link>
      <category>d3</category>
      <category>agile</category>
      <category>development</category>
      <category>d3</category>
      <category>dialogue</category>
      <category>debate</category>
      <category>process</category>
      <category>teamwork</category>
      <category>education</category>
    </item>
    <item>
      <title>This Week in d3: 1</title>
      <description>&lt;p&gt;As overheard on the &lt;a href="http://groups.google.com/group/dialoguedriven/"&gt;d3 mailing list&lt;/a&gt;...&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;My strategy so far is to unemotionally ask them to step back for a minute from the &amp;#8220;I want this feature&amp;#8221; phrase. Start thinking about value delivered to the user; start thinking about &lt;span class="caps"&gt;HOW&lt;/span&gt; the user is going to use whatever information or functionality you&amp;#8217;re delivering  to them.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://david.goodlad.ca"&gt;David Goodlad&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;People have emotional attachments, pet ideas, favorite ways of doing things, and they are quick to impose those, under the guise of &amp;#8220;business requirments&amp;#8221;.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://blog.brightredglow.com/"&gt;Brian Ford&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;Dialogue-Driven Development has the opportunity to step up in this environment and redefine the interaction between customers and developers.&amp;#8221;&lt;/em&gt;&amp;#8212;&lt;a href="http://www.ibrasten.com"&gt;Brasten Sager&lt;/a&gt; (&lt;a href="http://www.ibrasten.com/articles/2006/10/02/of-dialogue-and-development"&gt;link&lt;/a&gt;)&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;..we&amp;#8217;re just getting started. ;-)&lt;/p&gt;


	&lt;p&gt;If developer to client, developer to developer, or developer to user interaction is important to you&amp;#8230; come talk with those of us involved in the &lt;a href="http://www.dialogue-driven.org"&gt;Dialogue-Driven Development&lt;/a&gt; project.&lt;/p&gt;
</description>
      <pubDate>Fri, 06 Oct 2006 17:01:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:be29a70e-b872-49d9-a036-785183b36be4</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/10/06/this-week-in-d3-1</link>
      <category>Programming</category>
      <category>d3</category>
      <category>d3</category>
      <category>dialogue</category>
      <category>agile</category>
      <category>devleopment</category>
    </item>
    <item>
      <title>Announcing the Dialogue-Driven Development Project</title>
      <description>&lt;p&gt;I woke up this morning and came across an article written by Brasten Sager, titled, &lt;a href="http://www.ibrasten.com/articles/2006/10/02/of-dialogue-and-development"&gt;Of Dialogue and Development&lt;/a&gt; in which he discusses his initial (and healthy) criticism of &lt;a href="http://www.robbyonrails.com/articles/2006/08/02/dialogue-driven-development"&gt;Dialogue-Driven Development&lt;/a&gt;.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;But d3 is an evolving thing. Its earliest forms offered very little definition, leading me to believe there was little to it. As it has evolved the goals and mindset of d3 and its proponents have become a little more clear, and after further consideration I’m now convinced that &lt;strong&gt;my original critiques may have been wrong&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I encourage you to read &lt;a href="http://www.ibrasten.com/articles/2006/10/02/of-dialogue-and-development"&gt;his article&lt;/a&gt;, which offers ideas (and diagrams) on how d3 might be injected into your existing process.&lt;/p&gt;


	&lt;p&gt;A small number of interested developers have been sending us questions about d3 and were wondering what the next step was for the community. We&amp;#8217;re working hard on outlining &lt;a href="http://blog.brightredglow.com/articles/2006/08/22/patterns-of-dialogue"&gt;patterns of dialogue&lt;/a&gt;, which is where we plan to put of our focus into. A small group of people have joined &lt;a href="http://groups.google.com/group/dialoguedriven/about"&gt;our mailing list&lt;/a&gt; and &lt;span class="caps"&gt;IRC&lt;/span&gt; channel over the past few weeks, where some conversations have occurred. After reading through Brasten&amp;#8217;s post, I believe that our &lt;span class="caps"&gt;IRC&lt;/span&gt; conversation last week was a good example of how people with different ideas about something&amp;#8230; can come together and have a &lt;em&gt;shared&lt;/em&gt; understanding, which is exactly what Dialogue-Driven Development is about.&lt;/p&gt;


	&lt;p&gt;Through &lt;em&gt;shared&lt;/em&gt; understanding, we can accomplish so much more.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;In true dialogue, both sides are willing to change.&amp;#8221;&lt;/em&gt; —Thich Nhat Hanh&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Thanks to the hard work of &lt;a href="http://blog.brightredglow.com"&gt;Brian Ford&lt;/a&gt;, we now have &lt;a href="http://www.dialogue-driven.org/"&gt;a website&lt;/a&gt; to announce, which will be the portal to various conversations, patterns, and resources related to &lt;a href="http://www.dialogue-driven.org/"&gt;Dialogue-Driven Development&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.dialogue-driven.org/"&gt;http://www.dialogue-driven.org&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 03 Oct 2006 08:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4b26bfe2-31d0-4bd9-9ac1-d1c0283ec0ac</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/10/03/announcing-the-dialogue-driven-development-project</link>
      <category>Programming</category>
      <category>d3</category>
      <category>PLANET ARGON</category>
      <category>agile</category>
      <category>d3</category>
      <category>development</category>
      <category>dialogue</category>
      <category>patterns</category>
    </item>
    <item>
      <title>Project Enlightenment with d3</title>
      <description>&lt;p&gt;What do we mean exactly when we say that we want to participate in thoughtful dialogue in a project? What is our intention with this? When I recently came across some essays by &lt;a href="http://www.gurteen.com/"&gt;David Gurteen&lt;/a&gt; and read his definition of dialogue as being &lt;em&gt;&amp;#8220;a disciplined form of conversation&amp;#8221;&lt;/em&gt; it got me thinking about how we often forget that like all skills, practice makes perfect. What make our conversations discilplined in the first place? Based on my experience, dialogue (disciplined conversation) manifests when all participants in a conversation are practicing mindfulness. I don&amp;#8217;t believe that most people learn or behave well by being beaten into submission, so we must come to an understanding while we actively involve ourselves in dialogue. Most of us are civil towards one another, which does wonders for allowing us to tolerate each other, but I still can&amp;#8217;t help but feel that we&amp;#8217;re still missing the mark when it comes to having consistent and thoughtful dialogue.&lt;/p&gt;


	&lt;p&gt;Over the past several months, our team has been spending quite a bit of time and energy analyzing these problems. What we really starting to uncover is that the real problem seems to exist somewhere outside of our development methodologies. Working under the Agile umbrella &lt;a href="http://www.butunclebob.com/ArticleS.UncleBob.AgilePeopleStillDontGetIt"&gt;provides no silver bullet&lt;/a&gt;. The real issues seem to exist much deeper in our human nature.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.robbyonrails.com/files/Cheeky-Monkey.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;We&amp;#8217;re not all that great at communicating&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;Humans are not perfect&amp;#8230; therefore&amp;#8230; our ideas are probably far from perfect as well. Our thoughts aren&amp;#8217;t perfect. Our interactions aren&amp;#8217;t perfect. We&amp;#8217;re consistently inconsistent (heh) and while we can rely on averages to some extent to calculate probabilities, we can&amp;#8217;t always explain why somethings still go horribly wrong. The principles outlines in the &lt;a href="http://www.agilemanifesto.org/"&gt;Agile manifesto&lt;/a&gt; stress the importance of focusing on people not processes and responding to change. If we are to put a heavy focus on the people involved in projects, we must acknowledge our strengths and weaknesses and find innovative ways to improve our communication skills.&lt;/p&gt;


	&lt;p&gt;On a daily basis, we&amp;#8217;re faced with complex problems. Hopefully, we&amp;#8217;re using a lot of our prior experience to aid us in making rational decisions about how we respond to them. There is a lot that goes through each decision that we make. We can&amp;#8217;t automate this process (yet), but we can definitely share our lessons with one another. Our intentions need to be thoughtful and empathetic to the needs of all parties affected by each decision. As humans, we have the opportunity to really listen to the concerns of others and use not only our logical intelligence&amp;#8230; but also our emotional intelligence.&lt;/p&gt;


	&lt;p&gt;Much of this comes down to each of us learning to understand how we make decisions and interact with people. It&amp;#8217;s our goal with Dialogue-Driven Development that with your help, we&amp;#8217;ll be able to outline &lt;a href="http://blog.brightredglow.com/articles/2006/08/22/patterns-of-dialogue"&gt;patterns of dialogue&lt;/a&gt;, which we hope will be of great value to the community. Our team has been analyzing our interaction with clients and discussing what has worked well and what hasn&amp;#8217;t. How did our clients respond to approach X versus Y? It&amp;#8217;s important that we capture this information and have conversations about the results.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;The meaning is what holds it [dialogue] together. ..Meaning is not static – it is flowing. And if we have the meaning being shared, then it is flowing among us; it holds the group together&amp;#8230;in that way we can talk together coherently and think together.&amp;#8221; &amp;#8211; &lt;a href="http://www.david-bohm.net/dialogue/"&gt;David Bohm&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Doesn&amp;#8217;t that sound beautiful? Who wouldn&amp;#8217;t want to reach such levels of project enlightenment?&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;d3 aims to be to communication what &lt;span class="caps"&gt;BDD&lt;/span&gt; is to specification&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;While at &lt;a href="http://europe.railsconf.org/"&gt;RailsConf Europe&lt;/a&gt;, I had the privilege to speak with several Rail developers&amp;#8230; several of which are doing contract development for several clients, just like our team. We discussed d3 for a while and I walked away feeling really excited about the whole concept. When I explained that our team didn&amp;#8217;t see d3 as a &lt;em&gt;replacement&lt;/em&gt; for Agile methodologies like Scrum, XP, etc&amp;#8230; but as another tool in our tool belt. Dialogue between developers, clients, and users should be agnostic about particular methodologies. We&amp;#8217;re really excited about &lt;a href="http://www.behavior-driven.org"&gt;Behavior-Driven Development&lt;/a&gt; as a best practice in our development process and we&amp;#8217;re seeing Dialogue-Driven Development as another best practice that we start using from the initial point of contact with a potential client to long after we deliver the working product that we were contracted to develop.&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;ll be posting some fun announcements about the d3 project in the coming week(s). Stay tuned&amp;#8230;&lt;/p&gt;
</description>
      <pubDate>Wed, 27 Sep 2006 02:38:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fd10cc10-5b36-4de4-ac83-33e59f93ce83</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/09/27/project-enlightenment-with-d3</link>
      <category>d3</category>
      <category>d3</category>
      <category>agile</category>
      <category>development</category>
      <category>clients</category>
      <category>interadction</category>
      <category>communication</category>
      <category>dialogue</category>
      <category>bohm</category>
      <category>process</category>
    </item>
    <item>
      <title>Matz on Considering Interface</title>
      <description>&lt;p&gt;...back in Portland after being in London and New York City for the past two weeks. It&amp;#8217;s nice to be home. :-)&lt;/p&gt;


	&lt;p&gt;I came across &lt;a href="http://www.artima.com/intv/craftP.html"&gt;this interview with Matz&lt;/a&gt; earlier today. It was published almost three years ago (pre-Rails)... I&amp;#8217;m quite intrigued by what he is advocating here&amp;#8230;&lt;/p&gt;


&lt;blockquote&gt;
&lt;b&gt;Bill Venners:&lt;/b&gt; You also mentioned in your ten top tips: &amp;#8220;Be nice to others. Consider interface first: man-to-man, man-to-machine, and machine-to-machine. And again remember the human factor is important.&amp;#8221; What do you mean by, &amp;#8220;consider interface first?&amp;#8221; 

	&lt;p&gt;&lt;b&gt;Yukihiro Matsumoto:&lt;/b&gt; Interface is everything that we see as a user. If my computer is doing very complex things inside, but that complexity doesn&amp;#8217;t show up on the surface, I don&amp;#8217;t care. I don&amp;#8217;t care if the computer works hard on the inside or not. I just want the right result presented in a good manner. So that means the interface is everything, for a plain computer user at least, when they are using a computer. That&amp;#8217;s why we need to focus on interface.&lt;/p&gt;


	&lt;p&gt;Some software people—like weather forecasters, the number crunchers—feel that the inside matters most, but they are a very limited field of computer science. Most programmers need to focus on the surface, the interface, because that&amp;#8217;s the most important thing.&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Bill Venners:&lt;/b&gt; You also mentioned machine-to-machine interfaces, so are you just talking about interfaces for users or also for machines?&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;Yukihiro Matsumoto:&lt;/b&gt; It&amp;#8217;s not just user interfaces. When machines are talking to each other via a protocol, they don&amp;#8217;t care how the other is implemented on the inside. The important thing is the proper output getting passed correctly via the proper protocol. That&amp;#8217;s what matters.&lt;/p&gt;


If you have a good interface on your system, and a budget of money and time, you can work on your system. If your system has bugs or is too slow, you can improve it. But if your system has a bad interface, you basically have nothing. It won&amp;#8217;t matter if it is a work of the highest craftsmanship on the inside. If your system has a bad interface, no one will use it. So the interface or surface of the system, whether to users or other machines, is very important.
&lt;/blockquote&gt;

	&lt;p&gt;One of things that we&amp;#8217;re really advocating with Dialogue-Driven Development is artifact generation. Wireframes and lightweight prototypes are great for &lt;strong&gt;generating constructive dialogue&lt;/strong&gt; between clients, users, and our team. We should make sure that we understand why and how users will use an interface before we worry about the code that will drive it. Too often we fall into a pattern of thinking where we&amp;#8217;re convinced that we can build an agnostic application that has various interfaces to a central repository of business logic and data. While we strive for this during development, it really should be focused on after some initial interaction design has been planned. Of course, this is my opinion.&lt;/p&gt;


	&lt;p&gt;So, I must ask you. When you&amp;#8217;re working with on a new project, do you focus on interface or code implementation first?&lt;/p&gt;
</description>
      <pubDate>Mon, 25 Sep 2006 10:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4997b305-58fb-46a7-b0b7-163f32ed4f07</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/09/25/matz-on-considering-interface</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>Programming</category>
      <category>d3</category>
      <category>agile</category>
      <category>d3</category>
      <category>dialogue</category>
      <category>prototypes</category>
      <category>clients</category>
      <category>interface</category>
      <category>IxD</category>
      <category>design</category>
    </item>
    <item>
      <title>The Technology of Dialogue</title>
      <description>&lt;p&gt;In the essay, &lt;a href="http://www.vision-nest.com/cbw/Dialogue.html"&gt;Dialogue and Organizational Transformation&lt;/a&gt;, Glenna Gerard and Linda Teurfs outline the the &lt;em&gt;building blocks&lt;/em&gt; of &lt;a href="http://www.vision-nest.com/cbw/Dialogue.html#3"&gt;&lt;span class="caps"&gt;THE TECHNOLOGY OF DIALOGUE&lt;/span&gt;&lt;/a&gt;, which they suggests consists of:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Suspension of Judgment&lt;/li&gt;
		&lt;li&gt;Identification of Assumptions&lt;/li&gt;
		&lt;li&gt;Listening&lt;/li&gt;
		&lt;li&gt;Inquiry and Reflection&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;What makes dialogue different than conversation? According to &lt;a href="http://www.gurteen.com/"&gt;David Gurteen&lt;/a&gt;, &lt;em&gt;&amp;#8220;dialogue is a disciplined form of conversation.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Gurteen says that within dialogue&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;You prefer a certain position but do not cling to it. &lt;/li&gt;
		&lt;li&gt;You are ready to listen to others.&lt;/li&gt;
		&lt;li&gt;Your mindset is not one of &amp;#8216;convincing others that your way is right&amp;#8217; but of asking what you can learn from them.&lt;/li&gt;
		&lt;li&gt;It is recognizing that other people’s input will help you refine your own ideas or reveal your misconceptions.&lt;/li&gt;
		&lt;li&gt;It is not argument or debate. It is not win-lose. In dialogue all sides win by coming up with a more appropriate solution than a single person could ever have. It is win-win.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;When we first introduced Dialogue-Driven Development, Ryan Allen &lt;a href="http://www.robbyonrails.com/articles/2006/08/02/dialogue-driven-development#comment-21737"&gt;responded with a brief overview&lt;/a&gt; of how you might go about defining a &lt;em&gt;failed project&lt;/em&gt;. His first bullet was, &lt;em&gt;&amp;#8220;Miscommunication can lead to the implementation of the wrong solutions.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;It is our opinion that many of the problems that lead to &lt;em&gt;failed projects&lt;/em&gt; can be solved through consistent and cooperative discourse. Much of this relies on each of us taking ownership of our commitment to encouraging healthy collaboration between developers, clients, and users.&lt;/p&gt;


	&lt;p&gt;Wikipedia &lt;a href="http://en.wikipedia.org/wiki/Dialogue"&gt;currently describes dialogue&lt;/a&gt; as, &lt;em&gt;&amp;#8220;a reciprocal conversation between two or more persons.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt;Question&lt;/h3&gt;


	&lt;p&gt;What are some of the obstacles that you face when interacting with a diverse set of developers, clients, and users?&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; &lt;a href="http://www.gurteen.com/gurteen/gurteen.nsf/id/km-dialogue"&gt;The Discipline of Dialogue by David Gurteen&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 12 Sep 2006 14:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:dbe5da89-c979-4086-8129-4673665ba5a6</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/09/12/the-technology-of-dialogue</link>
      <category>d3</category>
      <category>d3</category>
      <category>agile</category>
      <category>dialogue</category>
      <category>clients</category>
      <category>gurteen</category>
    </item>
    <item>
      <title>Agile Interaction Design</title>
      <description>&lt;p&gt;I would like to start some dialogue with all of you&amp;#8230;&lt;/p&gt;


	&lt;p&gt;In a recent post, &lt;a href="http://jvoorhis.com"&gt;Jeremy Voorhis&lt;/a&gt; said the following about &lt;a href="http://www.powells.com/cgi-bin/biblio?inkey=65-0764526413-2"&gt;About Face 2.0&lt;/a&gt; in his post announcing his &lt;a href="http://www.jvoorhis.org/articles/2006/08/31/agile-book-club-interaction-design"&gt;Agile Book Club&lt;/a&gt;.&lt;/p&gt;


&lt;blockquote&gt;&lt;em&gt;
  About Face 2.0 isn&amp;#8217;t bad; it&amp;#8217;s full of some
  great advice. My biggest gripes with it are the follows:
&lt;ul&gt;
  &lt;li&gt;It declares that programmers are just unfit for interaction design.
  &lt;li&gt;It advocates for waterfall development.
  &lt;li&gt;Cooper has a defensive tone whenever discussing his beloved discipline
  of interaction design.
  &lt;li&gt;The web chapter is dated.
&lt;/ul&gt;
  If you can get over all of those things, it is full of great ideas,
  specifically about working with personas, and data entry and retrieval.&lt;/em&gt;
&lt;/blockquote&gt;

	&lt;p&gt;I disagree with a few of these conclusions. In particular, that Cooper advocates &lt;a href="http://en.wikipedia.org/wiki/Waterfall_model"&gt;waterfall development&lt;/a&gt;. I&amp;#8217;ve been hearing a lot of developers throw the word, &amp;#8220;waterfall&amp;#8221; around&amp;#8230; but why?&lt;/p&gt;


	&lt;p&gt;Take the following excerpt from this &lt;a href="http://www.fawcette.com/interviews/beck_cooper/"&gt;great conversation&lt;/a&gt; between Kent Beck, the father of XP, and Alan Cooper.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;During the design phase, the interaction designer works closely with the customers. During the detailed design phase, the interaction designer works closely with the programmers. There&amp;#8217;s a crossover point in the beginning of the design phase where the programmers work for the designer. Then, at a certain point the leadership changes so that now the designers work for the implementers. You could call these &amp;#8220;phases&amp;#8221;—I don&amp;#8217;t—but it&amp;#8217;s working together.&amp;#8221;&lt;/em&gt;[1]&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I&amp;#8217;m curious as to how anyone would consider this to resemble &lt;a href="http://www.waterfall2006.com"&gt;Waterfall&lt;/a&gt;, which might imply that Cooper&amp;#8217;s approach to Interaction Design is &lt;em&gt;incompatible&lt;/em&gt; with the &lt;a href="http://agilemanifesto.org/principles.html"&gt;principles behind the Agile Manifesto&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.extremeplanner.com/blog/"&gt;Dave Churchville&lt;/a&gt; posted an article last year titled, &lt;a href="http://www.extremeplanner.com/blog/2005_09_01_extremeplanner_archive.html"&gt;Agile Interaction Design?&lt;/a&gt;, which discussed how the role of an Interaction Designer (ID) can be compatible with Agile methodologies. &lt;em&gt;&amp;#8220;An ID team probably becomes the voice of the customer in Agile methods, and as such should be working closely with the development team as well as the users. In that sense, the ID role may be more of a liaison between customer and developer.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;So, do you think that Interaction Design as described by Alan Cooper&amp;#8230; is compatible with the principles of the Agile Manifesto?&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;UPDATE&lt;/span&gt;&lt;/strong&gt; It looks like this conversation was picked up on &lt;a href="http://discuss.joelonsoftware.com/default.asp?joel.3.382847.14"&gt;the Joel on Software discussion boards&lt;/a&gt;.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; &lt;a href="http://www.fawcette.com/interviews/beck_cooper/page8.asp"&gt;http://www.fawcette.com/interviews/beck_cooper/page8.asp&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 30 Aug 2006 14:36:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:69feb3d3-7ca0-46f3-afbb-247029093506</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/30/agile-interaction-design</link>
      <category>agile</category>
      <category>cooper</category>
      <category>interaction</category>
      <category>design</category>
      <category>question</category>
      <category>jvoorhis</category>
      <category>beck</category>
      <category>methodology</category>
      <category>principles</category>
    </item>
    <item>
      <title>Dialogue-Driven Development is about Listening</title>
      <description>&lt;p&gt;I know. I know. I recently wrote that &lt;a href="http://www.robbyonrails.com/articles/2006/08/05/dialogue-driven-development-is-about-rounded-corners"&gt;Dialogue-Driven Development&lt;/a&gt; was about &lt;em&gt;rounded corners&lt;/em&gt;. It just happens that I &lt;em&gt;also&lt;/em&gt; think that &lt;a href="http://dictionary.reference.com/search?q=dialogue"&gt;d3&lt;/a&gt; is more than that. d3 is focuses on the conversations between various stakeholders within a project.&lt;/p&gt;


&lt;dt&gt;&lt;strong&gt;What is dialogue?&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;an exchange of ideas or opinions on a particular issue, esp. a political or religious issue, with a view to reaching an amicable agreement or settlement&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/dd&gt;

	&lt;p&gt;&lt;br /&gt;&lt;/p&gt;


&lt;dt&gt;&lt;strong&gt;What is a conversation?&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;informal interchange of thoughts, information, etc., by spoken words; oral communication between persons; talk; colloquy&lt;sup&gt;&lt;a href="#fn2"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;

	&lt;p&gt;&lt;br /&gt;&lt;/p&gt;


	&lt;p&gt;Let&amp;#8217;s focus on a really important side of the conversation, which is the &lt;strong&gt;art of listening&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;In &lt;a href="http://www.amazon.com/gp/product/0789724103/102-0824021-1378541"&gt;Information Anxiety 2&lt;/a&gt;, Richard Saul Wurman lists five tips for being a better listener.&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;&lt;em&gt;&amp;#8220;Having two ears and one tongue, we should listen twice as much as we speak.&amp;#8221;&lt;/em&gt;&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;&amp;#8220;Don&amp;#8217;t try to formulate your reply when the other person is speaking.&amp;#8221;&lt;/em&gt;&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;&amp;#8220;The person who starts a sentence should be the one to finish it.&amp;#8221;&lt;/em&gt;&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;&amp;#8220;Don&amp;#8217;t let your fear of silence propel you to fill it with air. A moment of silence can be the most revealing part of a conversation.&amp;#8221;&lt;/em&gt;&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;&amp;#8220;Remember that listening is not a passive endeavor, but an activity that requires great energy. Try to listen with the same intensity you use to talk.&amp;#8221;&lt;/em&gt;&lt;/li&gt;
	&lt;/ol&gt;


	&lt;h2&gt;The Value in Face to Face&lt;/h2&gt;


	&lt;p&gt;It&amp;#8217;s been a while since we at &lt;a href="http://www.planetargon.com/"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; have started working on a project that we didn&amp;#8217;t get a chance to meet face to face with the client. For projects that we know will involve a lot of dialogue, it&amp;#8217;s an absolute must at the beginning of the project. This is exactly why &lt;a href="http://blog.brightredglow.com"&gt;Brian&lt;/a&gt; and I &lt;a href="http://www.robbyonrails.com/articles/2006/08/14/project-illuminatus-an-introduction"&gt;fly across the country&lt;/a&gt; to meet our clients in person.&lt;/p&gt;


	&lt;p&gt;Wurman writes, &lt;em&gt;&amp;#8220;Time and time again, studies have shown that the best communication occurs face to face.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;Precision of communication is important, more important than ever, in our era of hair-trigger balances, when a false, or misunderstood word may create as much disaster as a sudden thoughtless act.&amp;#8221;&lt;/em&gt; &amp;#8211; James Thurber&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Our team is still shaping how best to encourage and facilitate valuable &lt;a href="http://blog.brightredglow.com/articles/2006/08/22/patterns-of-dialogue"&gt;patterns of dialogue&lt;/a&gt; with our clients. One aspect we are certain of is that &lt;strong&gt;all interactions should be clearly documented&lt;/strong&gt;, including the subtleties of body language and how the client&amp;#8217;s team works together.&lt;/p&gt;


	&lt;h2&gt;Two Ears, One Mouth&lt;/h2&gt;


	&lt;p&gt;There are &lt;a href="http://www.hearinghealthcenter.com/binaural_x.htm"&gt;many&lt;/a&gt; &lt;a href="http://www.hhmi.org/senses/c220.html"&gt;benefits&lt;/a&gt; to &lt;a href="http://www.everything2.com/index.pl?node_id=772458"&gt;having&lt;/a&gt; two ears. We should all try to listen more. I&amp;#8217;ll be the first to admit that this is one of the most difficult things to do, especially when you&amp;#8217;re &lt;a href="http://www.oreillynet.com/pub/a/network/2005/08/30/ruby-rails-david-heinemeier-hansson.html"&gt;opinionated&lt;/a&gt;.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;em&gt;&amp;#8220;We have two ears and one mouth so that we can listen twice as much as we speak.&amp;#8221;&lt;/em&gt; -Epictetus&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;The next time we find ourselves in the middle of a conversation, let&amp;#8217;s try to listen more. :-)&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; &lt;a href="http://dictionary.reference.com/search?q=dialogue"&gt;http://dictionary.reference.com/search?q=dialogue&lt;/a&gt;&lt;/p&gt;


	&lt;p id="fn2"&gt;&lt;sup&gt;2&lt;/sup&gt; &lt;a href="http://dictionary.reference.com/search?q=conversation"&gt;http://dictionary.reference.com/search?q=conversation&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Fri, 25 Aug 2006 19:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a5c35991-a740-4c9e-924d-8f959b44d4be</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/25/dialogue-driven-development-is-about-listening</link>
      <category>agile</category>
      <category>d3</category>
      <category>listening</category>
      <category>clients</category>
      <category>dialogue</category>
      <category>planetargon</category>
      <category>ears</category>
      <category>mouth</category>
    </item>
    <item>
      <title>Information Anxiety and Solutions</title>
      <description>&lt;p&gt;Last week, &lt;a href="http://www.allisbe.com"&gt;Allison&lt;/a&gt; brought me in a copy of a book that she owns by &lt;a href="http://en.wikipedia.org/wiki/Richard_Saul_Wurman"&gt;Richard Saul Wurman&lt;/a&gt;. In 1976, Wurman coined the phrase, &lt;em&gt;information architect&lt;/em&gt;. (&lt;a href="http://en.wikipedia.org/wiki/Information_architecture"&gt;read more&lt;/a&gt;)&lt;/p&gt;


	&lt;p&gt;In his book, &lt;a href="http://www.amazon.com/gp/product/0789724103/102-0824021-1378541"&gt;Information Anxiety 2&lt;/a&gt;, Wurman discusses how we&amp;#8217;re overwhelmed by too much information&amp;#8230; amongst other related topics.&lt;/p&gt;


	&lt;p&gt;Allison bookmarked a page for me that discusses the problem with developing solutions without a good understanding of the problem.&lt;/p&gt;


&lt;blockquote&gt;
&amp;#8220;Before any solutions to any undertaking can be developed, a movement must begin to discover its beginning. Understanding the vein of the problem is the course to solving it. The best way to accomplish any endeavor is to determine its essential purpose, its most basic mission. What is the endeavor supposed to accomplish? What is the reason for embarking upon it? This is where the solution lies.&amp;#8221; 
&lt;br /&gt;&lt;br /&gt;
- Richard Saul Wurman, Information Anxiety 2
&lt;/blockquote&gt;

	&lt;p&gt;Wurman then goes on to suggest, &lt;em&gt;&amp;#8220;There are two parts to solving any problem: What you want to accomplish, and how you want to do it. Even the most creative people attach issues by leaping over what they want to do and going on to how they will do it. There are many how&amp;#8217;s but only one what.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;There are many how&amp;#8217;s but only one what&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;&amp;#8220;You must always ask the question, &amp;#8220;What is?&amp;#8221; before you ask the question &amp;#8220;How to?&amp;#8221;&amp;#8220;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;When &lt;a href="http://blog.brightredglow.com"&gt;Brian&lt;/a&gt; and I began rethinking &lt;em&gt;how&lt;/em&gt; we were extracting information from our clients, it was important to understand &lt;em&gt;why&lt;/em&gt; we felt it was necessary. We&amp;#8217;re convinced that the more we can enhance our &lt;a href="http://blog.brightredglow.com/articles/2006/08/22/patterns-of-dialogue"&gt;patterns of dialogue&lt;/a&gt; with our clients, the more confidence we&amp;#8217;ll have in our approach to building solutions that provide them with that they &lt;em&gt;need&lt;/em&gt;, not just what they &lt;em&gt;think they need&lt;/em&gt; (want).&lt;/p&gt;


	&lt;p&gt;Next time a client brings you a list of features for their product, please be sure to ask yourself and your client, &lt;em&gt;&amp;#8220;why&amp;#8221;&lt;/em&gt; the product needs them. What are these &lt;em&gt;hows&lt;/em&gt; providing their business and user goals?&lt;/p&gt;
</description>
      <pubDate>Tue, 22 Aug 2006 13:15:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d986db40-fac8-4daa-bef9-695aa8275442</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/22/information-anxiety-and-solutions</link>
      <category>agile</category>
      <category>clients</category>
      <category>dialogue</category>
      <category>solutions</category>
      <category>patterns</category>
      <category>d3</category>
      <category>goals</category>
      <category>information</category>
      <category>anxiety</category>
      <category>products</category>
      <category>features</category>
    </item>
    <item>
      <title>class Goal; has_many :sub_goals; end</title>
      <description>&lt;p&gt;I was up late last night reading, &lt;a href="http://www.amazon.com/gp/product/B0006D8J40/002-7427698-8489658"&gt;The New Utopians: A study of system design and social change&lt;/a&gt; and came across the following quote.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;&amp;#8220;Problem solving proceeds by erecting goals, detecting differences between present situation and goal, finding in memory or by search tools or processes that are relevant to reducing differences of these particular kinds, and applying these tools or processes. Each problem generates subproblems until we find a subproblem we can solve-&lt;del&gt;for which we already have a program stored in memory. We proceed until, by successive solution of such problems, we eventually achieve our over-all goal&lt;/del&gt;-or give up.&amp;#8221;&lt;/em&gt;[1]&lt;/p&gt;


	&lt;p&gt;This caught my attention because this presents a very systematic process for achieving goals, but doesn&amp;#8217;t clarify how you &lt;em&gt;erect&lt;/em&gt; these initial goals in the first place. Our team is putting a lot energy into rethinking how we are requesting information from our clients. Brian Ford has written an article titled, &lt;a href="http://blog.brightredglow.com/articles/2006/08/16/ethical-software-needs-dialogue"&gt;Ethical Software Needs Dialogue&lt;/a&gt;, which discusses some of our current approaches to outlining the project goals.&lt;/p&gt;


	&lt;p&gt;Brian writes, &lt;em&gt;&amp;#8220;One approach that we are trying is dialoguing with the client about goals without talking at all about the web site. In other words, for that exploration, the web site doesn’t even exist. Talk about thinking outside the tubes.&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;If you have a few minutes&amp;#8230; you might read &lt;a href="http://blog.brightredglow.com/articles/2006/08/16/ethical-software-needs-dialogue"&gt;his insightful article&lt;/a&gt;.&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; H.A. Simon, &lt;em&gt;The New Science of Management Decision&lt;/em&gt; (New York: Harper &amp;#38; Row, Publishers, Inc., 1960), p. 27.&lt;/p&gt;
</description>
      <pubDate>Wed, 16 Aug 2006 12:26:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:fba6ff99-9fab-4cd6-96b4-d1425eb7a306</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/16/class-goal-has_many-sub_goals-end</link>
      <category>agile</category>
      <category>d3</category>
      <category>goals</category>
      <category>dialogue</category>
      <category>driven</category>
      <category>development</category>
      <category>brixen</category>
      <category>tubes</category>
    </item>
    <item>
      <title>Project Illuminatus, an introduction</title>
      <description>&lt;p&gt;Due to an &lt;a href="http://www.robbyonrails.com/articles/2006/08/11/isight-magnet-is-teh-suck"&gt;unfortunate event&lt;/a&gt; last week, this blog entry is a few days late.&lt;/p&gt;


	&lt;p&gt;Over the next few weeks and months, the &lt;a href="http://www.planetargon.com"&gt;&lt;span class="caps"&gt;PLANET ARGON&lt;/span&gt;&lt;/a&gt; team will be blogging about one of our big projects that recently started. We needed to get the client to sign off on the blogging project and got the a-okay from their management early last week.&lt;/p&gt;


	&lt;p&gt;First, some background.&lt;/p&gt;


	&lt;p&gt;We were contacted by this rather large (enterprise?) company around the time that we went to RailsConf. When we got back, I began talking with our primary point of contact about their project, which sounded like a fairly big challenge and the sales process took a few weeks to come to an agreement on the next steps. Once they were finished interviewing a few other potential firms, we got the go-ahead that we should proceed with an &lt;span class="caps"&gt;ITER&lt;/span&gt;-ZERO, which I outlined a few months ago in part one of, &lt;a href="http://www.robbyonrails.com/articles/2006/05/31/the-art-of-delivery-part-1"&gt;The Art of Delivery&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://flickr.com/photos/robbyrussell/198853696/in/set-72157594209695361"&gt;&lt;img src="http://static.flickr.com/70/198853696_586e6c773f_m.jpg" style="float: right; padding: 6px;"&gt;&lt;/a&gt;
&lt;strong&gt;&lt;span class="caps"&gt;ITER&lt;/span&gt;-ZERO&lt;/strong&gt; was essentially a two-day trip for Brian and I to Washington DC (&lt;a href="http://flickr.com/photos/robbyrussell/sets/72157594209695361/"&gt;pictures&lt;/a&gt;) to interview the client and some of their existing users (domain experts), establish the protocol and channels for communication between them (the client) and our team, and work on identifying the core goals of their product that we&amp;#8217;ll be developing &lt;em&gt;with&lt;/em&gt; them. They have an &lt;strong&gt;existing product&lt;/strong&gt; that they&amp;#8217;ve been selling to customers for &lt;strong&gt;over ten years&lt;/strong&gt; and the product that we&amp;#8217;ll be developing will be the next generation of this software. The new product is replacing a desktop application that is only runs on Windows. The application that we&amp;#8217;re currently working has a technical requirement that is needs to run on &lt;em&gt;any operating system&lt;/em&gt; with a modern web browser, including some of the newer phones that have Opera mini installed! As you can see, we have our work cut out for us&amp;#8230; :-)&lt;/p&gt;


	&lt;p&gt;During our meetings, we agreed that while their final product name is going through their marketing process, that we should have a playful project name to refer to. Our primary contact at the firm suggested, &lt;strong&gt;Project Illuminatus&lt;/strong&gt;[1]. He&amp;#8217;s a bit of a conspiracy theory nut&amp;#8230; and it sounded fun&amp;#8230; so we agreed to that. :-)&lt;/p&gt;


	&lt;p&gt;If I recall, Brian and I stayed up past 2am (the time zone change does that to you&amp;#8230;) working on structuring the project wiki (instiki) to document &lt;a href="http://blog.brightredglow.com/articles/2006/08/04/its-all-about-the-dialogue"&gt;the dialogue&lt;/a&gt; that occurred on our first day in DC. This provided us with a solid plan for how we wanted to focus our attention to identifying the goals that we wanted to collaborate on with the client to build an innovative and simple to define solution. &lt;strong&gt;Simple solutions emerge from even complex goals when you can clarify them using simple and intelligible language&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;In &lt;a href="http://sztywny.titaniumhosting.com/2006/07/23/stiff-asks-great-programmers-answers/"&gt;this great blog interview&lt;/a&gt;, &lt;a href="http://sztywny.titaniumhosting.com"&gt;Stiff&lt;/a&gt; asked several famous developers the following question, &lt;em&gt;&amp;#8220;What do you think makes some programmers 10 or 100 times more productive than others?&amp;#8221;&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.loudthinking.com"&gt;David Heinemeir Hannsson&lt;/a&gt; responded with, &lt;em&gt;&amp;#8220;The ability to restate hard problems as easy ones.&amp;#8221;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;On day two, we showed their team the wiki and explained how they could collaborate with us there. If they had ideas and new goals identified, they had a place to store those. It&amp;#8217;s vital that your attention is on the scope of the work that needs to be investigated. We try not to solve all of the problems too quickly&amp;#8230; it&amp;#8217;d be naive of us to think that we could. Products evolve and so must their requirements.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not going to go into everything that went on here at the moment, perhaps &lt;a href="http://blog.brightredglow.com"&gt;Brian&lt;/a&gt; will fill us in on some of this.&lt;/p&gt;


	&lt;p&gt;When we got back to Portland, Brian and I began meeting with Allison Beckwith, our Creative Director, to outline one of the most complex pieces of the system. As a team, we decided that this is what we need to focus more of our immediate attention to. In the their previous application, there was approximately five different modules that did something &lt;em&gt;very&lt;/em&gt; similar, but just slightly different enough for their original developers to just build separate interfaces, which were not consistent and difficult to use for someone new to the application. We want to consolidate this into one new solution that focuses on how the users will be &lt;em&gt;using&lt;/em&gt; the system&amp;#8230; not just the &lt;em&gt;tasks&lt;/em&gt; that they are fulfilling. This is why we spend so much time thinking about the goals that the users have&amp;#8230; not what they &lt;em&gt;have&lt;/em&gt; to do.&lt;/p&gt;


	&lt;p&gt;Oh yeah&amp;#8230; one of the non-functional requirements?&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;&amp;#8220;The product shall be easy to use on the first attempt by a member of the general public without training.&amp;#8221;&lt;/em&gt;[2]&lt;/p&gt;


	&lt;p&gt;About a week later, we agreed on what work would be performed during &lt;span class="caps"&gt;ITER&lt;/span&gt;-001 (iteration one), which included paper prototyping and a few rounds wireframe mockups for this one major component of the application. I&amp;#8217;ll let &lt;a href="http://www.allisbe.com"&gt;Allison Beckwith&lt;/a&gt; (yes! she started a blog) fill you in on this when she gets some time to outline her process for doing this.&lt;/p&gt;


	&lt;p&gt;Stay tuned&amp;#8230;&lt;/p&gt;


	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; &lt;a href="http://en.wikipedia.org/wiki/Illuminatus"&gt;http://en.wikipedia.org/wiki/Illuminatus&lt;/a&gt;&lt;/p&gt;


	&lt;p id="fn2"&gt;&lt;sup&gt;2&lt;/sup&gt; copied directly from Mastering the Requirements Process, 2nd edition. It works.. and does it need to be reestated any simpler than that?&lt;/p&gt;</description>
      <pubDate>Mon, 14 Aug 2006 19:52:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:7d2b93be-f889-4c80-b5af-1676d30b7299</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/14/project-illuminatus-an-introduction</link>
      <category>planetargon</category>
      <category>agile</category>
      <category>delivery</category>
      <category>processes</category>
      <category>requirements</category>
      <category>allisbe</category>
      <category>clients</category>
      <category>dialogue</category>
      <category>d3</category>
      <category>goals</category>
      <category>brixen</category>
      <category>project</category>
      <category>illuminatus</category>
    </item>
    <item>
      <title>d3 not DDD</title>
      <description>&lt;p&gt;First, a quick update from our sponsors&amp;#8230;&lt;/p&gt;


	&lt;p&gt;Brian and I talked yesterday and agreed to stop referring to Dialogue-Driven Development as &lt;span class="caps"&gt;DDD&lt;/span&gt;. We&amp;#8217;ll leave that for the Domain-Driven Design fans. From now one, the short version for Dialogue-Driven Development will be &lt;strong&gt;d3&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;MSM&lt;/span&gt; posted &lt;a href="http://groups.yahoo.com/group/scrumdevelopment/message/15257"&gt;an email&lt;/a&gt; in regards to d3 on a Scrum development mailing list. He writes, &lt;em&gt;&amp;#8220;While I believe there&amp;#8217;s room for plenty of Agile methodologies in the world and wouldn&amp;#8217;t want to discourage the development of &lt;span class="caps"&gt;DDD&lt;/span&gt; if it helps them get their software written, I would hate to see Scrum described inaccurately, especially in a well-oiled meme propagation machine like the Rails community.&amp;#8221;&lt;/em&gt; (&lt;a href="http://groups.yahoo.com/group/scrumdevelopment/message/15257"&gt;link&lt;/a&gt;)&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://groups.yahoo.com/group/scrumdevelopment/message/15279"&gt;Michael D. Ivey responded with&lt;/a&gt;, &lt;em&gt;&amp;#8220;That being said&amp;#8230;as someone who has gotten 100% into Rails development, I find myself using Scrum less. At least, on the surface, official Scrum. Rails makes me&lt;sup&gt;W^W&lt;/sup&gt;Wlets me be so productive that we are basically having 1 day sprints.&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;What&amp;#8217;s interesting here is that we have a someone who is working with Ruby on Rails and finds himself using Scrum less because the environment is much different. This is &lt;em&gt;exactly&lt;/em&gt; why Brian and I started seeking out something even more lightweight. We&amp;#8217;re not aiming to replace other methodologies, but to structure our own that focuses on &lt;em&gt;dialogue&lt;/em&gt;. With Rails, we&amp;#8217;re finding that the amount of collaboration and dialogue with clients has both increased and improved tremendously.&lt;/p&gt;


	&lt;p&gt;Ivey also goes on to say, &lt;em&gt;&amp;#8220;I believe, having done Scrum well, and having done the &amp;#8221;&amp;#8221;Rails experience,&amp;#8221;&amp;#8221; that what Robby and &amp;#8230;. the other guy &amp;#8230;. are describing with &amp;#8221;&amp;#8221;Dialogue Driven Development&amp;#8221;&amp;#8221; is exactly what happens when you start with Scrum or something Scrummy, add a hyper-productive programming language and framework, mixin a very active and interactive customer, and then just start running at a comfortable pace and see when you get somewhere cool.&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Perhaps Michael is right&amp;#8230; and of course, this is open for discussion. :-)&lt;/p&gt;


	&lt;p&gt;Brian and I are spending a good deal of time thinking and talking about this stuff. We want to outline a new pattern that changes how requirements are &lt;em&gt;gathered&lt;/em&gt; and &lt;em&gt;documented&lt;/em&gt; through dialogue. It&amp;#8217;s apparent that as we read different peoples comments on our articles that the general consensus is to interpret the Product Backlog pattern described in the books on Scrum in a way that works best for your team. The approach outlined in &lt;a href="http://www.powells.com/biblio?isbn=0130676349"&gt;Agile Software Development with Scrum&lt;/a&gt; doesn&amp;#8217;t work for us.&lt;/p&gt;


	&lt;p&gt;What&amp;#8217;s your pattern? Share your story&amp;#8230;&lt;/p&gt;
</description>
      <pubDate>Tue, 08 Aug 2006 12:15:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:659a51ea-4ee9-4995-bd4c-c6000949c138</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/08/d3-not-ddd</link>
      <category>Ruby on Rails</category>
      <category>Programming</category>
      <category>rails</category>
      <category>development</category>
      <category>agile</category>
      <category>scrum</category>
      <category>dialogue</category>
      <category>driven</category>
      <category>collaboration</category>
      <category>software</category>
      <category>backlog</category>
      <category>patterns</category>
      <category>d3</category>
    </item>
    <item>
      <title>Extreme Motivational Posters</title>
      <description>&lt;p&gt;Take a look at these &lt;a href="http://www.semirandomseed.com/inspirational/extrememotivation.html"&gt;extreme programming motivational posters&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.semirandomseed.com/inspirational/scrumm-poster.jpg"&gt;&lt;img src="http://www.semirandomseed.com/inspirational/T_scrumm-poster.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://www.semirandomseed.com/inspirational/metaphor-poster.jpg"&gt;&lt;img src="http://www.semirandomseed.com/inspirational/T_metaphor-poster.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://www.semirandomseed.com/inspirational/pair2-poster.jpg"&gt;&lt;img src="http://www.semirandomseed.com/inspirational/T_pair2-poster.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Found via &lt;a href="http://www.think-box.co.uk/blog/2006/08/extreme-motivation.html"&gt;Think Box&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Mon, 07 Aug 2006 11:55:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:233ca6ff-dc76-4f5c-bb4c-68fda9cfc181</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/07/extreme-motivational-posters</link>
      <category>agile</category>
      <category>posters</category>
      <category>scrum</category>
      <category>methodologies</category>
      <category>xp</category>
      <category>silly</category>
    </item>
    <item>
      <title>Clients Deserve Simplicity</title>
      <description>&lt;p&gt;A few months ago, I posted an article titled, &lt;a href="http://www.robbyonrails.com/articles/2006/06/08/trawling-for-requirements"&gt;Trawling for Requirements&lt;/a&gt;, which was just before &lt;a href="http://www.theargonexpress.com"&gt;the Argon Express&lt;/a&gt; left for our trip to Chicago for &lt;a href="http://www.railsconf.org"&gt;RailsConf 2006&lt;/a&gt;. I&amp;#8217;ve been kicking around some ideas with Brian ever since that afternoon on how there just seemed to be a big void in software development arena. It&amp;#8217;s always felt that so many of the software development methodologies are designed to get developers to find a better way to work for and with clients. It&amp;#8217;s our goal to outline a pattern that simplifies this process, not just for ourselves, but also our clients.&lt;/p&gt;


	&lt;p&gt;With each new project that our team starts, we are given an opportunity to improve on our evolving pattern for communicating with clients to better understand their goals. If there is one thing that we&amp;#8217;ve seen help this process, it is consistent dialogue. When good collaboration exists through meaningful dialogue, confidence increases in not only the client. As developers, we are able to be confident that we understand their goals. This should generate better results.&lt;/p&gt;


&lt;blockquote&gt;
  &amp;#8220;You are not writing requirements to serve as a contract with your client. Rather, you are writing them to ensure that both of you share the same and demonstrably correct, understanding of what is needed. Do not ask the client to sign off on the requirements; instead, ask the client to &lt;em&gt;sign on&lt;/em&gt; to them and make them a collaborative effort.&amp;#8221; 
  &lt;br /&gt;&lt;br /&gt;
 &amp;#8212;Suzanne and James Robertson, &lt;a href="http://www.powells.com/biblio/71-0321419499-0"&gt;Mastering the Requirements Process, 2nd Ed&lt;/a&gt;.
&lt;/blockquote&gt;

	&lt;p&gt;In &lt;a href="http://www.powells.com/biblio/71-0321419499-0"&gt;Mastering the Requirements Process&lt;/a&gt;, the authors list the following as being key to identifying the project goal.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;Purpose&lt;/em&gt;: What should the project do?&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;Advantage&lt;/em&gt;: What business advantage does it provide?&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;Measurement&lt;/em&gt;: How do you measure the advantage?&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;Reasonable&lt;/em&gt;: Given what you understand about the constraints, is it possible for the product to achieve the business advantage?&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;Feasible&lt;/em&gt;: Given what you have learned from the blastoff, is it possible to build a product to achieve the measure?&lt;/li&gt;
		&lt;li&gt;&lt;em&gt;Achievable&lt;/em&gt;: Does the organization have (or can it acquire) the skills to build the product and operate it once built?&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;At first glance, I would agree that these are good questions to find answers for with your client.&lt;/p&gt;


	&lt;h2&gt;Requirements, Not Solutions&lt;/h2&gt;


	&lt;p&gt;Many clients come to us with a list of solutions (features) that describe implementation. This has been one of our &lt;a href="http://blog.brightredglow.com/articles/2006/08/06/one-cuckoo-flew-over-the-nest"&gt;concerns with the Product Backlog&lt;/a&gt; as it doesn&amp;#8217;t discourage feature lists. Take a moment to read &lt;a href="http://www.sprez.com/news200111.htm"&gt;Goal Oriented Requirements&lt;/a&gt;, which gives you a few bullets to think about when interacting with your client when extracting requirements.&lt;/p&gt;


	&lt;p&gt;Take a moment to read Brian&amp;#8217;s thoughts on &lt;a href="http://blog.brightredglow.com/articles/2006/08/06/one-cuckoo-flew-over-the-nest"&gt;the product backlog&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;In &lt;a href="http://www.powells.com/biblio/71-0321419499-0"&gt;Mastering the Requirements Process&lt;/a&gt;, the authors give two examples to show the &lt;strong&gt;difference between a solution and a requirement&lt;/strong&gt;.&lt;/p&gt;


	&lt;h3&gt;A Solution&lt;/h3&gt;


	&lt;p&gt;&lt;em&gt;The product shall display pictures of goods for the customer to click on.&lt;/em&gt;&lt;/p&gt;


	&lt;h3&gt;A Requirement&lt;/h3&gt;


	&lt;p&gt;&lt;em&gt;The product shall enable the customer to select the goods he wishes to order.&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;When requirements are defined in this form, it allows for further dialogue about multiple implementations.&lt;/p&gt;


	&lt;p&gt;For example, we&amp;#8217;re working on a project where the product shall enable the users to send messages to a central system. We&amp;#8217;ve defined a few specific implementations (email, text message, web form) and know that as new technologies emerge, the same requirement will still apply. It&amp;#8217;s important to remember that &lt;strong&gt;we are gathering requirements not solutions&lt;/strong&gt; and from there&amp;#8230; we can collaborate &lt;em&gt;with the client&lt;/em&gt; to design a solution that fits the requirements. Before we attempt to do solve the problem, we must ask that the requirement is aligned with the project goal.&lt;/p&gt;


	&lt;p&gt;We want our clients to assimilate our development methodologies quickly and naturally, which is what Dialogue-Driven Development aims to help achieve&amp;#8212;namely through communication, something we humans do rather well. By lowering the learning curve and accelerating the integration of clients into our process, we can focus a greater sum of our collective energy on the needs of the client, the purpose of the project, and the goals of it&amp;#8217;s users.&lt;/p&gt;


	&lt;p&gt;Although, perhaps we have it all wrong when trying to make software and the development process simpler as &lt;a href="http://money.cnn.com/magazines/business2/business2_archive/2006/04/01/8372803/index.htm"&gt;Paul Kedrosky suggested&lt;/a&gt;.  ;-)&lt;/p&gt;


	&lt;p&gt;Our clients don&amp;#8217;t just want simplicity. They deserve it!&lt;/p&gt;
</description>
      <pubDate>Sun, 06 Aug 2006 22:57:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b524243d-dafb-4522-8a24-389a70fb94fe</guid>
      <author>Robby Russell</author>
      <link>http://www.robbyonrails.com/articles/2006/08/06/clients-deserve-simplicity</link>
      <category>planetargon</category>
      <category>development</category>
      <category>agile</category>
      <category>scrum</category>
      <category>requirements</category>
      <category>dialogue</category>
      <category>driven</category>
      <category>simplicity</category>
      <category>solutions</category>
      <category>collaboration</category>
      <category>d3</category>
    </item>
    <item>
      <title>Dialogue-Driven Development is about rounded corners</title>
      <description>&lt;p&gt;In response to our &lt;a href="http://www.robbyonrails.com/articles/2006/08/02/dialogue-driven-development"&gt;introduction of Dialogue-Driven Development&lt;/a&gt;, mechanismalley.com writes, &lt;em&gt;&amp;#8221;...it seems to be the Rails community’s pattern to take an existing concept — or misconception — put rounded corners on it and deem it something new.&amp;#8221;&lt;/em&gt; (&lt;a href="http://mechanismalley.com/blog/2006/08/04/on-product-backlogs/"&gt;link&lt;/a&gt;)&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not sure that I can completely agree with this generalization. What I&amp;#8217;ve witnessed as a member of the Rails community, is an attempt to &lt;em&gt;simplify&lt;/em&gt; code, solutions, processes, and as a result&amp;#8230; conversation between developers and clients has become much richer and coherent. Take this with a grain of salt as this has only been my experience. &lt;strong&gt;Complex solutions are complex to explain&lt;/strong&gt; and often too complex to know if they are actually solving &lt;em&gt;the right goal.&lt;/em&gt; On the other hand, &lt;strong&gt;simple solutions make way for better dialogue&lt;/strong&gt;. With &lt;a href="http://www.rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt;, we are provided with a foundation that &lt;em&gt;encourages&lt;/em&gt; and &lt;em&gt;embraces&lt;/em&gt; best practices and simple solutions (rounded corners?), which makes it easier to discuss with the client. This is what fascinates me about Ruby on Rails&amp;#8230; and what Martin Fowler in &lt;a href="http://blog.scribestudio.com/articles/2006/07/03/martin-fowler-railsconf-2006-keynote-address"&gt;his keynote&lt;/a&gt; at &lt;a href="http://www.railsconf.org"&gt;RailsConf&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Perhaps it makes sense that what Brian and I are outlining with our approach to defining patterns for client&amp;lt;-&amp;gt;development team interaction evolved through us working with Ruby on Rails. However, there is nothing that requires Rails in order to follow the patterns that we&amp;#8217;re discussing. In Brian&amp;#8217;s &lt;a href="http://blog.brightredglow.com/articles/2006/08/04/its-all-about-the-dialogue"&gt;first article about d3&lt;/a&gt;, he referenced the following&amp;#8230;&lt;/p&gt;


&lt;blockquote&gt;&lt;em&gt;&amp;#8220;What we are seeing is a drive toward simplicity. Conventional wisdom once was “quick necessarily means dirty”. Ruby challenges that.&lt;/em&gt;
  &lt;br /&gt;
 &amp;#8212;&lt;a href="http://www.martinfowler.com/"&gt;Martin Fowler&lt;/a&gt;
&lt;/blockquote&gt;

	&lt;p&gt;At the very core of our approach with Dialogue-Driven Development is the &lt;a href="http://www.agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;. The author of this post is correct, we&amp;#8217;re taking an existing concept and putting rounded corners on it. We&amp;#8217;re trying to &lt;strong&gt;make it simpler&lt;/strong&gt;. We find that Scrum is too process heavy and while we can see it being a good step away from the &lt;a href="http://www.waterfall2006.com/"&gt;Waterfall&lt;/a&gt; approach, it&amp;#8217;s still not giving us that warm and fuzzy feeling. Rails developers know what that warm and fuzzy feeling is&amp;#8230; and we are hoping to find something that gives our clients and us the same feeling when we&amp;#8217;re not coding. We want lightweight methodologies to complement our lightweight frameworks and patterns.&lt;/p&gt;


&lt;blockquote&gt;
  We are uncovering better ways of developing&lt;br /&gt;
  software by doing it and helping others do it. &lt;br /&gt;
  Through this work we have come to value:&lt;br /&gt;
&lt;br /&gt;
  Individuals and interactions over processes and tools &lt;br /&gt;
  Working software over comprehensive documentation &lt;br /&gt;
  Customer collaboration over contract negotiation &lt;br /&gt;
  Responding to change over following a plan &lt;br /&gt;
&lt;br /&gt;
  That is, while there is value in the items on &lt;br /&gt;
  the right, we value the items on the left more.&lt;br /&gt;
  &lt;br /&gt;
 &amp;#8212;&lt;a href="http://www.agilemanifesto.org/"&gt;The Agile Manifesto&lt;/a&gt;
&lt;/blockquote&gt;

	&lt;p&gt;It&amp