<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" version="2.0">
  <channel>
    <title>Agile IT</title>
    <link>http://www.agileitx.com</link>
    <description>Agile IT</description>
    <item>
      <title>Career Survey</title>
      <link>http://www.agileitx.com/blog/jared_richardson/2009/01/career_survey.html</link>
      <description>The upcoming Career 2.0 book is in high gear, but we'd like to include more than our experiences. Over on the &lt;a href="http://career20.blogspot.com/"&gt;Career 2.0 blog&lt;/a&gt; we've posted a few questions about your career. Best moves, worst experience, etc. 
&lt;p&gt;
Please drop by and let us know, or send &lt;a href="http://matthewbass.com/"&gt;Matt&lt;/a&gt; or &lt;a href="mailto:jared@agileartisans.com"&gt;me&lt;/a&gt; email. We're hoping to gather nuggets of wisdom for the book, but we won't quote you without permission. ;)
&lt;p&gt;
&lt;a href="http://career20.blogspot.com/2009/01/whats-your-strategy.html"&gt;What's your strategy?&lt;/a&gt;</description>
      <pubDate>Sun, 04 Jan 2009 18:00:00 CST</pubDate>
      <guid isPermaLink="true">http://agileartisans.com/main/blog/147</guid>
      <dc:creator>Jared Richardson</dc:creator>
    </item>
    <item>
      <title>Tactics vs. Strategy (SOA &amp; The Tarpit of Irrelevancy)</title>
      <link>http://www.agileitx.com/blog/neal_ford/2009/01/tactics_vs_strategy_soa__the_tarpit_of_irrelevancy_.html</link>
      <description>&lt;p&gt;This is the first in a series of blog posts where I discuss what I see wrong with SOA (Service Oriented Architecture) in the way that it's being sold by vendors. The first installment is about how the need for SOA arose: tactics vs. strategy.&lt;/p&gt;&lt;p&gt;No company starts out as an Enterprise, they all start as a &lt;em&gt;company&lt;/em&gt;, with just a few employees. As such, their IT needs are small, handled by a small group of developers who can chat with each other over lunch about what's going on in the IT "department". As the business needs software, they have some process to get the requirements to the developers, and they write code. Thus, the accounting department comes to the developers and says "Here are our requirements for our new accounting application", and the developers build some version of it. Inside that application are some small parts of something that the entire company cares about, for example, some of the aspects of customers. Meanwhile, the marketing department comes to the developers and says "We need an application, and here are the requirements", and the developers build it. Of course, this application also encapsulates some aspects of a Customer (not the same as accounting, but possibly with some overlap). It is rare indeed that anyone looks around and tries to come up with a comprehensive strategy for application interoperability: you don't have time for that -- you're a small company, and if you don't get your software, you'll go out of business. This goes on for a while.&lt;/p&gt;&lt;p&gt;Then, one day, you wake up, and you're an Enterprise. The CIO looks around with dismay at all the actual entities the corporation cares about because they are scattered in bits and pieces in all these different siloed and packaged applications. And the database stuff is a mess, with shared tables and views and ETL jobs running on cron jobs. And the CIO throws up in his mouth, just a little. The CIO looks at the landscape, and realizes that the technical debt incurred over the last few years can only get worse from here, so he calls out "Help." Big software vendors are highly attuned to people in big companies (sorry, Enterprises) who can write checks saying "Help". They ride in with a solution wrapped around the SOA moniker. More about our friends the Enterprise vendors in a future part of the series.&lt;/p&gt;&lt;p&gt;What I'm concerned about in this post is the overall landscape, which is another way of asking "How did you get where you are now?" You got here because of 2 reasons: first, you took the path of least resistance when you were a company (before you became an Enterprise) because, if you had taken the time to build a comprehensive strategy, you'd have never survived as a company. Second, and more important, &lt;em&gt;what is strategic to the business is always tactical to IT&lt;/em&gt;. Business people can go into a conference room and change the entire direction of the company in 2 hours. Or, the business may decide to merge with another company that has truly dysfunctional IT, but other &lt;em&gt;business&lt;/em&gt; concerns override that. IT can never move as fast as the business, with means that IT always has to respond tactically to the decisions and initiatives brought forth from the business. No matter how much effort you put into a comprehensive, beautiful, well-designed enterprise architecture, it'll be blown out of the water the first time the business makes a decision unlike the ones that came before. The myth of SOA sold by the big vendors is that you &lt;em&gt;can&lt;/em&gt; create this massively strategic cathedral of enterprise architecture, but it always falls down in the real world because the COO (and CEO) can override the CIO (and his sidekick, the CTO). If you can convince your organization to allow IT to set the strategy for what capabilities the business will have long-term, you should. However, your more agile competitors are going to eat your lunch while you build your cathedral.&lt;/p&gt;&lt;p&gt;Any enterprise strategy you implement must realize that you will always be in tactical mode in IT because the business strategy doesn't require physical labor. Any enterprise architecture you develop must allow the business to evolve according to it's wants (and needs). This is what my colleague Jim Webber calls "Guerrilla SOA" and what I call "Evolutionary SOA". More about the details ofp evolutionary SOA in upcoming installments.&lt;/p&gt;</description>
      <pubDate>Fri, 02 Jan 2009 12:10:00 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-9944221.post-7985421495320182634</guid>
      <dc:creator>Neal Ford</dc:creator>
    </item>
    <item>
      <title>Collaborating with Other Writers</title>
      <link>http://www.agileitx.com/blog/johanna_rothman/2009/01/collaborating_with_other_writers.html</link>
      <description>&lt;p&gt;Merlin, via &lt;a href="http://clips.43folders.com/" target="_blank"&gt;43 Folders Clips&lt;/a&gt; has a video of &lt;a href="http://clips.43folders.com/post/67856977/john-cleese-writing" target="_blank"&gt;Eric Idle, on John Cleese’s Approach to Writing&lt;/a&gt;. Aside from John Cleese&amp;#8217;s specificity, Idle talks about how he had trouble finding collaborators until he started working with John Dupre (I don&amp;#8217;t know how his name is spelled).&lt;/p&gt;
&lt;p&gt;Collaborating with other writers for natural language writing is difficult. I find pairing for code much easier, and even for code, I have trouble. No one can read my mind, I want to name variables something else. I want a different setup. There&amp;#8217;s always something.&lt;/p&gt;
&lt;p&gt;If you find some good collaborators, treasure your relationship with them.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=BYgfkp.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=BYgfkp.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=2F2iOp.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=2F2iOp.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=sjCEDD.p"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=sjCEDD.p" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=WiwA4P.p"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=WiwA4P.p" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=ncZMmk.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=ncZMmk.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=bxP9IQ.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=bxP9IQ.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ManagingProductDevelopment/~4/501094029" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 02 Jan 2009 10:54:00 CST</pubDate>
      <guid isPermaLink="true">http://jrothman.com/blog/mpd/?p=8595</guid>
      <dc:creator>Johanna Rothman</dc:creator>
    </item>
    <item>
      <title>Happy New Year</title>
      <link>http://www.agileitx.com/blog/johanna_rothman/2009/01/happy_new_year.html</link>
      <description>&lt;p&gt;Everyone, I thank you for reading and commenting. I hope you have a healthy and happy 2009.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=Pz92iv.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=Pz92iv.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=MaIndy.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=MaIndy.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=AkCEoS.p"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=AkCEoS.p" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=kCMfbl.p"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=kCMfbl.p" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=PdYQ2P.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=PdYQ2P.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=4A4UEx.P"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=4A4UEx.P" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ManagingProductDevelopment/~4/500263079" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 01 Jan 2009 09:38:00 CST</pubDate>
      <guid isPermaLink="true">http://jrothman.com/blog/mpd/?p=8592</guid>
      <dc:creator>Johanna Rothman</dc:creator>
    </item>
    <item>
      <title>Ruby Conference in North Carolina! Ruby RX</title>
      <link>http://www.agileitx.com/blog/jared_richardson/2008/12/ruby_conference_in_north_carolina_ruby_rx.html</link>
      <description>We turned the website on for Ruby RX yesterday. It's a regional Ruby conference in North Carolina. We may still tinker with the speaker list a little (one person might bow out and be replaced). If all goes well we'll take this conference to several other cities next year, much like the Java/Agile &lt;a href="http://www.nofluffjuststuff.com"&gt;No Fluff Just Stuff&lt;/a&gt; touring conference.
&lt;p&gt;
Here's the URL: &lt;a href="http://www.nfjsone.com/conference/raleigh/2008/02/index.html"&gt;RubyRX&lt;/a&gt;
&lt;p&gt;
From the website:
&lt;p&gt;&lt;i&gt;
Ruby  is a dynamic, open source language with a focus on simplicity. Since it's release in 1995, Ruby is now among most popular programing languages. The Ruby on Rails  web framework has created a major shift in the web development space. If you haven't experienced the simplicity of ROR's Convention Over Confituration model, it is time to learn what all the buzz is about.
&lt;p&gt;
RubyRX will cover a lot more than just Ruby and Rails. Other languages will be covered including: Clojure, Erlang, Scala, a</description>
      <pubDate>Tue, 30 Dec 2008 18:00:00 CST</pubDate>
      <guid isPermaLink="true">http://agileartisans.com/main/blog/146</guid>
      <dc:creator>Jared Richardson</dc:creator>
    </item>
    <item>
      <title>Video Posted: Lessons Learned in Project Management</title>
      <link>http://www.agileitx.com/blog/johanna_rothman/2008/12/video_posted_lessons_learned_in_project_management.html</link>
      <description>&lt;p&gt;The nice folks at SQE have posted my keynote from the Better Software conference, &lt;a href="http://www.stickyminds.com/Media/Video/Detail.aspx?WebPage=103" target="_blank"&gt;Lessons Learned in Project Management&lt;/a&gt;. Yes, some of the material is from &lt;a href="http://www.amazon.com/gp/product/0978739248?ie=UTF8&amp;amp;tag=rothmaconsulg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0978739248"&gt;Manage It!: Your Guide to Modern, Pragmatic Project Management&lt;/a&gt;.&lt;img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=rothmaconsulg-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0978739248" border="0" alt="" width="1" height="1" /&gt;&lt;/p&gt;
&lt;p&gt;P.S. Thank you for telling me the link was broken originally. It&amp;#8217;s now fixed. Sorry about that!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=4VwFt3.O"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=4VwFt3.O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=9MnAF7.O"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=9MnAF7.O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=Ps4kYe.o"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=Ps4kYe.o" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=nRcMDG.o"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=nRcMDG.o" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=ovEIBK.O"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=ovEIBK.O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=Phn7wS.O"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=Phn7wS.O" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ManagingProductDevelopment/~4/498070100" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 29 Dec 2008 15:31:00 CST</pubDate>
      <guid isPermaLink="true">http://jrothman.com/blog/mpd/?p=8584</guid>
      <dc:creator>Johanna Rothman</dc:creator>
    </item>
    <item>
      <title>Who Should Be a Product Owner?</title>
      <link>http://www.agileitx.com/blog/johanna_rothman/2008/12/who_should_be_a_product_owner_.html</link>
      <description>&lt;p&gt;At a recent workshop, one of the participants asked me this question, &amp;#8220;We want to start a new Scrum team. But we are confused about who to ask to be the product owner. We have a choice of someone who doesn&amp;#8217;t know how to be a product owner, is 10 time zones away, but knows the current product, the customers and what they want. We also have a choice of someone here (same time zone) but he doesn&amp;#8217;t know the current product or the customers. Who&amp;#8217;s the better product owner?&amp;#8221;&lt;/p&gt;
&lt;p&gt;What a terrible choice. I didn&amp;#8217;t like either choice.&lt;/p&gt;
&lt;p&gt;I would look for a third option. I would look for someone who is interested in being a product owner, can either learn the product or learn how to be a product owner, and is local so he/she can participate in demos and sprint planning. My colleague says there is no one who could do that.&lt;/p&gt;
&lt;p&gt;My colleague wants to know who you would pick, of the two options above: a local person who doesn&amp;#8217;t know the current product or customers, or someone 10 time zones away who doesn&amp;#8217;t know how to be a product owner. Please leave a comment if you have an opinion.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=mOc7O"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=mOc7O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=brvLO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=brvLO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=fovGo"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=fovGo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=U37Ko"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=U37Ko" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=DAkmO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=DAkmO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=kkVGO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=kkVGO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ManagingProductDevelopment/~4/492515541" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 22 Dec 2008 14:18:00 CST</pubDate>
      <guid isPermaLink="true">http://jrothman.com/blog/mpd/?p=8581</guid>
      <dc:creator>Johanna Rothman</dc:creator>
    </item>
    <item>
      <title>Why Projects Don’t Need Specialists</title>
      <link>http://www.agileitx.com/blog/johanna_rothman/2008/12/why_projects_don_t_need_specialists.html</link>
      <description>&lt;p&gt;I taught several PM workshops last week in Israel. The Israeli project managers have the same concerns that my US students do&amp;#8211;it&amp;#8217;s difficult to imagine moving to Agile or even just integrating agile methods into your project if you have specialists.&lt;/p&gt;
&lt;p&gt;Specialists increase project delays in these ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;They aren&amp;#8217;t available when you need them. Because they are specialists, it&amp;#8217;s too easy for the specialist to be busy on another task when you need that specific person. And, because you or the specialist estimate only the time the specialist needed, if you ask anyone else to do the task, the task will take too long.&lt;/li&gt;
&lt;li&gt;The work backs up. No, you don&amp;#8217;t need a specialist all the time. But when you do, you need them. So, since work doesn&amp;#8217;t arrive as an even distribution, but instead arrives more in a Poisson distribution, the specialist has some periods of time when they aren&amp;#8217;t busy, and more times when they have a queue of work.&lt;/li&gt;
&lt;li&gt;Murphy&amp;#8217;s Law will happen. Just when you need a specialist, that person will want a vacation, or want to get married, or go skiing for two weeks, or have a baby. Or, leave the organization.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PMs (and projects) don&amp;#8217;t need specialists. They need people who are multi-talented and can finish tasks. Am I saying that we turn GUI designers into kernel developers? No, but there are many more things that a GUI designer or a kernel developer can do, rather than just one specialty.&lt;/p&gt;
&lt;p&gt;If you have specialists now, rethink your staffing, and offer people opportunities to learn new skills. Your projects will progress faster and you&amp;#8217;ll be more effective.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=t72FO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=t72FO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=0ffKO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=0ffKO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=87I8o"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=87I8o" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=K3zOo"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=K3zOo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=vcQ7O"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=vcQ7O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=uTBOO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=uTBOO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ManagingProductDevelopment/~4/492348684" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 22 Dec 2008 10:24:00 CST</pubDate>
      <guid isPermaLink="true">http://jrothman.com/blog/mpd/?p=8578</guid>
      <dc:creator>Johanna Rothman</dc:creator>
    </item>
    <item>
      <title>Look! Santa brought evaluations and a new column</title>
      <link>http://www.agileitx.com/blog/ryan_shriver/2008/12/look_santa_brought_evaluations_and_a_new_column.html</link>
      <description>&lt;a href="http://www.theagileengineer.com/public/Home/Entries/2008/12/17_Look%21_Santa_brought_evaluations_and_a_new_column_files/76815447_1a85a5d61c.jpg"&gt;&lt;img src="http://www.theagileengineer.com/public/Home/Media/76815447_1a85a5d61c_1.jpg" style="float:left; padding-right:10px; padding-bottom:10px; width:147px; height:178px;"/&gt;&lt;/a&gt;Today while sorting amongst the pile of Christmas cards from friends and relatives, I noticed an envelope from the recent &lt;a href="http://www.sqe.com/Agiledevpractices/"&gt;Agile Development Practices&lt;/a&gt; conference. I opened and found my session evaluations for &lt;a href="../Presentations/Entries/2008/11/17_Agile_Engineering_for_Architects.html"&gt;Agile Engineering for Architects&lt;/a&gt;. In this internet-age, it’s weird getting pen-and-paper feedback forms from a conference over a month ago. But it was cool nonetheless.&lt;br/&gt;&lt;br/&gt;So, the good news is I got all 8’s, 9’s and 10’s for an average score of 8.941.  And yes, that’s correct, the person compiling my average score went to three decimals of precision...because 8.9 just wasn’t good enough! The bad news is that I only had 22 people in my session. Not bad I guess, but I’d like to get a better turnout next time. At least now I can say, “other people seem to like it” and not be lying. Actually, truth be told, I followed up with &lt;a href="http://www.sqetraining.com/Public/InstructorDetail.aspx%253FInstructor%253D3"&gt;Lee Copeland&lt;/a&gt; last week asking if I was going to receive any feedback. He told me I had done well, the “2nd best amongst the non-&lt;a href="http://www.thefreedictionary.com/silver+tongue"&gt;silver tongues&lt;/a&gt;” and “13th best overall”. &lt;br/&gt;&lt;br/&gt;Getting these evaluations today in person and seeing positives scores feels re-assuring that I’m on the right track with respect to the topics I’m covering. I got the &lt;a href="http://agile2009.org/"&gt;Agile 2009&lt;/a&gt; call for papers today and will plan on doing this presentation there. I’m sure by next August with all the readers I get I’ll have a full session ;-)&lt;br/&gt;&lt;br/&gt;Oh, the second bit of news related to this Agile Engineering presentation is that I’m going to be doing some articles for &lt;a href="http://www.gantthead.com/extreme-project-management/"&gt;gantthead.com&lt;/a&gt; next year on subjects related to agile engineering. Well, at least one needs to be on agile engineering, the others can be on broader agile topics. &lt;a href="http://www.dougdecarlo.com/"&gt;Doug DeCarlo&lt;/a&gt; found out about my work and asked me to contribute.&lt;br/&gt;&lt;br/&gt;Like any software project, I have no idea what I’m going to do for my first article, but have a due date. January 15th.</description>
      <pubDate>Wed, 17 Dec 2008 19:20:00 CST</pubDate>
      <guid isPermaLink="true">aed23db3-de5a-49b1-8420-791880696c75</guid>
      <dc:creator>Ryan Shriver</dc:creator>
    </item>
    <item>
      <title>Try What You Can't Do</title>
      <link>http://www.agileitx.com/blog/jared_richardson/2008/12/try_what_you_can_t_do.html</link>
      <description>"Creative people should always try to do things they can't. That's when creativity is needed." -Marcel Wanders
&lt;p&gt;
When's the last time you tried something you didn't know how to do, just to stretch your brain a bit?
&lt;p&gt;
Marcel is a fashion designer (not a programmer), but his comments were very timely for our field. Think about software design when you read his next words.
&lt;p&gt;
"People think design is fluff, but it's a disciplined approach to something difficult. This is hard stuff that makes business better." and later "People who work in creative projects are excited to come to work. That's radical."
&lt;p&gt;
The really great projects are the ones we get excited about... recognizing the creative aspects of programming, including design, architecture, and implementation, is often neglected. How can we fix this? 
&lt;p&gt;
If you're in management, recognize that an excited team works faster. Depressed teams work slowly. They come into work later. Leave earlier. Take longer coffee breaks and lunches. It's not in</description>
      <pubDate>Wed, 17 Dec 2008 18:00:00 CST</pubDate>
      <guid isPermaLink="true">http://agileartisans.com/main/blog/145</guid>
      <dc:creator>Jared Richardson</dc:creator>
    </item>
    <item>
      <title>Agile 2008 - Jochen Krebs - Agile PMO, Agile Portfolio Managment, Scrum and More</title>
      <link>http://www.agileitx.com/blog/robert_payne/2008/12/agile_2008__jochen_krebs__agile_pmo_agile_portfolio_managment_scrum_and_more.html</link>
      <description>I talk with Jochen about his new Portfolio Management book among other things.&amp;nbsp; He has been working on a large agile transformation and give some insights into his rollout of agile.&lt;br/&gt;&lt;br/&gt;A great listen if you are looking at scaling agile.&lt;br/&gt;&lt;br/&gt;-bob &lt;br/&gt;</description>
      <pubDate>Tue, 16 Dec 2008 07:43:00 CST</pubDate>
      <guid isPermaLink="true">http://agiletoolkit.libsyn.com/index.php?post_id=413496#</guid>
      <dc:creator>Bob Payne</dc:creator>
    </item>
    <item>
      <title>MSI Wind: Kubuntu 8.10</title>
      <link>http://www.agileitx.com/blog/jared_richardson/2008/12/msi_wind_kubuntu_8_10.html</link>
      <description>It took me some time this evening, and some helping/shaming by Dan Hinojosa, but I got X running on 2 monitors nicely on the MSI Wind. So I'm posting the xorg.conf details so I can find it next time I need it. :)
&lt;p&gt;
First, to conserve memory, X caps itself at the maximum resolution of the monitors it sees when it's starting. You fix that by adding the "Virtual" section to your Display block.
&lt;p&gt;
And in the "Device" block I added a few performance tweaks I found on the web.
&lt;p&gt;
It's still not as snappy as I'd like (and as I'm sure it can be). Anyone spot anything else I can add?
&lt;p&gt;
&lt;pre&gt;&lt;p&gt;
Section "Device"
        Identifier      "Configured Video Device"
        Option          "AccelMethod"   "exa"
        #Option         "AccelMethod"   "xaa"
        #Option         "MigrationHeuristic"    "greedy" # mess up systray
        Option          "FramebufferCompression"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifie</description>
      <pubDate>Mon, 15 Dec 2008 18:00:00 CST</pubDate>
      <guid isPermaLink="true">http://agileartisans.com/main/blog/144</guid>
      <dc:creator>Jared Richardson</dc:creator>
    </item>
    <item>
      <title>Ruby Conf Videos</title>
      <link>http://www.agileitx.com/blog/jared_richardson/2008/12/ruby_conf_videos.html</link>
      <description>I spent a little time tonight watching some of the Ruby Conf 2008 videos. I especially liked Dave Thomas' &lt;a href="http://rubyconf2008.confreaks.com/keynote.html"&gt;keynote&lt;/a&gt; on forking Ruby. The parallel Ruby suggestions were very intriguing and looked very practical. Also, Nathaniel Talbot's &lt;a href="http://rubyconf2008.confreaks.com/fear-of-programming.html"&gt;Fear of Programming&lt;/a&gt; was great.
&lt;p&gt;
You can find them all at &lt;a href="http://rubyconf2008.confreaks.com/"&gt;Ruby Conf 2008 at Confreaks&lt;/a&gt;
&lt;p&gt;
There are a number of others I'm going to try to catch this week. Looks like I missed some great topics!</description>
      <pubDate>Sun, 14 Dec 2008 18:00:00 CST</pubDate>
      <guid isPermaLink="true">http://agileartisans.com/main/blog/143</guid>
      <dc:creator>Jared Richardson</dc:creator>
    </item>
    <item>
      <title>OSGi explained</title>
      <link>http://www.agileitx.com/blog/andrew_glover/2008/12/osgi_explained.html</link>
      <description>&lt;p&gt;Not long ago, I had the distinct pleasure of &lt;a href="http://www.javaworld.com/podcasts/jtech/2008/040308jtech.html"&gt;chatting with Sebastien Arbogast regarding OSGi&lt;/a&gt; for &lt;a href="http://www.javaworld.com/podcasts/jtech/"&gt;JavaWorld&amp;#8217;s Java Technology Insider&lt;/a&gt;. In this hip fat-chewing session, Sebastien introduces the concepts behind &lt;a href="http://www.osgi.org/Main/HomePage"&gt;OSGi&lt;/a&gt; and explains why its contribution to Java modularity is copasetic news for Java community. He also discusses the competing Java modules specifications (JSR 291 and JSR 277) and about application server migrations to OSGi; plus, he makes a tentative prediction about what might be coming next for this exciting technology.&lt;/p&gt;
&lt;p&gt;If you are new to the term &lt;a href="http://en.wikipedia.org/wiki/OSGi"&gt;OSGi&lt;/a&gt; or just want to learn more about it, Sebastien does an excellent job of educating &amp;#8212; I certainly learned a few things! &lt;a href="http://www.javaworld.com/podcasts/jtech/2008/040308jtech.html"&gt;Have a listen&lt;/a&gt; and see for yourself!&lt;/p&gt;
&lt;p&gt;&lt;center&gt;You can follow &lt;a href="http://twitter.com/thediscoblog"&gt;thediscoblog on Twitter&lt;/a&gt; now!&lt;/center&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 14 Dec 2008 12:43:00 CST</pubDate>
      <guid isPermaLink="true">http://thediscoblog.com/?p=415</guid>
      <dc:creator>Andrew Glover</dc:creator>
    </item>
    <item>
      <title>Attack of Self-Denial, 2008 Style</title>
      <link>http://www.agileitx.com/blog/michael_nygard/2008/12/attack_of_self_denial_2008_style.html</link>
      <description>&lt;blockquote&gt;&lt;p&gt;&amp;quot;Good marketing can kill your site at any time.&amp;quot;&lt;/p&gt;&lt;p&gt;--Paul Lord, 2006 &lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I just learned of another attack of self-denial from this past week.&lt;/p&gt;&lt;p&gt;Many retailers are suffering this year, particularly in the brick-and-mortar space. I have heard from several, though, who say that their online performance is not suffering as much as the physical stores are. In some cases, where the brand is strong and the products are not fungible, the online channel is showing year-over-year growth.&lt;/p&gt;&lt;p&gt;One retailer I know was running strong, with the site near it's capacity. They fit the bill for an online success in 2008. They have a great name recognition, a very strong, global brand, and their customers love their products. This past week, their marketing group decided to &amp;quot;take it to the next level.&amp;quot;&lt;/p&gt;&lt;p&gt;They blasted an email campaign to &lt;em&gt;four million&lt;/em&gt; customers.&amp;nbsp; It had a good offer, no qualifier, and a very short expiration time---one day only.&amp;nbsp; A short expiration like that creates a sense of urgency.&amp;nbsp; Good marketing reaches people and induces them to act, and in that respect, the email worked. Unfortunately, when that means millions of users hitting your site, you may &lt;a href="http://www.michaelnygard.com/blog/2007/03/selfinflicted_wounds.html"&gt;run into trouble&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Traffic flooded the site and knocked it offline. It took more than 6 hours to get everything functioning again.&lt;/p&gt;&lt;p&gt;Instead of getting an extra bump in sales, they lost six hours of holiday-season revenue. As a rule of thumb, you should assume that a peak hour of holiday sales counts for six hours of off-season sales. &lt;/p&gt;&lt;p&gt;There are other technological solutions to help with this kind of traffic flood. For instance, the UX group can create a static landing page for the offer. Then marketing links to that static page in their email blast. Ops can push that static page out into their cache servers, or even into their CDN's edge network. This requires some preparation for each offer, and it takes some extra preparation before the first such offer, but it's very effective. The static page absorbs the bulk of the traffic, so only customers who really want to buy get passed into the dynamic site.&lt;/p&gt;&lt;p&gt;Marketing can also send the email out in waves, so people receive it at different times. That spreads the traffic spike out over a few hours. (Though this doesn't work so well when you send the waves throughout the night, because customers will all see it in a couple of hours in the morning.) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;In really extreme cases, a portion of capacity can be carved out and devoted to handling promotional traffic. That way, if the promotion goes nuclear, at least the rest of the site is still online. Obviously, this would be more appropriate for a long-running promotion than a one-day event.&lt;/p&gt;&lt;p&gt;Of course, it should be obvious that all of these technological solutions depend on good communication. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;At a surface level, it's easy to say that this happened because marketing had no idea how close to the edge the site was already running. That's true. It's also true, however, that operations previously had no idea what the capacity was. If marketing called and asked, &amp;quot;Can we support 4 million extra visits?&amp;quot; the current operations group could have answered &amp;quot;no&amp;quot;. Previously, the answer would have been &amp;quot;I don't know.&amp;quot;&lt;/p&gt;&lt;p&gt;So, operations got better, but marketing never got re-educated. Lines of communication were never opened, or re-opened. Better communication would have helped. &lt;/p&gt;&lt;p&gt;In any online business, you must have close communications between marketing, UX, development, and operations. They need to regard themselves as part of one integrated team, rather than four separate teams. I've often seen development groups that view operations as a barrier to getting &lt;em&gt;their&lt;/em&gt; stuff released. UX and marketing view development as the barrier to getting their ideas implemented, and so on. This dynamic evolves from the &amp;quot;throw it over the wall&amp;quot; approach, and it can only result in finger-pointing and recriminations.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I'd bet there's a lot of finger-pointing going on in that retailer's hallways this weekend.&lt;/p&gt;</description>
      <pubDate>Sat, 13 Dec 2008 10:42:00 CST</pubDate>
      <guid isPermaLink="true">http://www.michaelnygard.com/blog/2008/12/attack_of_selfdenial_2008_styl.html</guid>
      <dc:creator>Michael Nygard</dc:creator>
    </item>
    <item>
      <title>Conferences in Emerging Tech Countries</title>
      <link>http://www.agileitx.com/blog/neal_ford/2008/12/conferences_in_emerging_tech_countries.html</link>
      <description>&lt;p&gt;I speak at lots of conferences in the US and Europe, and they pretty much have the same feel (modulo different languages, both programmer and spoken). But I also speak at a few conferences in emerging technology markets, like my recent conference appearance for JAX-Asia, a Java-centric conference that happens over the course of three days in Singapore, Kuala Lumpur, and Jakarta. Attendees at these conferences are very much like attendees at conferences elsewhere: slightly geeked out, interested in learning about new stuff, and inquisitive. They also exhibit a lot of enthusiasm: there aren't as many conferences there as here, so going to a conference is a bigger deal.&lt;/p&gt;&lt;p&gt;I have two observations from my recent trip. I first observed (with the help of my colleague, &lt;a href="http://erik.doernenburg.com/"&gt;Erik Doernenburg&lt;/a&gt;) that all the conferences in Asia have lots of sponsorships. Generally, attendees pay very little (if anything) to attend the conference; most of the cost is offset by vendor sponsorships deals. But along with the booth in the exhibit area, vendors get one or more keynotes. Now, I don't want to completely denigrate vendor keynotes. I've seen a couple that had actual content, not just blatant marketing. But, for the most part, the mode in Asia seems to be outrageous over-the-top marketing, making them not so much keynotes as "marketing-notes". Because most of the attendees aren't yet jaded and cynical, they stick around for the marketing-note, succumbing to the danger that their marketing bullshit detector is not as well honed as ones in the US and Europe. They might actually &lt;em&gt;believe&lt;/em&gt; what this vendor is saying about SOA -- what a frightening concept! To their credit, the conference also books in regular sessions that offset some of the damage caused by toxic marketing-notes. One of my talks at JAX-Asia was my &lt;em&gt;Evolutionary SOA&lt;/em&gt; talk, which is pretty much the polar opposite of what most vendors say about SOA. One of the reasons I like speaking at out of the way conferences like JAX-Asia concerns around this very issue. I'm very interested in providing my (and ThoughtWorks) perspective on technology and methodology to offset the message of people just trying to sell something. I genuinely want to advance the state of software development, which has no geographic boundaries.&lt;/p&gt;&lt;p&gt;The second observation from JAX-Asia is the span of sophistication of the attendees. Just like any conference, you get a fair number of wide-eyed innocents, who just discovered Ant last week and want more cool stuff like that. To those attendees, preaching about dynamic languages and other cutting edge stuff is pointless: their primary interest in the conference is shoring up their current development practice, not spelunking into the future of technology. But it's a mistake to assume that all the attendees are beginners. Like any conference, a wide variety of skill sets and experience show up. For example, for JAX-Asia, I did a talk on JRuby, and another comparing Groovy &amp;amp; JRuby. JRuby was one thing: at least a few of the attendees had &lt;em&gt;heard&lt;/em&gt; of Ruby. But the comparison talk was brutal on both me and my audience. No one had even heard of Groovy, so discussing the nuances of the differences between a technology represented by a word they had heard ("Ruby"), with another technology for which no one was familiar ("Groovy") was tough. Yet, generalizations are dangerous. After my talks in Jakarta, I was chatting with one of the attendees, who turns out to be the president of the Ruby users group in Jakarta, which has 50 members! To me, this shows two things. One, never assume that the crowd to which you are speaking in homogeneous. Even if the majority are novices, chances are good that there are some experienced developers there as well. And, two, Ruby has managed to penetrate pretty far and wide. A 50 person Ruby users group in Jakarta encourages me greatly because it shows that the foothold that dynamic languages have in the US and Europe is spreading to other parts of the world.&lt;/p&gt;</description>
      <pubDate>Thu, 11 Dec 2008 10:09:00 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-9944221.post-9194732683141885177</guid>
      <dc:creator>Neal Ford</dc:creator>
    </item>
    <item>
      <title>Quote of the Week: Teddy Roosevelt</title>
      <link>http://www.agileitx.com/blog/matthew_bass/2008/12/quote_of_the_week_teddy_roosevelt.html</link>
      <description>&lt;p&gt;&amp;#8220;In the first place, we should insist that if the immigrant who comes here in good faith becomes an American and assimilates himself to us, he shall be treated on an exact equality with everyone else, for it is an outrage to discriminate against any such man because of creed, or birthplace, or origin. But this is predicated upon the person&amp;#8217;s becoming in every facet an American, and nothing but an American&amp;#8230; There can be no divided allegiance here. Any man who says he is an American, but something else also, isn&amp;#8217;t an American at all. We have room for but one flag, the American flag&amp;#8230; We have room for but one language here, and that is the English language&amp;#8230; and we have room for but one sole loyalty and that is a loyalty to the American people.&amp;#8221; — Teddy Roosevelt, 1907
&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/pelargir?a=nEQKO"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=nEQKO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=UUcko"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=UUcko" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=jeICo"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=jeICo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Wed, 10 Dec 2008 15:07:00 CST</pubDate>
      <guid isPermaLink="true">http://matthewbass.com/2008/12/10/quote-of-the-week-teddy-roosevelt/</guid>
      <dc:creator>Matthew Bass</dc:creator>
    </item>
    <item>
      <title>All things Spring with Rod Johnson</title>
      <link>http://www.agileitx.com/blog/andrew_glover/2008/12/all_things_spring_with_rod_johnson.html</link>
      <description>&lt;p&gt;I recently had the pleasure of &lt;a href="http://www.javaworld.com/podcasts/jtech/2008/100708jtech.html"&gt;chatting with Rod Johnson&lt;/a&gt; for &lt;a href="http://www.javaworld.com/podcasts/jtech/"&gt;JavaWorld&amp;#8217;s Java Technology Insider&lt;/a&gt; regarding all things &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt;, baby. Spring has come a long way since its early days; in fact, a recent &lt;a href="http://www.springsource.com/node/859"&gt;study shows spring adoption reaching 73%&lt;/a&gt; of Java development shops; plus, &lt;a href="http://www.springsource.com/"&gt;SpringSource&lt;/a&gt;, the commercial entity behind Spring, recently, &lt;a href="http://www.springsource.com/node/837"&gt;acquired G2One&lt;/a&gt; (the entity behind Groovy and Grails). &lt;/p&gt;
&lt;p&gt;In this conversation, Rod discusses how SpringSource walks the line between commercial success and its driving role in open source projects such as the Spring framework and Tomcat. Similarly, he explains what factors might cause developers to migrate from Spring&amp;#8217;s strictly free and open source products to the commercial, and costly, SpringSource Enterprise package. He also chats about the new, OSGi-based SpringSource Application Platform, which Rod says is designed not for where the Java enterprise market has been, but for where it is going.&lt;/p&gt;
&lt;p&gt;All in all, I had a great time learning from Rod and I hope you pick up a nugget or two &lt;a href="http://www.javaworld.com/podcasts/jtech/2008/100708jtech.html"&gt;listening to him as well&lt;/a&gt;, baby!&lt;/p&gt;
&lt;p&gt;&lt;center&gt;You can follow &lt;a href="http://twitter.com/thediscoblog"&gt;thediscoblog on Twitter&lt;/a&gt; now!&lt;/center&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 09 Dec 2008 12:34:00 CST</pubDate>
      <guid isPermaLink="true">http://thediscoblog.com/?p=411</guid>
      <dc:creator>Andrew Glover</dc:creator>
    </item>
    <item>
      <title>(Human | Pattern) Languages, part 2</title>
      <link>http://www.agileitx.com/blog/michael_nygard/2008/12/_human__pattern_languages_part_2.html</link>
      <description>&lt;blockquote&gt;&lt;em&gt;At the conclusion of the modulating bridge, we expect to be in the contrasting key of C minor. Instead, the bridge concludes in the distantly related key of F sharp major... Instead of resolving to the tonic, the cadence concludes with two isolated E pitches. They are completely ambiguous. They could belong to E minor, the tonic for this movement. They could be part of E major, which we've just heard peeking out from behind the minor mode curtains. [He] doesn't resolve them into a definite key until the beginning of the third movement, characteristically labeled a &amp;quot;Scherzo&amp;quot;.&lt;/em&gt;&lt;/blockquote&gt;

&lt;p&gt;In my last post, I lamented the missed opportunity we had to create a true pattern language about software. Perhaps calling it a missed opportunity is too pessimistic. Bear with me on a bit of a tangent. I promise it comes back around in the end.&lt;/p&gt;

&lt;p&gt;The example text above is an amalgam of a lecture series I've been listening to. I'm a big fan of &lt;a href="http://www.teach12.com/"&gt;The Teaching Company&lt;/a&gt; and their courses. In particular, I've been learning about the meaning and structure of classical, baroque, romantic, and modern music from Professor &lt;a href="http://www.teach12.com/storex/professor.aspx?id=3"&gt;Robert Greenberg&lt;/a&gt;.&lt;a href="#hpl2_1" class="footnote"&gt;1&lt;/a&gt; The sample I used here is from a series on &lt;a href="http://www.teach12.com/ttcx/coursedesclong2.aspx?pc=Professor&amp;amp;cid=7250"&gt;Beethoven's piano sonatas&lt;/a&gt;. This isn't an actual quote, but a condensation of statements from one of the lectures. I'm not going to go into all the music theory behind this, but it is interesting.&lt;a href="#hpl2_2" class="footnote"&gt;2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two things I want you to observe about the sample text. First, it's &lt;em&gt;loaded&lt;/em&gt; with jargon. It has to be! You'd exhaust the conversational possibilities about the best use of a D-sharp pretty quickly. Instead, you'll talk about structures, tonalities, relationships between that D-sharp and other pitches. (D-sharp played together with a C? Very different from a quick sequence of D-sharp, E, D-sharp, C.) You can be sure that composers don't think in terms of individual notes. A D-sharp by itself doesn't mean anything. It only acquires meaning by its relation to other pitches. Hence all that stuff about keys---tonic, distantly related, contrasting. &amp;quot;Key&amp;quot; is a construct for discussing whole collections of pitches in a kind of shorthand. To a musician, there's a world of difference between G major and A flat minor, even though the basic pitch (the &lt;em&gt;tonic&lt;/em&gt;) is only one half-step apart.&lt;/p&gt;

&lt;p&gt;Also notice that the text addresses some structural features. The purpose and structure of a modulating bridge is pretty well understood, at least in certain circles. The notion that you can have an &amp;quot;expected&amp;quot; key certainly implies that there are rules for a sonata. In fact, the term &amp;quot;sonata&amp;quot; itself means some fairly specific things&lt;a href="#hpl2_3" class="footnote"&gt;3&lt;/a&gt;... although to know whether we're talking about &amp;quot;a sonata&amp;quot; or &amp;quot;a movement in sonata form&amp;quot; requires some additional context.&lt;/p&gt;

&lt;p&gt;In fact, this paragraph is all about context. It exists in the context of late Classical, early Romantic era music, specifically the music of Beethoven. In the Classical era, musical forms---such as sonata form---pretty much dictates the structure of the music. The number of movements, their relationships to each other, their keys, and even their tempos were well understood. A contemporary listener had every reason to expect that a first movement would be fast and bright, and if the first movement was in C major, then the second, slower movement would be a minuet and trio in G major.&lt;/p&gt;

&lt;p&gt;Music and music theory have evolved over the last thousand-odd years. We have a vocabulary---the potentially off-putting jargon of the field. We have nesting, interrelating contexts. Large scale patterns (a piano sonata) create context for medium scale patterns (the first movement &amp;quot;allegretto&amp;quot;) which in turn, create context for the medium and small scale patterns (the first theme in the allegretto consists of an ABA'BA phrasing, in which the opening theme sequences a motive upward over octaves.)&amp;nbsp; We even have the ability to talk about non sequiturs---like the modulating bridge above---where deliberate violation of the pattern language is done for effect.&lt;a href="#hpl2_4" class="footnote"&gt;4&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What is all this stuff if it isn't a pattern language?&lt;/p&gt;

&lt;p&gt;We can take a few lessons, then, from the language of music.&lt;/p&gt;

&lt;p&gt;The first lesson is this: give it time. Musical language has evolved over a long time. It has grown and been pruned back over centuries. New terms are invented as needed to describe new answers to a context. In turn, these new terms create fresh contexts to be exploited with yet other inventions.&lt;/p&gt;

&lt;p&gt;Second, any such language &lt;em&gt;must&lt;/em&gt; be able to assimilate change. Nothing is lost, even amidst the most radical revolutions. When the Twentieth Century modernists rejected the tonal system, they could only reject the structures and strictures of that language. They couldn't destroy the language itself. Phish plays fugues in concert... they just play them with electric guitars instead of harpsichords. There are Baroque orchestras today. They play in the same concert halls as the Pops and Philharmonics. The homophonic texture of plain chant still exists, and so do the once-heretical polyphony and church-sanctioned monophony. Nothing is lost, but new things can be encompassed and incorporated.&lt;/p&gt;

&lt;p&gt;And, mainframes still exist with their COBOL programs, together with distributed object systems, message passing, and web services. The Singleton and Visitor patterns will never truly go away, any more than batch programming will disappear.&lt;/p&gt;

&lt;p&gt;Third, we must continue to look at the relationships between different parts of our nascent pattern language. Just as individual objects aren't very interesting, isolated patterns are less interesting than the ways they can interact with each other.&lt;/p&gt;

&lt;p&gt;I believe that the true language of software has as much to do with programming languages as the language of music has to do with notes. So, instead of missed opportunity, let us say instead that we are just beginning to discover our true language.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;a name="hpl2_1"&gt;1.&lt;/a&gt; Professor Greenberg is a delightful traveling companion. He's witty, knowledgeable and has a way of teaching complex subjects without ever being condescending. He also sounds remarkably like Penn Jillette.&lt;/p&gt;

&lt;p&gt;&lt;a name="hpl2_2"&gt;2.&lt;/a&gt; The main reason is that I would surely get it wrong in some details and risk losing the main point of my post here.&lt;/p&gt;

&lt;p&gt;&lt;a name="hpl2_3"&gt;3.&lt;/a&gt; And here we see yet another of the complexities of language. The word &amp;quot;sonata&amp;quot; refers, at different times, to a three movement concert work, a single movement in a characteristic structure, a four movement concert work, and in Beethoven's case, to a couple of great fantasias that he declares to be sonatas simply because he says so.&lt;/p&gt;

&lt;p&gt;&lt;a name="hpl2_4"&gt;4.&lt;/a&gt; For examples ad nauseum, see Richard Wagner and the &amp;quot;abortive gesture&amp;quot;. &lt;/p&gt;</description>
      <pubDate>Mon, 08 Dec 2008 00:56:00 CST</pubDate>
      <guid isPermaLink="true">http://www.michaelnygard.com/blog/2008/12/human_pattern_languages_part_2.html</guid>
      <dc:creator>Michael Nygard</dc:creator>
    </item>
    <item>
      <title>(Human | Pattern) Languages</title>
      <link>http://www.agileitx.com/blog/michael_nygard/2008/12/_human__pattern_languages.html</link>
      <description>&lt;p&gt;We missed the point when we adopted &amp;quot;patterns&amp;quot; in the software world. Instead of an organic whole, we got a bag of tricks.&lt;/p&gt;

&lt;p&gt;The commonly accepted definition of a pattern is &amp;quot;a solution to a problem in a context.&amp;quot; This is true, but limiting. This definition loses an essential characteristic of patterns: Patterns relate to other patterns.&lt;/p&gt;

&lt;p&gt;We talk about the context of a problem. &amp;quot;Context&amp;quot; is a mental shorthand. If we unpack the context it means many things: constraints, capabilities, style, requirements, and so on. We sometimes mislead ourselves by using the fairly fuzzy, abstract term &amp;quot;context&amp;quot; as a mental handle on a whole variety of very concrete issues. Context includes stated constraints like the functional requirements, along with unstated constraints like, &amp;quot;The computation should complete &lt;em&gt;before&lt;/em&gt; the heat death of the universe.&amp;quot; It includes other forces like, &amp;quot;This program is written in C#, so the solution to this problem should be in the same language or a closely related one.&amp;quot; It should not require a supercooled quantum computer, for example.&lt;/p&gt;

&lt;p&gt;Where does the context for a small-scale pattern originate?&lt;a class="footnote" href="#1"&gt;1&lt;/a&gt; Context does not arise ex nihilio. No, the context for a small-scale pattern is created by larger patterns. Large grained patterns create the fabric of forces that we call the context for smaller patterns. In turn, smaller patterns fit into this fabric and, by their existence, they change it. Thus, the small scale patterns create feedback that can either resolve or exacerbate tensions inherent in the larger patterns.&lt;/p&gt;

&lt;p&gt;Solutions that respect their context fit better with the rest of the organic whole. It would be strange to be reading some Java code, built into layered architecture with a relational database for storage, then suddenly find one component that has its own LISP interpreter and some functional code. With all respect to &amp;quot;polyglot programming&amp;quot;, there'd better be a strong motivation for such an odd inclusion. It would be a discontinuity... in other words, it doesn't fit the context I described. That context---the layered architecture, the OO language, relational database---was created by other parts of the system.&lt;/p&gt;

&lt;p&gt;If, on the other hand, the system was built as a blackboard architecture, using LISP as glue code over intelligent agents acting asynchronously, then it wouldn't be at all odd to find some recursive lambda expressions. In that context, they fit naturally and the Java code would be an oddity.&lt;/p&gt;

&lt;p&gt;This interrelation across scale knits patterns together into a &lt;em&gt;pattern language&lt;/em&gt;. By and large, what we have today is a growing group of proper nouns. Please don't get me wrong, the nouns themselves have use. It's very helpful to say &amp;quot;you want a Null Object there,&amp;quot; and be understood. That vocabulary and the compression it provides is really important.&lt;/p&gt;

&lt;p&gt;But we shouldn't mistake a group of nouns for a real pattern language. A language is more than just its nouns. A language also implies ways of connecting statements sensibly. It has idioms and semantics and semiotics.&lt;a class="footnote" href="#2"&gt;2&lt;/a&gt; In a language, you can have dialog and argumentation.&amp;nbsp; Imagine a dialog in patterns as they exist today:&lt;/p&gt;

&lt;p&gt;&amp;quot;Pipes and filters.&amp;quot;&lt;/p&gt;

&lt;p&gt;&amp;quot;Observer?&amp;quot;&lt;/p&gt;

&lt;p&gt;&amp;quot;Chain of Responsibility!&amp;quot;&lt;/p&gt;

&lt;p&gt;You might be able to make a comedy sketch out of that, but not much more. We cannot construct meaningful dialogs about patterns at all scales.&lt;/p&gt;

&lt;p&gt;What we have are fragments of what might become a pattern language. GoF, the PLoPD books, the PoSA books... these are like a few charted territories on an unmapped continent. We don't yet have the language that would even let us relate these works together, let alone relating them to everything else.&lt;/p&gt;

&lt;p&gt;Everything else?&amp;nbsp; Well, yes. By and large, patterns today are an outgrowth of the object-oriented programming community.&amp;nbsp; I contend, however, that &amp;quot;object-oriented&amp;quot; &lt;em&gt;is&lt;/em&gt; a pattern! It's a large-scale pattern that creates really significant context for all the other patterns that can work within it. Solutions that work within the &amp;quot;object-oriented&amp;quot; context make no sense in an actor-oriented context, or a functional context, or a procedural context, and so on. Each of these other large-scale patterns admit different solutions to similar problems: persistence, user interaction, and system integration, to name a few. I can imagine a pattern called &amp;quot;Event Driven&amp;quot; that would work very well with &amp;quot;Object oriented&amp;quot;, &amp;quot;Functional&amp;quot;, and &amp;quot;Actor Oriented&amp;quot;, but somewhat less well with &amp;quot;Procedural programming&amp;quot;, and contradict utterly with &amp;quot;Batch Processing&amp;quot;. (Though there might be a link between them called &amp;quot;Buffer file&amp;quot; or something like that.)&lt;/p&gt;

&lt;p&gt;That's the piece that we missed. We don't have a pattern language yet. We're not even close.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;&lt;a name="1"&gt;1.&lt;/a&gt; By &amp;quot;large&amp;quot; and &amp;quot;small&amp;quot;, I don't mean to imply that patterns simply nest hierarchically. It's more complex and subtle than that. When we do have a real pattern language, we'll find that there are medium-grained patterns that work together with several, but not all, of the large ones. Likewise, we'll find small-scale patterns that make medium sized ones more or less practical. It's not a decision tree or a heuristic.&lt;/p&gt;

&lt;p&gt;&lt;a name="2"&gt;2.&lt;/a&gt; That's what keeps, &amp;quot;Fill the idea with blue&amp;quot; from being a meaningful sentence. All the words work, and they're even the right part of speech, yet the sentence as a whole doesn't fit together. &lt;/p&gt;</description>
      <pubDate>Mon, 08 Dec 2008 00:19:00 CST</pubDate>
      <guid isPermaLink="true">http://www.michaelnygard.com/blog/2008/12/human_pattern_languages.html</guid>
      <dc:creator>Michael Nygard</dc:creator>
    </item>
    <item>
      <title>MSI Wind: A Tiny Laptop</title>
      <link>http://www.agileitx.com/blog/jared_richardson/2008/12/msi_wind_a_tiny_laptop.html</link>
      <description>I just bought an MSI Wind laptop/netbook and so far I love it. It's tiny, weighing in 2.2 pounds. This includes the bigger, 6 cell battery that provides 6 hours of use. I haven't had a chance to push that envelope yet, but it's on my list of things to do. :)
&lt;p&gt;
Here's a picture of it sitting on my 15" MacBook Pro (&lt;a href="http://snipurl.com/71hvc"&gt;link&lt;/a&gt;). It literally makes the sleek MBP look clunky. It feels that way too. 2.2 versus 5.5 pounds.
&lt;p&gt;
The most surprising thing about the Wind is that it's got a hyperthreaded CPU. (Traditionally ultra small notebooks had a single CPU and were slow). It's got the Intel Atom CPU, but with hyperthreading, so it's amazingly responsive. My model came with 1 gig of memory (I've already upgraded it to 2) and a 160 gig hard drive. The external monitor drives my 19" widescreen nicely. So far I can't tell that it's any slower than my MacBook Pro for almost everything.
&lt;p&gt;
The keyboard's alphanumberics are fine to use, but the "edge keys", like CTRL and ? are odd</description>
      <pubDate>Sun, 07 Dec 2008 18:00:00 CST</pubDate>
      <guid isPermaLink="true">http://agileartisans.com/main/blog/142</guid>
      <dc:creator>Jared Richardson</dc:creator>
    </item>
    <item>
      <title>Jon Stewart and the Automaker Bailout</title>
      <link>http://www.agileitx.com/blog/johanna_rothman/2008/12/jon_stewart_and_the_automaker_bailout.html</link>
      <description>&lt;p&gt;Orac&amp;#8217;s post, &lt;a id="a095639" href="http://scienceblogs.com/insolence/2008/12/jon_stewart_on_the_detroit_bailout.php"&gt;Jon Stewart on the Detroit bailout&lt;/a&gt;, points to Stewart&amp;#8217;s perspective on the bailout. (Watch the video; it&amp;#8217;s hilarious.) Some paraphrases and quotes from Stewart:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;#8216;Congress&amp;#8230; doesn&amp;#8217;t know what the financial industry does and doesn&amp;#8217;t want to look stupid.&amp;#8217; (paraphrase of Stewart)&lt;/p&gt;
&lt;p&gt;&amp;#8220;The auto industry has a product that&amp;#8217;s tangible and easy to complain about. &amp;#8230; Even the crappy ones [&lt;em&gt;cars&lt;/em&gt;] are useful.&amp;#8221; (quote)&lt;/p&gt;
&lt;p&gt;&amp;#8216;The people you bailed out make derivative paper transfers of derivative groupings of said loans to China.&amp;#8217; (paraphrase, because I&amp;#8217;m not sure I wrote it down properly)&lt;/p&gt;
&lt;p&gt;&amp;#8220;Wall Street lost all the money without making anything&amp;#8221; (quote)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Who else makes an ephemeral product? Software-only producers, that&amp;#8217;s who. Especially software as a service. Especially if they don&amp;#8217;t release and get feedback frequently.&lt;/p&gt;
&lt;p&gt;More food for thought when you start thinking about your strategy and your ability to execute.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=RQewO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=RQewO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=wWrOO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=wWrOO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=dY2mo"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=dY2mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=d07Go"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=d07Go" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=8RSpO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=8RSpO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ManagingProductDevelopment?a=pNdeO"&gt;&lt;img src="http://feeds.feedburner.com/~f/ManagingProductDevelopment?i=pNdeO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ManagingProductDevelopment/~4/477847093" height="1" width="1"/&gt;</description>
      <pubDate>Sun, 07 Dec 2008 15:58:00 CST</pubDate>
      <guid isPermaLink="true">http://jrothman.com/blog/mpd/?p=8575</guid>
      <dc:creator>Johanna Rothman</dc:creator>
    </item>
    <item>
      <title>easyb does it at CodeMash 2009</title>
      <link>http://www.agileitx.com/blog/andrew_glover/2008/12/easyb_does_it_at_codemash_2009.html</link>
      <description>&lt;p&gt;&lt;img style="PADDING-LEFT: 0.0em; PADDING-RIGHT: 1.0em; PADDING-TOP: 0.0em; FLOAT: LEFT; PADDING-BOTTOM: 0.5em" src="http://codemash.org/images/bloggerbadge2008.gif" alt="conversation" width="140" height="100"/&gt;I had such a hip time at &lt;a href="http://thediscoblog.com/2007/11/08/joining-the-bash-at-codemash-man/"&gt;last year&amp;#8217;s CodeMash&lt;/a&gt; that I can&amp;#8217;t wait to attend this year&amp;#8217;s bash; what&amp;#8217;s more, I&amp;#8217;ll be presenting a talk entitled &amp;#8220;&lt;a href="https://www.codemash.org/SessionList.aspx"&gt;Executable documentation with easyb&lt;/a&gt;&amp;#8221; (hopefully with my good friend &lt;a href="http://www.rodcoffin.com/"&gt;Rod Coffin&lt;/a&gt;), which is going to explore how &lt;a href="http://easyb.org/"&gt;easyb&lt;/a&gt; enables teams to develop stories in a specific format (i.e. a &lt;a href="http://easyb.org/dsls.html"&gt;DSL&lt;/a&gt;, baby) which are then implemented as verification assets which marries the underlying application. &lt;/p&gt;
&lt;p&gt;In this talk, those who attend will learn how to embrace &lt;a href="http://thediscoblog.com/2008/10/16/lost-in-translation-stop-using-different-languages/"&gt;collaboration&lt;/a&gt; and change rapidly by defining &lt;a href="http://thediscoblog.com/2008/11/06/easybs-a-piece-of-cake/"&gt;easyb stories&lt;/a&gt; that exercise a Java application end to end. Attendees will learn how to define &lt;a href="http://thediscoblog.com/2008/09/10/javaworlds-diggin-easyb/"&gt;specific easyb structures&lt;/a&gt;, how to plug them into real code, and how to run them in an automated fashion&amp;#8211; people will see first hand how non-coders can define tests easily and how the collaboration this brings yields &lt;a href="http://thediscoblog.com/2008/01/23/stories-are-easy-man/"&gt;working software faster&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://codemash.org/"&gt;CodeMash&lt;/a&gt; is a unique event full of a lot of energy and myriad interesting disco dancers &amp;#8212; plus, Cleveland is a wonderful place to visit in January. That is, if you plan on spending your visit in an &lt;a href="http://www.kalahariresort.com/"&gt;indoor water park&lt;/a&gt;, man.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;You can follow &lt;a href="http://twitter.com/thediscoblog"&gt;thediscoblog on Twitter&lt;/a&gt; now!&lt;/center&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 07 Dec 2008 13:23:00 CST</pubDate>
      <guid isPermaLink="true">http://thediscoblog.com/?p=419</guid>
      <dc:creator>Andrew Glover</dc:creator>
    </item>
    <item>
      <title>JavaFX released. Finally.</title>
      <link>http://www.agileitx.com/blog/andrew_glover/2008/12/javafx_released_finally_.html</link>
      <description>&lt;p&gt;&lt;a href="http://www.sun.com/software/javafx/"&gt;JavaFX 1.0&lt;/a&gt; made its debut a few days back amid high hopes and a sea of doubt &amp;#8212; some in the Java community believe JavaFX could become &amp;#8220;the application environment for the Java platform,&amp;#8221; while others say Sun has made nothing but mistakes on the client side, and JavaFX is too little, too late. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.javaworld.com/podcasts/jtech/2008/120408jtech.html"&gt;I had the pleasure of chatting with Param Singh and John Burkey&lt;/a&gt;, both of Sun &amp;#8212; in our conversation, we chat about both the concerns associated with JavaFX 1.0 and its future potential on the desktop, web, and even mobile.  What&amp;#8217;s more, we also chatted about what does JavaFX 1.0 mean for Swing and can JavaFX compete with Flex or Silverlight? &lt;a href="http://www.javaworld.com/podcasts/jtech/2008/120408jtech.html"&gt;Have a listen and find out, man&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;center&gt;You can follow &lt;a href="http://twitter.com/thediscoblog"&gt;thediscoblog on Twitter&lt;/a&gt; now!&lt;/center&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 06 Dec 2008 14:43:00 CST</pubDate>
      <guid isPermaLink="true">http://thediscoblog.com/?p=428</guid>
      <dc:creator>Andrew Glover</dc:creator>
    </item>
  </channel>
</rss>

