<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <title type="html">Blog - User InExperience</title>
  <icon>http://www.userinexperience.com/Content/icons/mushroom.ico</icon>
  <logo>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</logo>
  <updated>2009-06-05T09:47:00</updated>
  <subtitle type="html">Architecture and User Experience... better together!</subtitle>
  <id>http://www.userinexperience.com/blog/atom</id>
  <link rel="alternate" type="text/html" hreflang="en" href="/blog/atom" />
  
  <generator uri="http://oxite.net" version="1.0">Oxite</generator>
  <geo:lat>38.808934</geo:lat><geo:long>-104.738238</geo:long><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-nd/2.0/" /><link rel="self" href="http://feeds.feedburner.com/userinexperience/tYGT" type="application/atom+xml" /><feedburner:emailServiceId>userinexperience/tYGT</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
    <title type="html">Handling Broken Links With ASP.NET Routing</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/NjDJNhxxVus/Handling-Broken-Links-With-ASPNET-Routing" />
    <id>http://www.userinexperience.com/Blog/Handling-Broken-Links-With-ASPNET-Routing</id>
    <updated>2009-06-05T19:15:30.727</updated>
    <published>2009-06-05T09:47:00</published>
    <author>
      <name>BSatrom</name>
    </author>
    <category term="routing" />
    <category term="mvc" />
    <category term="oxite" />
    <category term="net" />
    <content type="html" xml:lang="en">
      &lt;p&gt;One of the unfortunate realities of migrating your blog from one engine to another is that you run the risk of leaving a trail of broken links from Google and other external sources if your new engine has a different way of generating URLs for your content than your old engine did. Most do and, as a result, your new engine often gives you the ability to customize your new scheme to a legacy scheme, and things are seamless. Wordpress does this with an admin screen that specifies five options for creating Permalinks to your site, as shown in the screen below.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.userinexperience.com/images/HandlingBrokenLinksWithRouting_87F3/WordpressPermalinkMenu.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Wordpress Permalink Menu" border="0" alt="Wordpress Permalink Menu" src="http://www.userinexperience.com/images/HandlingBrokenLinksWithRouting_87F3/WordpressPermalinkMenu_thumb.png" width="644" height="288" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So if your old blog used a /&amp;lt;year&amp;gt;/&amp;lt;month&amp;gt;/&amp;lt;post&amp;gt; scheme, your new one can too.&lt;/p&gt;  &lt;p&gt;But what if you &lt;strong&gt;like&lt;/strong&gt; the new engine’s scheme and you want to use it going forward? You can’t very well serve broken links to people--that would break the internet--so you need to find a way to both leverage the new routing scheme and preserve legacy URLs from external sources.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Enter ASP.NET Routing&lt;/h3&gt;  &lt;p&gt;Routing is a new feature for ASP.NET that was released in 3.5 SP1 after the MVC team realized that its benefit extended well beyond MVC applications. So, while used most visibly in ASP.NET MVC applications, routing is available to leverage in forms applications as well.&lt;/p&gt;  &lt;p&gt;From the &lt;a href="http://msdn.microsoft.com/en-us/library/cc668201.aspx"&gt;MSDN Article&lt;/a&gt; (emphasis mine):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“ASP.NET routing &lt;strong&gt;enables you to use URLs that do not have to map to specific files in a Web site&lt;/strong&gt;. Because the URL does not have to map to a file, you can use URLs in a Web application that are descriptive of the user's action and therefore more easily understood by users.&lt;/p&gt;    &lt;p&gt;…&lt;/p&gt;    &lt;p&gt;In ASP.NET routing,&lt;strong&gt; you define URL patterns that contain placeholders for values that are used when you handle URL requests&lt;/strong&gt;. At run time, the pieces of the URL that follow the application name are parsed into discrete values, based on a URL pattern that you have defined. For example, in the request for http://server/application/Products/show/beverages, the routing parser can pass the values Products, show, and beverages to a handler for the request. In contrast, in a request that is not managed by URL routing, the /Products/show/beverages fragment would be interpreted as the path of a file in the application.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So, rather than /products/item.aspx?id=2, you can use /products/item/2 or /products/sprocket. In fact, &lt;strong&gt;you can use both&lt;/strong&gt; to route to the same location or action.&lt;/p&gt;  &lt;p&gt;(Aside: If you’re thinking, “this sounds similar to what I already have in PHP and Rails,” you would be right. The platform is evolving and taking on new ideas all the time. Now come back to .NET, you know you miss it here.)&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Routing and ASP.NET MVC&lt;/h3&gt;  &lt;p&gt;Bottom line: Routing enables me to define URL patterns for my site and map those patterns to an action that responds to the request. In MVC, which responds to requests rather than events (as ASP.NET Forms does), this means that routing enables me to define URL patterns that map to actions on my controllers and which provide data that the controller needs to pass a model to my views. In the context of MVC, &lt;strong&gt;routing is the transit system that ensures that the right Controller and the right Action are found every time.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;(Aside two: I’m not going to dive much more into what routing is and will instead show how I’m using into to solve the problem of preserving links after content migration. If you’d like to know more about routing itself, I’d recommend the &lt;a href="http://msdn.microsoft.com/en-us/library/cc668201.aspx"&gt;MSDN article&lt;/a&gt; and the “Routes and URLs” chapter in the Wrox &lt;a href="http://www.shelfari.com/books/purchase?EditionId=5185405&amp;amp;AssociateId=userinexperi-20&amp;amp;WidgetId=98079"&gt;Professional ASP.NET MVC 1.0&lt;/a&gt; book.)&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;What This Means for Content &lt;/h3&gt;  &lt;p&gt;In my mind, a URL is not just a location of a resource. It’s also:&lt;/p&gt;  &lt;p&gt;1) &lt;strong&gt;A contract with the user that the thing of value you expect to find is on the other end of this link&lt;/strong&gt;. A broken link is a broken contract with the user, and should be avoided at all costs. (a rule I’ve broken myself)&lt;/p&gt;  &lt;p&gt;2) &lt;strong&gt;A key component of the web User Interface (and User Experience).&lt;/strong&gt; Meaning that a URL like &lt;a href="http://awesomesite.com/page?id=0432drtG56689MdRR"&gt;http://awesomesite.com/page?id=0432drtG56689MdRR&lt;/a&gt; is no better than presenting the user with this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.userinexperience.com/images/HandlingBrokenLinksWithRouting_87F3/wgetguiscreenshot.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="wgetgui-screenshot" border="0" alt="wgetgui-screenshot" src="http://www.userinexperience.com/images/HandlingBrokenLinksWithRouting_87F3/wgetguiscreenshot_thumb.png" width="644" height="448" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The URL is part of the user’s interaction with your site, and it should be designed with the same care as the site layout itself.&lt;/p&gt;  &lt;p&gt;The good news is that Routing meets both of these needs nicely.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;So I Moved My Blog and Broke Some Links&lt;/h3&gt;  &lt;p&gt;As I mentioned in my last post, after five years of running this blog on Wordpress, I moved to &lt;a href="http://oxite.net"&gt;Oxite&lt;/a&gt;, an Open Source content engine built on ASP.NET MVC. I did this knowing that links like this:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.userinexperience.com/2009/02/16/debugging-workflows-wf-tracing-when-nothing-else-works-try-this" href="http://www.userinexperience.com/2009/02/16/debugging-workflows-wf-tracing-when-nothing-else-works-try-this"&gt;http://www.userinexperience.com/2009/02/16/debugging-workflows-wf-tracing-when-nothing-else-works-try-this&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Would break as Oxite would use this default URL instead:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.userinexperience.com/Blog/debugging-workflows-wf-tracing-when-nothing-else-works-try-this" href="http://www.userinexperience.com/Blog/debugging-workflows-wf-tracing-when-nothing-else-works-try-this"&gt;http://www.userinexperience.com/Blog/debugging-workflows-wf-tracing-when-nothing-else-works-try-this&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;With routing, the solution is simple. I simply add something like this to my site RouteCollection (note that MapRoute is an MVC-specific implementation of ASP.NET Routing. Default routing is typically called through the routes.Add() method):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;routes.MapRoute(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   &lt;span class="str"&gt;&amp;quot;LegacyUrl&amp;quot;&lt;/span&gt;,                                  &lt;span class="rem"&gt;// Route name&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;   &lt;span class="str"&gt;&amp;quot;{year}/{month}/{day}/{postSlug}&amp;quot;&lt;/span&gt;,            &lt;span class="rem"&gt;// URL with parameters&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; { controller = &lt;span class="str"&gt;&amp;quot;Post&amp;quot;&lt;/span&gt;, action = &lt;span class="str"&gt;&amp;quot;Item&amp;quot;&lt;/span&gt;}   &lt;span class="rem"&gt;// Parameter defaults&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Using this pattern, all of my broken links are handled and routed properly (provided that my postSlug value is the same), while giving me the flexibility of new URL patterns going forward.&lt;/p&gt;

&lt;h3&gt;&amp;#160;&lt;/h3&gt;

&lt;h3&gt;Making It Work In Oxite&lt;/h3&gt;

&lt;p&gt;The code above won’t work in Oxite, though. If you want to do something similar in the Alpha version of Oxite (where they are using ASP.NET Routing and not MVC routing), you can add the following to OxiteRoutes.cs:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;AddRoute(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   &lt;span class="str"&gt;&amp;quot;LegacyUrl&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;   &lt;span class="str"&gt;&amp;quot;{year}/{month}/{day}/{slug}/{dataFormat}&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; { areaName = &lt;span class="str"&gt;&amp;quot;Blog&amp;quot;&lt;/span&gt;, controller = &lt;span class="str"&gt;&amp;quot;Post&amp;quot;&lt;/span&gt;, action = &lt;span class="str"&gt;&amp;quot;Item&amp;quot;&lt;/span&gt;, dataFormat = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt; },&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; { dataformat = &lt;span class="str"&gt;&amp;quot;(|RSS|ATOM)&amp;quot;&lt;/span&gt; },&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; { Namespaces = controllerNamespaces }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;); &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;AddRoute is a private method that calls the routes.Add() method.&lt;/p&gt;

&lt;p&gt;If you’re working with a more-recent version of Oxite, you’ll notice that the engine now uses MVC routing. As such, you can add the following to OxiteRegisterRoutes.cs:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;MapRoute(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   &lt;span class="str"&gt;&amp;quot;LegacyUrl&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;   &lt;span class="str"&gt;&amp;quot;{year}/{month}/{day}/{postSlug}&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; { areaName = &lt;span class="str"&gt;&amp;quot;Blog&amp;quot;&lt;/span&gt;, controller = &lt;span class="str"&gt;&amp;quot;Post&amp;quot;&lt;/span&gt;, action = &lt;span class="str"&gt;&amp;quot;Item&amp;quot;&lt;/span&gt;, dataFormat = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt; },&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;   &lt;span class="kwrd"&gt;new&lt;/span&gt; { areaName = &lt;span class="kwrd"&gt;new&lt;/span&gt; AreaConstraint(container) },&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;   controllerNamespaces&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;); &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h3&gt;&amp;#160;&lt;/h3&gt;

&lt;h3&gt;So It Works, But Can It Be Better?&lt;/h3&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;So problem solved, right? Well, yes, but in the context of Oxite, I’ve made a engine-behavior change to resolve an implementation-specific issue. Not everyone needs to route legacy URLs, and even those who do may or may not need to route those URLs using the exact same pattern that I need. Some might need a completely different scheme altogether.&lt;/p&gt;

&lt;p&gt;So this really is no long-term solution. A better solution is a Routing Plugin for Oxite that allows a site administrator to create routes declaratively, using one or more canned options, or defining their own as needed. This would enable both Legacy URL support, and support for additional patterns (vanity URLs, etc).&lt;/p&gt;

&lt;p&gt;That’s something I’ll be working on in Oxite soon, and I’ll make the source available here as I’m working on it.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=NjDJNhxxVus:Tm-h_PDbE80:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=NjDJNhxxVus:Tm-h_PDbE80:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=NjDJNhxxVus:Tm-h_PDbE80:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/NjDJNhxxVus" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Handling-Broken-Links-With-ASPNET-Routing</feedburner:origLink></entry>
  <entry>
    <title type="html">User InExperience Now Powered by ASP.NET MVC and Oxite!</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/5EfMqk9mcm4/User-InExperience-Now-Powered-by-ASPNET-MVC-and-Oxite" />
    <id>http://www.userinexperience.com/Blog/User-InExperience-Now-Powered-by-ASPNET-MVC-and-Oxite</id>
    <updated>2009-05-26T14:09:29.21</updated>
    <published>2009-05-26T07:07:46.717</published>
    <author>
      <name>BSatrom</name>
    </author>
    <category term="mvc" />
    <category term="oxite" />
    <category term="net" />
    <content type="html" xml:lang="en">
      &lt;p&gt;Over the last few months, I’ve been knee-deep in &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; for a client mobile web application. All in all, I’m really impressed with what Microsoft turned out in the 1.0 release of the bits. I have a few posts in the hopper about how we (Thought Ascent) are using MVC to target mobile devices with views customized to platform capabilities, and will be posting those in the coming weeks.&lt;/p&gt;  &lt;p&gt;While wandering around ASP.NET MVC-land, I was directed to &lt;a href="http://oxite.codeplex.com/"&gt;Oxite&lt;/a&gt;, a blogging/CMS platform built on ASP.NET MVC and which leveraged the broad expertise of the guys responsible for &lt;a href="http://channel8.msdn.com/"&gt;Channel 8&lt;/a&gt;, &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;, &lt;a href="http://on10.net/"&gt;Channel 10&lt;/a&gt; and &lt;a href="http://visitmix.com/"&gt;MIX Online&lt;/a&gt;. &lt;a href="http://oxite.codeplex.com/"&gt;Oxite&lt;/a&gt; also powered the sharp-looking &lt;a href="http://videos.visitmix.com/MIX09"&gt;Mix 2009 site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So, after five years of hosting this blog in WordPress, I decided it was time to switch to .NET hosting and &lt;a href="http://oxite.codeplex.com/"&gt;Oxite&lt;/a&gt;. So far, I love it. The transfer was quick and painless, other than some minor issues with BlogML and encodings on content from the WordPress blog, but everything made it over. I’m happy to finally be on a .NET blog engine and am glad I jumped into &lt;a href="http://oxite.codeplex.com/"&gt;Oxite&lt;/a&gt; early. It’s an Alpha project as of now, but I’m impressed with the engine and the internals and am looking forward to diving in, tweaking the source on my end and perhaps even contributing to the mainline over time.&lt;/p&gt;  &lt;p&gt;Many thanks to &lt;a href="http://tobint.com/"&gt;Tobin Titus&lt;/a&gt; for the sharp-looking theme. One of these days, I should skin my own site…&lt;/p&gt;  &lt;p&gt;Links:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://oxite.codeplex.com/"&gt;Oxite&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note: If you came here and found a broken link from a referrer, try the search box on the right. I promise everything is still here. I plan to implementing routing to tie those links back together soon. In the meantime, a keyword or two should get you to what you’re looking for.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=5EfMqk9mcm4:KrprhiI7Z-w:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=5EfMqk9mcm4:KrprhiI7Z-w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=5EfMqk9mcm4:KrprhiI7Z-w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/5EfMqk9mcm4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/User-InExperience-Now-Powered-by-ASPNET-MVC-and-Oxite</feedburner:origLink></entry>
  <entry>
    <title type="html">The Future of Work and Workflow - RMTT Slides and Code Samples</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/bcJdz4Z1Cho/The-Future-of-Work-and-Workflow-RMTT-Slides-and-Code-Samples" />
    <id>http://www.userinexperience.com/Blog/The-Future-of-Work-and-Workflow-RMTT-Slides-and-Code-Samples</id>
    <updated>2009-05-26T12:50:27.653</updated>
    <published>2009-02-23T10:02:00</published>
    <author>
      <name>BSatrom</name>
    </author>
    <category term="speaking" />
    <category term="wf" />
    <category term="net" />
    <category term="rmtt" />
    <content type="html" xml:lang="en">
      Well, the Rocky Mountain Tech Trifecta has come and gone, and I think the event was a big success. There was a great turnout, and some really useful sessions.  &lt;p&gt;I was pleased to have a full house in my WF talk, and I hope that it was a useful time for those that chose to listen to me drone over the other available options. There was some good interaction and good questions, both during and after the talk.&lt;/p&gt;  &lt;p&gt;If you were there, I'd love to hear your feedback, good or bad. I can take, and I'm always looking for tips on how a technical talk can be more useful. If you have unabashed praise, I like that too.&lt;/p&gt;  &lt;p&gt;If you would like to have the slides, I've embedded those below, or you can download them &lt;a href="../presentations/The Future of Work and Workflow.pptx"&gt;here&lt;/a&gt;. I have some notes of many of the slides if you're interested in more detail than I shared in the presentation. There are also a few slides at the end on .NET 4.0 improvements to WF that I didn't get to during the talk.&lt;/p&gt;  &lt;p&gt;If you would like the code and demos I used during the presentation, you can find everything in a single Zip &lt;a href="../code/RMTTrifectaDemo.zip"&gt;here&lt;/a&gt;. Most everything you need to run the demos should be here, but you will need to create the persistence and tracking databases if you want to use those pieces. Also, you'll need to have MSMQ installed and running on whichever machine you plan to use for these demos. There's a Powershell script to create the queues in the ConsoleWorkflowServiceHost project if you want to try out the MSMQ features.&lt;/p&gt;  &lt;p&gt;There's also some unit tests if you want to try things out independent of the web app. You'll need to stage some data, but that's pretty easy. You'll notice that I also added a Test file to test the Custom WF activities I created for this demo separate from the WF itself. This is something I only mentioned in passing in the talk, but it's worth checking out as it's a useful way to really test your custom activities.&lt;/p&gt;  &lt;p&gt;If anything else is gnarly, feel free to drop me a comment here or an email and I'd be happy to help you out.&lt;/p&gt;  &lt;div style="text-align: left; width: 425px" id="__ss_1052914"&gt;&lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="The Future Of Work And Workflow" href="http://www.slideshare.net/TheSatch/the-future-of-work-and-workflow-1052914?type=powerpoint"&gt;The Future Of Work And Workflow&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=TheFutureofWorkandWorkflow-090220165114-phpapp01&amp;amp;stripped_title=the-future-of-work-and-workflow-1052914" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=TheFutureofWorkandWorkflow-090220165114-phpapp01&amp;amp;stripped_title=the-future-of-work-and-workflow-1052914" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View more &lt;a style="text-decoration: underline" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline" href="http://www.slideshare.net/TheSatch"&gt;Brandon Satrom&lt;/a&gt;. (tags: &lt;a style="text-decoration: underline" href="http://slideshare.net/tag/wf"&gt;wf&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://slideshare.net/tag/wcf"&gt;wcf&lt;/a&gt;)&lt;/div&gt; &lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=bcJdz4Z1Cho:38cpnVQ4YqE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=bcJdz4Z1Cho:38cpnVQ4YqE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=bcJdz4Z1Cho:38cpnVQ4YqE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/bcJdz4Z1Cho" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Future-of-Work-and-Workflow-RMTT-Slides-and-Code-Samples</feedburner:origLink></entry>
  <entry>
    <title type="html">Debugging Workflows: WF Tracing - When Nothing Else Works, Try This...</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/2PZOjRKSFZw/debugging-workflows-wf-tracing-when-nothing-else-works-try-this" />
    <id>http://www.userinexperience.com/Blog/debugging-workflows-wf-tracing-when-nothing-else-works-try-this</id>
    <updated>2009-05-19T15:42:15.523</updated>
    <published>2009-02-16T16:02:00</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;If you've spent any time with Windows Workflow Foundation, you probably know that every possible thing you can do to enable logging and tracing of your workflows at runtime (Tracking, logging, Tracing) can save your butt when you just can't seem to find out why the heck your workflow is sitting idle after you've just thrown a few hundred concurrent requests at it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163466.aspx"&gt;Tracking&lt;/a&gt; is pretty &lt;a href="http://msdn.microsoft.com/en-us/library/bb264458(VS.80).aspx"&gt;well documented&lt;/a&gt;, and I would highly recommend it, along with a &lt;a href="http://channel9.msdn.com/posts/jamescon/Workflow-Monitor-SDK-tool-demo/"&gt;Monitoring tool&lt;/a&gt; that gives you a view into tracking results without needing to write queries against the tracking DB (I'll cover some minor enhancements I made to &lt;a href="http://msdn.microsoft.com/en-us/library/ms741706.aspx"&gt;this tool&lt;/a&gt; in another post). Not that it's really that difficult, it's just not worth your time to figure out the ins and outs of the Tracking DB schema when Microsoft plans to &lt;a href="http://msdn.microsoft.com/en-us/magazine/2009.01.net40.aspx"&gt;greatly enhance it in .NET 4.0&lt;/a&gt;. (along with providing Tracking data views in IIS, which will be fantastic.)&lt;/p&gt;  &lt;p&gt;Logging, whether via &lt;a href="http://www.codeplex.com/entlib"&gt;Enterprise Library&lt;/a&gt; or another tool like &lt;a href="http://logging.apache.org/log4net/"&gt;Log4Net&lt;/a&gt;, is also pretty well documented. If you're using Workflow Services, you'd also be wise to use Service logging as another source for Workflow forensics. This is also well documented.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa663362.aspx"&gt;Tracing&lt;/a&gt;, on the other hand -- which I consider to be the last line of defense when WF Runtime seems fine, Tracking data is clean, but the WF isn't completing as expected and/ or you're seeing intermittent socket exceptions in the svclogs -- is not so well documented. Perhaps this is because it need not be documented as it is simple and I am daft. &lt;/p&gt;  &lt;p&gt;In any case, I thought it might be helpful to expound upon a few of the entries I have seen regarding Workflow Tracing.&lt;/p&gt;  &lt;p&gt;When I first looked into adding tracing to my Workflow Host, I found several articles that recommended the following code in config:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.diagnostics&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;switches&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow LogToTraceListeners&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Hosting&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Verbose&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Verbose&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Tracking&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Verbose&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Verbose&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities.Rules&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Verbose&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;switches&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.diagnostics&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;I found one example of this on MSDN. The guidance is spot on, but it is missing a few lines that I think would be helpful for a developer at his or her wits end with WF who is just trying to get logging up and running. It goes without saying that "LogToTraceListeners" assumes that one or more trace listeners already exist in your config. They don't exactly tell you that, do they? What's more, the self-contained config above would lead one to believe that you're all set this with this block of code. &lt;/p&gt;

&lt;p&gt;Not so. At bare minimum, you'll need to add at least one of the listeners below (unless you wanted to use the EventLog listener, but you get the idea):&amp;#160;&amp;#160; &lt;/p&gt;

&lt;p&gt;
  &lt;div class="csharpcode"&gt;
    &lt;div class="csharpcode"&gt;
      &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.diagnostics&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;switches&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow LogToTraceListeners&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Hosting&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Tracking&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities.Rules&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Off&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;switches&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;trace&lt;/span&gt; &lt;span class="attr"&gt;autoflush&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ConsoleTraceListener&amp;quot;&lt;/span&gt; &lt;/pre&gt;

      &lt;pre&gt;                    &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Diagnostics.ConsoleTraceListener&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;TextWriterTraceListener&amp;quot;&lt;/span&gt; &lt;/pre&gt;

      &lt;pre&gt;                    &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot;&lt;/span&gt; &lt;/pre&gt;

      &lt;pre&gt;                    &lt;span class="attr"&gt;initializeData&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Trace.log&amp;quot;&lt;/span&gt; &lt;/pre&gt;

      &lt;pre&gt;                    &lt;span class="attr"&gt;traceOutputOptions&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;DateTime&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;trace&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

      &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.diagnostics&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
    &lt;/div&gt;
    &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/div&gt;
  &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;Obvious? Maybe, but it's easy to miss in a rush. If that's you, I hope this helped.&lt;/p&gt;

&lt;p&gt;You might find that adding those two lines did nothing to fix your issue, in which case I might have something else for you to try. I' have seen in some cases where listeners are already set up for other parts of the system (WCF logging, for example) that the code above still won't work. If that's you, try this: &lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;          &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Hosting&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Tracking&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;listeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;source&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sources&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;sharedListeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot;&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="attr"&gt;initializeData&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;c:\logs\System.Workflow.trace.log&amp;quot;&lt;/span&gt;  &lt;/pre&gt;

  &lt;pre&gt;                &lt;span class="attr"&gt;traceOutputOptions&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;DateTime&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;sharedListeners&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;switches&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Hosting&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Runtime.Tracking&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Error&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Workflow.Activities.Rules&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Off&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;switches&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;          &lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Notice that live 4 in the first example is nowhere to be found here. I found I didn't need it. You'll also note that I had to add a source and listener for each Namespace in System.Workflow that I wanted to trace. I can't say why this works in cases where existing sources cause the "LogToTraceListeners" switch to hit the fritz, but I thought it was worth sharing. If it gets you our of a jam, then I'm happy to have shared it.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2PZOjRKSFZw:NgqdXqOo-ak:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2PZOjRKSFZw:NgqdXqOo-ak:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=2PZOjRKSFZw:NgqdXqOo-ak:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/2PZOjRKSFZw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/debugging-workflows-wf-tracing-when-nothing-else-works-try-this</feedburner:origLink></entry>
  <entry>
    <title type="html">The Future of Work and Workflow - Speaking at the Rocky Mountain Tech Trifecta on Feb. 21st</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/Vvnj01Flm2s/The-Future-of-Work-and-Workflow-Speaking-at-the-Rocky-Mountain-Tech-Trifecta-on-Feb-21st" />
    <id>http://www.userinexperience.com/Blog/The-Future-of-Work-and-Workflow-Speaking-at-the-Rocky-Mountain-Tech-Trifecta-on-Feb-21st</id>
    <updated>2009-05-19T15:42:15.137</updated>
    <published>2009-02-06T10:02:20</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;If you've read this blog for any length of time where I've posted regularly, you'll know that I'm a pretty big wonk for composition, Composite Apps and all things assembled and reused over coding from scratch.&lt;/p&gt;  &lt;p&gt;So it should be no surprise that I'm quite a fan of Windows Workflow Foundation (WF), the Chico Marx of the .NET Framework, underappreciated for it's elegance, simplicity and power to fundamentally change the way that applications are built in the future. Wait, that last part doesn't quite apply to a lesser-known Marx brother, but you get the idea.&lt;/p&gt;  &lt;p&gt;I've been interested in WF (If you hear me speak about it, notice that I will never, ever call it "Dub-F." Can't do it.) from the beginning, and have spent the last four months swimming in the deep end with WF, building some key pieces of an integration layer for a payment processing system that Thought Ascent has been working on for some time. Over that time, I've discovered that WF really does have all of the potential I suspected it did, and then some.&lt;/p&gt;  &lt;p&gt;WF is a platform that will change the way we look at building applications, and I think that WF is a great example of the kinds of technologies that will move us closer and closer to true composition of applications over the next 5-7 years. Of course, being a Workflow platform released in concert with a universal framework for building connected systems (WCF) and the UI framework of the future (WPF) sort of makes Workflow Foundation like the third member of Destiny's Child. Those other technologies were game changers from day one. WF has an uphill battle to fight for recognition and adoption, but I believe it's the game changer of the future.&lt;/p&gt;  &lt;p&gt;Not that it's being ignored, I just think it's been undervalued in the past, typically met with comments from developers and architects like "I get how it works, I just don't see what it's for"or "what does this give me that I can't do myself with code?"&lt;/p&gt;  &lt;p&gt;But I see that tone changing, with Microsoft putting a better and better case around Workflow though integration with key technologies, along with richer complimentary services and tighter integrations with WCF.&lt;/p&gt;  &lt;p&gt;So why am I telling you all this?&lt;/p&gt;  &lt;p&gt;As you may or may not know, the &lt;a href="http://www.rmtechtrifecta.com"&gt;Rocky Mountain Tech Trifecta&lt;/a&gt; is coming up in Denver on February 21st. This event will bring together several experts in the world of .NET, SQL and Windows, along with a few wannabees like myself who will present on just about anything you could hope to hear about in a developers conference. And there will be some heavy hitters to be sure: &lt;a href="http://www.hanselman.com/blog/"&gt;Scott Hanselman&lt;/a&gt;, &lt;a href="http://sqlserverbible.com/"&gt;Paul Neilsen&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/bags/"&gt;Rob Bagby&lt;/a&gt; and others. I'm not worthy...&lt;/p&gt;  &lt;p&gt;If you hadnt't guessed from the first paragraphs of this post, I'll be speaking on Windows Workflow Foundation. Here's the abstract for the talk:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The Future of Work and Workflow&lt;/p&gt;    &lt;p&gt;Since .NET 3.0, Windows Workflow Foundation (WF) has lived in the shadow of its flashy framework companions WCF and WPF. Yet from the start WF has been, at its core, about new ways of creating durable applications and composable units of work, both of which have the potential to change the way that developers assemble solutions. In this talk, Brandon will cover some of the highlights and recent enhancements to WF (Creating workflow services with WCF and WF, Workflow Persistence and Tracking), tips and tricks for advanced workflow scenarios (using MSMQ with workflow services, custom activities, etc.), and a preview of some upcoming Workflow features in the 4.0 Framework. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you're close to Denver and haven't signed up yet, you can sign up at &lt;a href="http://www.rmtechtrifecta.com"&gt;www.rmtechtrifecta.com&lt;/a&gt;. And if you're planning on coming, drop me a line. It should be a fun day.&lt;/p&gt;  &lt;p&gt;And if you're not planning on coming, look for slides and code here over the next few weeks.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=Vvnj01Flm2s:kKQMhROnwmE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=Vvnj01Flm2s:kKQMhROnwmE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=Vvnj01Flm2s:kKQMhROnwmE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/Vvnj01Flm2s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Future-of-Work-and-Workflow-Speaking-at-the-Rocky-Mountain-Tech-Trifecta-on-Feb-21st</feedburner:origLink></entry>
  <entry>
    <title type="html">Job Changes, Blog Changes</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/Ssoy8fYORRg/Job-Changes-Blog-Changes" />
    <id>http://www.userinexperience.com/Blog/Job-Changes-Blog-Changes</id>
    <updated>2009-05-19T15:42:14.907</updated>
    <published>2008-10-13T05:10:06</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;So I've up and switched jobs.&lt;/p&gt;  &lt;p&gt;After four years, over two of those as an Enterprise Architect, I've bid goodbye to Compassion and am re-entering the world of consulting.&lt;/p&gt;  &lt;p&gt;I loved my job at Compassion. There were many challenges, but there were many great victories and joyful seasons. And I'd like to think I helped contribute to some of the recent successes for both IT and the burgeoning EA group. For example:&lt;/p&gt;  &lt;p&gt;1) &lt;strong&gt;Moving EA Out&lt;/strong&gt; - The value of EA has been recognized at the executive-level, mostly due to the tireless efforts of my boss over the last six years. For the last two, I've tried to help in any way I could. As a result of this new success and visibility, the EA group will be moving out of IT and into the Global Strategy organization at Compassion. EA moving out of IT is a trend that &lt;a href="http://www.gartner.com"&gt;Gartner&lt;/a&gt; is noting with increased frequency, and I am excited to think that the Compassion EA group will be among the first to align itself with the business WHILE maintaining a strong connection with IT.&lt;/p&gt;  &lt;p&gt;2) &lt;strong&gt;Architects, Architects Everywhere&lt;/strong&gt; - Over the last two years, we've been working to evangelize the need for more architect-level positions throughout the IT organization. This summer, those positions were added to the organization as a part of an IT-wide restructure that just wrapped a few months ago. Since then, I've been working with these new domain architects and have been very impressed at the talent and skill they bring to the organization. Their presence will aid Compassion greatly in the future, and I'm happy to have had a chance to work with them, even if for a short time.&lt;/p&gt;  &lt;p&gt;3) &lt;strong&gt;A Vision for the Future&lt;/strong&gt; - Last year, I &lt;a href="http://www.userinexperience.com/2007/08/26/the-need-for-application-composition/"&gt;wrote&lt;/a&gt; &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;several&lt;/a&gt; &lt;a href="http://www.userinexperience.com/2007/09/06/composite-applications-visualized/"&gt;posts&lt;/a&gt; on a vision for Composite applications that we were calling the Composite Application Framework, or CAF. (Apparently I need to find out what happened to all the images in my older posts) Since we authored that vision, it has been adopted by the organization and IT has been building the foundation of the CAF for nearly a year. Even though I'm an outsider to the process now, I'm excited as a sponsor of three Compassion children to see how that vision enhances the ability of the ministry to reach both children and sponsors. Take it from me, I think it's gonna be awesome.&lt;/p&gt;  &lt;p&gt;And in spite of all of that, and a million other fantastic things I've been blessed to be a part of, I've been called elsewhere.&lt;/p&gt;  &lt;p&gt;As of today, I'm a Practice Architect for Thought Ascent, Inc. a IT consulting and services company based in Colorado Springs. There were a lot of reasons for my taking the job, but suffice it to say that I've been offered an opportunity that aligns with my goals and desires, both personally and professionally, so I jumped at the chance. It was tough to leave such a great organization, and one that is doing such amazing things, but I know that they'll continue to do well and I can't wait to see the amazing impact that Compassion continues to have in releasing children from poverty around the globe.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So what does this mean for the blog, you ask?&lt;/strong&gt; (Or perhaps I just pretend you ask)&lt;/p&gt;  &lt;p&gt;I'll &lt;strike&gt;keep&lt;/strike&gt; resume blogging, for one thing. And while I still plan to talk about Enterprise-scale Architecture, I'll be mixing in a healthy dose of code from the .NET world. That said, expect that I'll spend less time talking about EA as a management discipline and more time talking about EA as a framework for solution delivery.&lt;/p&gt;  &lt;p&gt;Bottom line, the initial goal of User InExperience remains the same: To document the thoughts and discoveries of this (mostly inexperienced) wanderer as he navigates the nooks and crannies of of technology and often finds himself in the right place at the right time.&lt;/p&gt;  &lt;p&gt;How's that for establishing authority? In any case, I hope you'll stick around.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=Ssoy8fYORRg:EUlCv1qCOBo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=Ssoy8fYORRg:EUlCv1qCOBo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=Ssoy8fYORRg:EUlCv1qCOBo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/Ssoy8fYORRg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Job-Changes-Blog-Changes</feedburner:origLink></entry>
  <entry>
    <title type="html">New Site Design and New Content Coming</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/1Q2ARFjzN-g/New-Site-Design-and-New-Content-Coming" />
    <id>http://www.userinexperience.com/Blog/New-Site-Design-and-New-Content-Coming</id>
    <updated>2009-05-19T15:42:14.11</updated>
    <published>2008-09-19T08:09:39</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;My recent inattention to this blog is quite shameful, so it's time for an overhaul.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For starters, I've updated the site design to something cleaner, brighter and with more real-estate. I feel better already. I hope you do too... still need to re-upload some lost images.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I also plan to spend more time in the coming months on Solution Architecture and design, along with the practical aspects of strategy and solution architecture, and less energy on the EA as IT management, which has been the focus of my day-to-day life for the past several months, and the tone of some recent posts. I use the term "recent" loosely...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Have a great weekend. Thought, comments and suggestions on content and design are always welcome.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=1Q2ARFjzN-g:tvMVE8e34No:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=1Q2ARFjzN-g:tvMVE8e34No:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=1Q2ARFjzN-g:tvMVE8e34No:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/1Q2ARFjzN-g" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/New-Site-Design-and-New-Content-Coming</feedburner:origLink></entry>
  <entry>
    <title type="html">Embracing the Long Tail</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/gxcRz0qPw6U/Embracing-the-Long-Tail" />
    <id>http://www.userinexperience.com/Blog/Embracing-the-Long-Tail</id>
    <updated>2009-05-19T15:42:13.533</updated>
    <published>2008-09-19T08:09:23</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Note: This is the second post in my &lt;a href="http://www.userinexperience.com/2008/01/02/freedom-within-a-framework-or-fred-introduction/"&gt;Freedom within a Framework&lt;/a&gt; series, which is about enabling the coexistence of enterprise and opportunistic applications. You can read the introductory post &lt;a href="http://www.userinexperience.com/2008/01/02/freedom-within-a-framework-or-fred-introduction/"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As I stated in my introductory post, I believe that it is possible to achieve a balance between the need for stability in enterprise applications, and the need for quick and agile innovation in opportunistic applications. They key to this balance lies is in determining where the domain of control for IT can safely transition into a environment of open access to information. This is a "line of demarcation" that allows for a clean separation of certain types of applications. The best way to picture this concept is to imagine a line on an X-axis, with control of technology at the left side, and anarchy at the right. "Command and Control IT" typically lives as close to the left as is possible, while the world of "consumer-driven IT" lives quite far to the right. There are opposed to be sure, but it is possible for IT to reconcile these differences and foster both sides by creating a shared understanding around which classes applications should be enterprise-class and which can and should be treated as opportunistic.  &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;Another way to visualize this concept is with the "&lt;a href="http://en.wikipedia.org/wiki/The_Long_Tail"&gt;Long Tail&lt;/a&gt;," which is depicted in Figure 1 below. The "Long Tail" was a term coined by &lt;a href="http://web.archive.org/web/20041127085645/http://www.wired.com/wired/archive/12.10/tail.html"&gt;Chris Anderson in Wired Magazine&lt;/a&gt; to describe how the business models of companies like &lt;a href="http://www.amazon.com"&gt;Amazon&lt;/a&gt; or &lt;a href="http://www.netflix.com"&gt;Netflix&lt;/a&gt; enables them to profitably offer a wider range of goods and services than traditional organizations. The concept (also referred to as a heavy-tail or &lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto distribution&lt;/a&gt;) is a well-known statistical occurrence where a high-frequency population (depicted by the region in green below) is followed by a very long low-frequency population that gradually diminishes in area (or "tails off"). In many cases, the long tail portion of the graph, colored in yellow below, can actually represent the majority of the area under the line in the graph, even though the frequency is lower along that portion of the line than it is in the green area.  &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-content/uploads/clip-image002.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="292" alt="The Long Tail" src="http://www.userinexperience.com/wp-content/uploads/clip-image002-thumb.png" width="558" border="0"/&gt;&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;Figure 1 - The Long Tail  &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;When applied to &lt;a href="http://www.amazon.com"&gt;Amazon&lt;/a&gt; and &lt;a href="http://www.netflix.com"&gt;Netflix&lt;/a&gt;, this concept is used to illustrate that organizations with powerful distribution channels can make just as much or more selling ten copies each of 10,000 obscure books as they could selling 100,000 copies of one best-selling book. The application to many organizations is just as powerful when information is the product. Assume for a moment that the green portion of the graph represents enterprise-class applications with a large internal user base and the "long tail" or yellow portion represents opportunistic applications with a much smaller number of users. This is depicted in figure 2 below.  &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-content/uploads/clip-image003.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="304" alt="The Long Tail of Applications" src="http://www.userinexperience.com/wp-content/uploads/clip-image003-thumb.png" width="566" border="0"/&gt;&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;Figure 2 - The Long Tail for Applications  &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;In this scenario, the "long tail" theory argues that an organization could serve more users with several hundred opportunistic applications than it does with a small number of enterprise-class applications, but at a much lower cost. Thus, a "long tail" model can enable an information-driven organization to serve its customer base effectively without greatly increasing the cost of software delivery. Such a model does so by enabling the kinds of opportunistic development which most IT organizations would likely never have the bandwidth or justification to pursue because they are applications which are tactical in nature and which may only serve a small number of users.  &lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;While a "Long Tail" mindset enables us to create a clear line of demarcation, simply classifying one type of application or information set as enterprise and another as opportunistic isn't enough. It is entirely possible for IT to pursue this demarcation with good intentions, and then stifle innovation by requiring that all applications, including opportunistic ones, be developed using only one type of platform or programming language. Thus, another key to creating "Freedom within a Framework" is that IT must give up as much control as is possible, while at the same time recognizing the assets and information over which the enterprise should retain control. In my next post, I'll discuss the concept of an IFaP architecture which, I believe, provides a powerful architecture for enabling open innovation while, at the same time, providing IT with a framework to manage its information assets.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2baad370-29e5-4006-b512-03b8b24f6ccb" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/REST" rel="tag"&gt;REST&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Long%20Tail" rel="tag"&gt;Long Tail&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=gxcRz0qPw6U:0B9n17fBNFY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=gxcRz0qPw6U:0B9n17fBNFY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=gxcRz0qPw6U:0B9n17fBNFY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/gxcRz0qPw6U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Embracing-the-Long-Tail</feedburner:origLink></entry>
  <entry>
    <title type="html">Visualizing The Interactions of Enterprise Architecture</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/ay-bY6DFUo0/Visualizing-The-Interactions-of-Enterprise-Architecture" />
    <id>http://www.userinexperience.com/Blog/Visualizing-The-Interactions-of-Enterprise-Architecture</id>
    <updated>2009-05-19T15:42:12.953</updated>
    <published>2008-06-13T09:06:41</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Okay quick question, assuming I have any readers left after my far-too-long hiatus.&lt;/p&gt; &lt;p&gt;Assume that the middle box--labeled "Translation"--is EA.&lt;/p&gt; &lt;p&gt;With no explanation from me, what does this graphic mean to you?&lt;/p&gt; &lt;p&gt;What do you think it says that you would agree with?&lt;/p&gt; &lt;p&gt;What does it say that you would dispute?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/VisualizingTheInteractionsofEnterpriseAr_8CE8/image.png"&gt;&lt;img align="center" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="591" alt="image" src="http://www.userinexperience.com/wp-images/post-images/VisualizingTheInteractionsofEnterpriseAr_8CE8/image_thumb.png" width="438" border="0"/&gt;&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.userinexperience.com/2008/06/13/visualizing-the-interactions-of-enterprise-architecture/#respond"&gt;Interested in hearing your thoughts...&lt;/a&gt;&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=ay-bY6DFUo0:EbEUvaRDdrc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=ay-bY6DFUo0:EbEUvaRDdrc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=ay-bY6DFUo0:EbEUvaRDdrc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/ay-bY6DFUo0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Visualizing-The-Interactions-of-Enterprise-Architecture</feedburner:origLink></entry>
  <entry>
    <title type="html">Yes. We. Can.</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/GDFb9g5YEOc/yes-we-can" />
    <id>http://www.userinexperience.com/Blog/yes-we-can</id>
    <updated>2009-05-19T15:42:12.673</updated>
    <published>2008-02-05T10:02:32</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      It's Super Tuesday. Time to get down to the business of choosing our candidates.

If you're in a state voting today, I hope you'll be there.

For now, &lt;a href="http://brandonsatrom.com/2008/02/05/a-little-inspiration-on-super-tuesday/"&gt;check this out&lt;/a&gt;. (Links to my "other" blog)

Happy Super Tuesday!

- Brandon
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=GDFb9g5YEOc:pKauIOV14YI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=GDFb9g5YEOc:pKauIOV14YI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=GDFb9g5YEOc:pKauIOV14YI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/GDFb9g5YEOc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/yes-we-can</feedburner:origLink></entry>
  <entry>
    <title type="html">Freedom within a Framework (or FRED) Introduction</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/BPayPHtTGNM/Freedom-within-a-Framework-or-FRED-Introduction" />
    <id>http://www.userinexperience.com/Blog/Freedom-within-a-Framework-or-FRED-Introduction</id>
    <updated>2009-05-19T15:42:11.787</updated>
    <published>2008-01-02T16:01:52</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For the past several weeks, we've been working on creating a viewpoint of our future-state architecture that enables a greater degree of low-hurdle innovation with technology than we currently enable. The goal is to enable anyone across the globe, inside of the organization or out, to make use of public information we provide to create applications of value, even if that value is only seen by a single individual. Call it Web 2.0; Call it Enterprise 2.0. Call it what you will. We're calling it either Freedom within a Framework or the Framework for Rapid and Empowering Development (FRED) depending on to whom we're currently pitching the idea. The latter is our EA marketing savvy at work...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The idea is simple: We want to create an environment when enterprise applications can be created and managed in an enterprise way, and opportunistic applications (i.e. ad-hoc process applications and mashups) can be created freely and with little to no involvement from the IT organization. IT does what it does best, but explicitly steps back from "owning" all information and technology in an organization. From concept to implementation, I believe that one way to foster such an environment is to allow the world of WS-* and the world of REST to co-exist within the enterprise. Rather than an either/or decision, we want enable and encourage both styles for certain types of situations.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The culmination of our work around this idea was a paper published internally at the end of November, along with a demo that provides an example RESTful interface (which depends on our existing SOA) and a couple of applications which consume information presented by those interfaces.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Over the next few weeks, I plan to post excerpts from this paper and some of the meat from the demos. My intent in doing so is twofold:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1) To posit an alternative to the REST vs. WS-* debate. I am certainly not the first to argue for cohabitation of these styles. I only wish to add my voice and provide another perspective.&lt;/p&gt; &lt;p&gt;2) To obtain feedback from Enterprise and SOA Architects who have either already considered, are considering, or have implemented a similar design. I'd love to hear feedback in the coming weeks from anyone wanting to way in on any of the topics below.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I'll publish the first post tomorrow, and the subsequent ones every couple of days after that. Here are the topics I plan to post about, in order:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.userinexperience.com/2008/01/03/embracing-the-long-tail/"&gt;Embracing the Long Tail&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;IFaPs: Enabling the Long Tail and Protecting the Enterprise  &lt;/li&gt;&lt;li&gt;REST: The Entry Point for Innovation  &lt;/li&gt;&lt;li&gt;Benefits of a RESTful Interface  &lt;/li&gt;&lt;li&gt;REST and Security  &lt;/li&gt;&lt;li&gt;A Demo RESTful Interface  &lt;/li&gt;&lt;li&gt;Demo Opportunistic Applications&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As I add posts, I'll return to this post and add the hyperlinks.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Looking forward to the discussion!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c08e78c-800a-4412-8785-adc3d765e4c9" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/REST" rel="tag"&gt;REST&lt;/a&gt;, &lt;a href="http://technorati.com/tags/WS-*" rel="tag"&gt;WS-*&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Mashups" rel="tag"&gt;Mashups&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=BPayPHtTGNM:hkKbR64NyXs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=BPayPHtTGNM:hkKbR64NyXs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=BPayPHtTGNM:hkKbR64NyXs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/BPayPHtTGNM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Freedom-within-a-Framework-or-FRED-Introduction</feedburner:origLink></entry>
  <entry>
    <title type="html">Do Enterprise Architects Care (Enough) About Security?</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/HunJY5I6XUQ/Do-Enterprise-Architects-Care-Enough-About-Security" />
    <id>http://www.userinexperience.com/Blog/Do-Enterprise-Architects-Care-Enough-About-Security</id>
    <updated>2009-05-19T15:42:11.587</updated>
    <published>2007-12-06T11:12:51</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I'm sitting in a session at the &lt;a href="http://www.gartner.com"&gt;Gartner&lt;/a&gt; &lt;a href="https://agendabuilder.gartner.com/ea7/"&gt;EA Summit&lt;/a&gt; entitled "Security Architecture Best Practices." I'll be the first to admit that I don't pay enough attention to the Security side of Enterprise Architecture, which is why I am in this session and plan on attending another complementary session tomorrow. I am surprised to see that, though there are 600 people at this portion of the Summit, there are only about 50 people in this room. So is EA really that far behind the curve in getting on board with Security? What are we all doing beyond adding a vertical "Security" bar to our models? Not much, in my case, but I am feeling that that ought to change, especially in light of some things I am starting to work on which I will blog more about in the coming weeks. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I know that &lt;a href="http://duckdown.blogspot.com"&gt;James McGovern&lt;/a&gt; cares about security. In fact, he has stated before that he sees it as a form of competitive advantage, which, if true, explains why there are only 50 people in this room. I would expect that to grow year by year.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As for the session itself, so far so good. One salient point that I've heard Gartner preach before, but am now seeing tied to the Security space is that the "Consumerization of IT" should lead us to drive our Security Architecture and Design to enable choice and distributable trust. Personally, I feel that lock down security, the knee-jerk of most Enterprises, is an over-engineering step that will leave us inflexible and closed off from a younger generation of employees and consumers. Thus, I'm glad to see that backed up with some analysis from Gartner.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I'm glad to see Gartner offering sessions such as this in to an EA audience. My advice to them is to continue to offer sessions like this, even if the attendance from this year's summit doesn't suggest that there is an interest. Those numbers will grow.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:00c3ddd7-b940-405c-b87f-92089fd460c7" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Security" rel="tag"&gt;Security&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Gartner" rel="tag"&gt;Gartner&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=HunJY5I6XUQ:ZppzTMwc4vM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=HunJY5I6XUQ:ZppzTMwc4vM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=HunJY5I6XUQ:ZppzTMwc4vM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/HunJY5I6XUQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Do-Enterprise-Architects-Care-Enough-About-Security</feedburner:origLink></entry>
  <entry>
    <title type="html">MS Architecture Journal Reader</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/EhbnG3Yia8M/MS-Architecture-Journal-Reader" />
    <id>http://www.userinexperience.com/Blog/MS-Architecture-Journal-Reader</id>
    <updated>2009-05-19T15:42:11.293</updated>
    <published>2007-11-29T08:11:45</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The &lt;a href="http://www.architecturejournal.net/"&gt;Microsoft Architecture Journal&lt;/a&gt; has been one of my favorite print periodicals lately. The articles are top-notch, relevant and very well-written. If you don't have a subscription, I would highly recommend it, even if you're not in an MS shop. Yes, there is a Microsoft bent, but there are also some gems that, I feel, have been universally relevant.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I noticed in &lt;a href="http://simonguest.com/blogs/smguest/default.aspx"&gt;Simon Guest's blog&lt;/a&gt; this morning, that Microsoft has released an Architecture Journal Reader that provides digital access to all thirteen issues of the journal, with search, favorites, annotation, etc. I've already downloaded it and It will be nice to have all of that information closer at hand. You can download a beta of the reader &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dd466bbb-1b7d-438e-9f9a-954ce2058f15&amp;amp;displaylang=en"&gt;here&lt;/a&gt;, and go check out Simon's post &lt;a href="http://simonguest.com/blogs/smguest/archive/2007/11/27/Introducing-the-Architecture-Journal-Reader.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a6566e95-4ba0-4d2a-9db9-9f121e9670d2" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture%20Journal" rel="tag"&gt;Architecture Journal&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture%20Journal%20Reader" rel="tag"&gt;Architecture Journal Reader&lt;/a&gt;, &lt;a href="http://technorati.com/tags/WPF" rel="tag"&gt;WPF&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=EhbnG3Yia8M:fkcOKBBlVG0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=EhbnG3Yia8M:fkcOKBBlVG0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=EhbnG3Yia8M:fkcOKBBlVG0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/EhbnG3Yia8M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/MS-Architecture-Journal-Reader</feedburner:origLink></entry>
  <entry>
    <title type="html">Tell me where your SOA Hurts...</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/2xPWS3zthJQ/Tell-me-where-your-SOA-Hurts" />
    <id>http://www.userinexperience.com/Blog/Tell-me-where-your-SOA-Hurts</id>
    <updated>2009-05-19T15:42:10.89</updated>
    <published>2007-11-15T09:11:54</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;...and I'll charge you an arm and a leg to make it better. Looks like &lt;a href="http://adtmag.com/article.aspx?id=21498"&gt;IBM is starting up a dysfunctional SOA practice&lt;/a&gt;. Not surprising really. Consider this quote: "Some organizations may not be happy with their service oriented architectures (SOAs). They may have "unhealthy" SOAs as a consequence of partnering with inexperienced system integrators. They may have proprietary &lt;a href="http://adtmag.com/article.aspx?id=21498#"&gt;SOA&lt;/a&gt; technology in the mix, and it may be difficult to scale operations."&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;They will probably make a killing since no one&amp;nbsp;agrees on what SOA really means and all IBM has to do is figure out what you think it is, then convince a few key executives that that's the wrong idea, thus rendering them instantly unhappy. It was bad enough when selling the buzzword ruled the day, but selling the band-aid will be worse, I fear. This, my friends, is why we never should have let our executives hear "SOA" in the first place.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here's a question:&amp;nbsp;what happens&amp;nbsp;if&amp;nbsp;an organization worked with&amp;nbsp;IBM as their Systems integrator in the first place and is now unhappy with what they got? Would IBM ride in to rescue that organization too? &amp;lt;unrealistic&amp;gt;Maybe for the sake of good-will and a case-study, they'd do it for free.&amp;lt;/unrealistic&amp;gt;&amp;nbsp;I wonder how IBM would sell that engagement? Probably by blaming your internal management.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I can't help but think that this is a case of selling me poison, then following that up by telling me I have a deadly poison in my system and that you just so happen to have the antidote. Not that I am calling SOA poison in any way. Conceptually, it's just the opposite.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Maybe I'm overreacting or being too negative here. Any one care to chime in with excitement about this announcement?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:f1008d62-770c-4378-9870-9433fbe7fba9" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IBM" rel="tag"&gt;IBM&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2xPWS3zthJQ:rymNebLG09U:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2xPWS3zthJQ:rymNebLG09U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=2xPWS3zthJQ:rymNebLG09U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/2xPWS3zthJQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Tell-me-where-your-SOA-Hurts</feedburner:origLink></entry>
  <entry>
    <title type="html">Gartner Architecture Summits</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/lK8bcUFbQ7E/Gartner-Architecture-Summits" />
    <id>http://www.userinexperience.com/Blog/Gartner-Architecture-Summits</id>
    <updated>2009-05-19T15:42:10.417</updated>
    <published>2007-11-13T14:11:01</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;From December 3-7, &lt;a href="http://www.gartner.com"&gt;Gartner&lt;/a&gt; will be holding two back-to-back summits on &lt;a href="http://www.gartner.com/it/page.jsp?id=506878&amp;amp;tab=overview"&gt;Application Architecture, Development and Integration&lt;/a&gt; and &lt;a href="http://www.gartner.com/it/page.jsp?id=506997&amp;amp;tab=overview"&gt;Enterprise Architecture&lt;/a&gt; at the Rio in Last Vegas. It looks to be a informative week with some valuable sessions and insight. &lt;a href="http://www.biske.com/blog/?p=289"&gt;Todd Biske&lt;/a&gt; will be there in two panel discussions and I am looking forward to both of those, along with a number of others currently on the agenda.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Aside from the sessions, I've found that I gain the most value from these events when I have a chance to interact with other attendees. Are any other folks reading this planning to attend? If so, drop me a line in the comment section or via email at bsatrom at gmail dot com and we can try to connect during the week. I am always looking to gain the perspective of others in the opportunities and challenges that my EA group faces, as well as hear about the exciting and innovative things that other enterprises are doing. Hope to see you there!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7eb47069-16af-4a20-9be3-24c14f4f0839" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Gartner" rel="tag"&gt;Gartner&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Application%20Architecture" rel="tag"&gt;Application Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=lK8bcUFbQ7E:gmd5xbGUpVw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=lK8bcUFbQ7E:gmd5xbGUpVw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=lK8bcUFbQ7E:gmd5xbGUpVw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/lK8bcUFbQ7E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Gartner-Architecture-Summits</feedburner:origLink></entry>
  <entry>
    <title type="html">Using Technology to Fight Poverty: OLPC and Give 1 Get 1</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/8pe77df3Zhw/Using-Technology-to-Fight-Poverty-OLPC-and-Give-1-Get-1" />
    <id>http://www.userinexperience.com/Blog/Using-Technology-to-Fight-Poverty-OLPC-and-Give-1-Get-1</id>
    <updated>2009-05-19T15:42:10.06</updated>
    <published>2007-11-11T14:11:02</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In my &lt;a href="http://www.userinexperience.com/2007/11/07/using-technology-to-fight-poverty/"&gt;last post&lt;/a&gt;, I spoke briefly about posting from time to time on the topic of technology&amp;nbsp;that plays a role in&amp;nbsp;fighting poverty. I figured that a good place to start with would be the One Laptop Per Child (OLPC) program, probably the most notable example of such. There's not much I can say about this highly-publicized program that hasn't already been said or written elsewhere, so I'll just share a couple of resources I have come across recently.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For starters, Ivan Krstic, the Director of Security Architecture for OLPC gave a great talk on the technical ins and outs of the XO Laptop at Google back in April. You can check it out &lt;a href="http://www.youtube.com/watch?v=_bvSWtujxSE"&gt;here&lt;/a&gt;. It's an hour long, but worth a watch. (Thanks for &lt;a href="http://www.pdatasolutions.com/blog"&gt;Phil&lt;/a&gt; for pointing this out to me).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Of course, the biggest news in the XO Laptop department is the &lt;a href="http://www.xogiving.org/"&gt;Give 1 Get 1 Program&lt;/a&gt;, which officially begins at &lt;a href="http://www.olpcnews.com/sales_talk/g1g1/olpc_xo-1_give_one_get_one.html"&gt;6 AM Eastern tomorrow&lt;/a&gt;. (BTW, the OLPC news site is a great resource for exactly that)&amp;nbsp;The gist of the program is this: You pay $399 for two XO Laptops. You get one and the other is sent to a child in a developing country. T-Mobile has jumped into this promotion by throwing in a year of free T-Mobile Hot Spot access for the donor and EA is graciously donating the original Sim City to be included on all of the laptops.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Professionally, I am interested in Give 1 Get 1 because it seems to have potential to&amp;nbsp;enhance the 1-to-1 model of child sponsorship that Compassion has held to for over 50 years. Imagine the impact of a sponsor purchasing one of these laptops, then designating that the other be delivered as a gift to his or her child. I don't know if this is possible, probable or neither at this point, but I have contacted Ivan Krstic to&amp;nbsp;ask and I&amp;nbsp;am at least looking forward to hearing a bit more on OLPCs future plans for partnering with&amp;nbsp;international&amp;nbsp;non-profits&amp;nbsp;that have similar goals to OLPC.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you haven't seen or read much about the program yet, I would encourage you to&amp;nbsp;go check it out. The work that OLPC is doing is pretty amazing on several fronts: they are pushing the hardware and software envelope, all while providing affordable technology with the goal of improving education and peer learning. I, for one, am excited to continue to watch the program and its impact evolve.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:75c32dbd-8fbf-4085-8830-85516eb5f545" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/OLPC" rel="tag"&gt;OLPC&lt;/a&gt;, &lt;a href="http://technorati.com/tags/XO%20Laptop" rel="tag"&gt;XO Laptop&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Compassion" rel="tag"&gt;Compassion&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Technology" rel="tag"&gt;Technology&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Poverty" rel="tag"&gt;Poverty&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=8pe77df3Zhw:iMRrwhXymyk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=8pe77df3Zhw:iMRrwhXymyk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=8pe77df3Zhw:iMRrwhXymyk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/8pe77df3Zhw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Using-Technology-to-Fight-Poverty-OLPC-and-Give-1-Get-1</feedburner:origLink></entry>
  <entry>
    <title type="html">Using Technology to Fight Poverty</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/UW49jnepkWk/Using-Technology-to-Fight-Poverty" />
    <id>http://www.userinexperience.com/Blog/Using-Technology-to-Fight-Poverty</id>
    <updated>2009-05-19T15:42:09.86</updated>
    <published>2007-11-07T21:11:00</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I haven't blogged much about technology as it relates to eliminating global&amp;nbsp;poverty, mainly because it's hard for me to do so without talking about the organization for which I work.&amp;nbsp;As has been discussed in the past by &lt;a href="http://www.biske.com/blog/?p=259"&gt;Todd Biske&lt;/a&gt;, &lt;a href="http://duckdown.blogspot.com"&gt;James McGovern&lt;/a&gt; and others, corporate bloggers have to be careful to separate our own opinions and stances from those of our organization. Thus, it makes it tricky to talk much about our&amp;nbsp;employers in much detail.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;However, I think that putting a gag on myself regarding all issues related to global poverty is a bit extreme. Furthermore, I think that I'm in a reasonable position as an Enterprise Architect working for a non-profit that&amp;nbsp;serves nearly one million children in poverty around the world to try to bring to bear a technology and EA perspective that is shaped by using those tools in that fight against poverty.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I think it's a perspective that is needed, mainly because some people that I encounter in&amp;nbsp;the EA space&amp;nbsp;are surprised to hear that my organization has any kind of IT organization, much less one with an Enterprise Architecture group. I believe a common assumption is that when the main concern is the bottom line and profit, innovative and mature IT is acceptable, if not vital. The unspoken subtext, of course, is that non-profits have no business dealing with (too much) technology strategy and innovation because we do not deal in profit or competitive advantage (I actually think we do deal in competitive advantage, just not in the way you might think... more on that another day). However,&amp;nbsp;a robust and healthy IT organization that is fully aligned to its business is even more important in the non-profit world, simply because the &lt;strong&gt;stakes are higher&lt;/strong&gt;. Not in terms of profits and jobs, but in terms of lives and quality of life. And I honestly don't think that I am dramatizing the issue here, though please chime in if you think I am. I am quite passionate about the subject and might need a cooler head from time to time.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I&amp;nbsp;enjoy the fact that &lt;a href="http://duckdown.blogspot.com"&gt;James McGovern&lt;/a&gt; increasingly&amp;nbsp;uses his blog to raise our awareness about poverty and to influence others to give to worthy causes. My desire is to add a dimension to my own blog that takes a step beyond "knowing&lt;em&gt;"&lt;/em&gt; and "giving" to what we are "doing" with technology in the name of wiping out poverty around the globe. And not just in my organization, either. I think that there are many organizations and individuals out there doing amazing things with technology where the benefit is not a&amp;nbsp; personal bonus or a shareholder dividend; it is a&amp;nbsp;child&amp;nbsp;who can read and write, a mother who can start a business to feed her family, or&amp;nbsp;a saved life.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Thus, I plan to, from time to time, post articles, links and thoughts under the banner of &lt;strong&gt;"Using Technology to Fight Poverty."&lt;/strong&gt; I might even, on occasion, discuss the work my organization is doing because I am sure that there are those out there interested in where we are going with technology. Furthermore, we know that there are thousands of brilliant people involved in technology that already support our cause and would be interested in knowing what more they can do to help us.&amp;nbsp;However, please keep in mind that&amp;nbsp;anything I discuss around these topics is and always will be solely my opinion and may or may not reflect the opinion of my employer. That actually goes for anything on my blog, but it bears repeating.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So, keep and eye out for some more posts with this heading. This should be fun...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3f63f22b-fb71-461e-a02a-9f2bfe45b556" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Business%20Architecture" rel="tag"&gt;Business Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Technology" rel="tag"&gt;Technology&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Poverty" rel="tag"&gt;Poverty&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IT" rel="tag"&gt;IT&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=UW49jnepkWk:XSWD_iUJoSY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=UW49jnepkWk:XSWD_iUJoSY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=UW49jnepkWk:XSWD_iUJoSY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/UW49jnepkWk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Using-Technology-to-Fight-Poverty</feedburner:origLink></entry>
  <entry>
    <title type="html">Oslo - Microsoft's Strategy for Composite Applications</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/W701T2Dy0y0/Oslo-Microsofts-Strategy-for-Composite-Applications" />
    <id>http://www.userinexperience.com/Blog/Oslo-Microsofts-Strategy-for-Composite-Applications</id>
    <updated>2009-05-19T15:42:09.553</updated>
    <published>2007-11-05T19:11:18</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Last week, &lt;a href="http://www.ebpml.org/ebpml_radio.htm"&gt;Jean-Jacques Dubray&lt;/a&gt;&amp;nbsp;published an &lt;a href="http://www.infoq.com/news/2007/10/Olso-announcement"&gt;article&lt;/a&gt; on &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;&amp;nbsp;regarding&amp;nbsp;Microsoft's recent&amp;nbsp;&lt;a href="http://www.microsoft.com/soa/products/oslo.aspx"&gt;announcement&lt;/a&gt;&amp;nbsp;of Oslo, a strategy designed to "...take composite applications to the mainstream." Rather than revolving around a single product, Oslo sets strategic direction for Visual Studio, BizTalk, the .Net Framework, Microsoft System Center and a new product called BizTalk Services. On a side note: &lt;a href="http://www.ddj.com/blog/architectblog/archives/2007/10/microsoft_oslo.html"&gt;Arnon Rotem-Gal-Oz hopes&lt;/a&gt;&amp;nbsp;that this final project's association with BizTalk is more about branding than actual product similarity, a sentiment I share.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;After posting this article, Jean-Jacques sent me an email and asked me to share some of my thoughts on Olso for a follow-up article to be published at &lt;a href="http://www.infoq.com"&gt;InfoQ&lt;/a&gt;. I sent my thoughts along on Friday, but thought that I would post them here as well.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When we developed a long-term strategy for Composite Applications at my organization, it was obvious that while Microsoft technologies would have a major role to play in many areas of our future-state architecture, there were several vital pieces missing in the Microsoft stack that we would likely need to find elsewhere. I've always felt that we weren't alone in that sentiment, and the Oslo announcement suggests that Microsoft is also well aware of the gaps in their current offerings. While products like Dynamics CRM and MOSS 2007 offer composition scenarios which I regularly point to as examples of end-user and/ or business analyst composition, Microsoft has long been missing the technologies to unify these experiences under a common framework. Though missing in the products themselves, the Composite Applications vision is one that I have seen preached by Microsoft Architects and blogger's like &lt;a href="http://blogs.msdn.com/MikeWalker/"&gt;Mike Walker&lt;/a&gt; and others who seem to have a good grasp on the long-term potential of composite applications. The good news about the Oslo announcement is that those individuals are no&amp;nbsp; longer in the minority. With Oslo, I believe Microsoft has unveiled merely the beginning of a unification strategy that enables composite applications. I believe that this bodes well for clients and non-clients of Microsoft alike. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;That being said, There are two reasons why I'm a bit skeptical about the Oslo announcement: For starters, I believe that Microsoft's stated vision for Composite Applications is too narrow. While the Software + Services and SOA visions are needed, I believe that the end goal of any Composite Applications strategy should be to gradually enable composition up the stack toward the end-user. This is done first by providing a SOA which enables true service and process composition, then by extending those principles to developers of customer applications, business analysts and, ultimately, end users. Oslo speaks well to the former, but the latter is auspiciously missing. I actually don't believe that such a goal is absent in the halls of Microsoft, but I do believe that it hasn't permeated across the organization and thus, isn't given a place in the conversation yet. &lt;/p&gt; &lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The second reason I am hesitant to praise Microsoft for the Oslo vision is because their announcement is related to technologies which are anywhere from 1 year to 3 years or more away from release. Most of the tool updates are two releases away. Microsoft is correct when they say in their press releases that 21st century business is moving faster than IT can deliver, but that statement is true today. Organizations need solutions today, not announcements of solutions coming tomorrow. My organization, for example, cannot wait for a repository to manage models, metadata and services (one of the gaps we knew about in our strategy) when our ability to manage all three is already beyond our control. I honestly believe that Microsoft's vision for Oslo is a good one, but they are just now announcing plans to provide functionality that most organizations already know they need, which puts them at a disadvantage with those organizations. I can see a day in my company where many of the pieces in the Oslo stack make their way into our architecture, but today we need to keep moving. Of course, the good news is that when SOA and composite applications are done right, vendor lock-in is reduced and organizations can focus on delivering for the business today instead of waiting for the remaining puzzle pieces to fall in place tomorrow. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7281eef0-185b-428e-bcdd-5c95a6bfe8a1" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Oslo" rel="tag"&gt;Oslo&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BizTalk" rel="tag"&gt;BizTalk&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BizTalk%20Services" rel="tag"&gt;BizTalk Services&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Visual%20Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Microsoft%20SystemCenter" rel="tag"&gt;Microsoft SystemCenter&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Composite%20Applications" rel="tag"&gt;Composite Applications&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20+%20Services" rel="tag"&gt;Software + Services&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=W701T2Dy0y0:V-bM0tlRtDw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=W701T2Dy0y0:V-bM0tlRtDw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=W701T2Dy0y0:V-bM0tlRtDw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/W701T2Dy0y0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Oslo-Microsofts-Strategy-for-Composite-Applications</feedburner:origLink></entry>
  <entry>
    <title type="html">The Fifth Beatle of Composite Application Developers</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/uxGMcaOT7bc/The-Fifth-Beatle-of-Composite-Application-Developers" />
    <id>http://www.userinexperience.com/Blog/The-Fifth-Beatle-of-Composite-Application-Developers</id>
    <updated>2009-05-19T15:42:09.147</updated>
    <published>2007-11-05T16:11:45</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Back in September, I published a couple of excerpts from an internal paper I wrote on Composite Applications (you can read them &lt;a href="http://www.userinexperience.com/2007/08/26/the-need-for-application-composition/"&gt;here&lt;/a&gt;, &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;here&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.userinexperience.com/2007/09/06/composite-applications-visualized/"&gt;here&lt;/a&gt;). At the end of my &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;second post&lt;/a&gt;, (which I probably should have broken up into 2-3 posts at least) I discussed the four types of Application Composers. If you missed&amp;nbsp;that section,&amp;nbsp;(which would be proof that I should have broken them up) here's a recap:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1) &lt;a&gt;&lt;strong&gt;Business Service Developers&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;- These are IT developers focused on providing value-added common business services to all customer solutions teams. Their technical depth is high and a &lt;acronym title="Composite Application Framework"&gt;CAF&lt;/acronym&gt; targeted at these users would be similar to what is provided by SOA today.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;2) &lt;a&gt;&lt;strong&gt;Customer Solution Developers&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;- These are IT developers focused on creating customer-centric solutions by leveraging software infrastructure. Their technical depth is moderate to high and a &lt;acronym title="Composite Application Framework"&gt;CAF&lt;/acronym&gt; targeted at these users would need to abstract away service creation and assembly.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;3) &lt;a&gt;&lt;strong&gt;Business Analysts&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;&lt;strong&gt;- &lt;/strong&gt;These are customer consultants focused on helping customers determine which business needs are best met with technology. Their technical depth is moderate and a &lt;acronym title="Composite Application Framework"&gt;CAF&lt;/acronym&gt; targeted at these users would draw many features from current BPM platforms.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;4) &lt;a&gt;&lt;strong&gt;End Users&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;&lt;strong&gt;- &lt;/strong&gt;These are the users of the solutions created by customer solutions teams. Their technical depth is low and a &lt;acronym title="Composite Application Framework"&gt;CAF&lt;/acronym&gt; targeted at these users would need to abstract away nearly all of the technical aspects of application creation and should provide very intuitive context- and metadata-driven methods for application assembly and customization.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;While these still make sense to me, I think I completely missed number&amp;nbsp;five on this list. It's a bit of a wildcard, and it may not apply to every organization, but I think it will apply to more and more organization in the coming years. Here it is:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;5) &lt;a&gt;&lt;strong&gt;External Developers&lt;/strong&gt;&lt;/a&gt; - These are developers who reside outside of one's own IT organization, but who have development expertise that they wish to leverage to create value-added services that benefit your organization. Their primary interest is in consuming available organizational data and recombining this data with external data or services to create new composites not offered or envisioned&amp;nbsp;by the organization itself.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Now I think that the reason I missed this was because I was thinking internal only when laying out a strategy for Composite Applications in my organization. However, my fearless leader and I have been talking at length about creating a framework by which certain subsets of our information (the right information, of course) could be made available to anyone with the wherewithal&amp;nbsp;to create useful services that we never thought of. Thus, our framework for Composite Applications now has another persona to enable.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So what do you think? Is this a valid addition, or did I have it encompassed in another one of the four? Furthermore, is just one more enough? That fifth category encompasses a ton of people, so do I need another for the technically savvy end user who doesn't write code, but who screams at creating inventive &lt;a href="http://pipes.yahoo.com"&gt;Yahoo! Pipes&lt;/a&gt; applications. I suspect that #4 could represent this individual with a slight modification, but what do you think?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:c50f3368-8835-470e-b31c-d119efa545ce" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Composite%20Applications" rel="tag"&gt;Composite Applications&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=uxGMcaOT7bc:nm-7I0o7i8I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=uxGMcaOT7bc:nm-7I0o7i8I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=uxGMcaOT7bc:nm-7I0o7i8I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/uxGMcaOT7bc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Fifth-Beatle-of-Composite-Application-Developers</feedburner:origLink></entry>
  <entry>
    <title type="html">Using Windows Workflow Foundation to SMS-Enable MOSS</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/2fUCzIRutJY/Using-Windows-Workflow-Foundation-to-SMS-Enable-MOSS" />
    <id>http://www.userinexperience.com/Blog/Using-Windows-Workflow-Foundation-to-SMS-Enable-MOSS</id>
    <updated>2009-05-19T15:42:08.803</updated>
    <published>2007-10-31T16:10:09</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For the past couple of weeks, I have been doing an in-depth look at various mobile communication technologies (SMS, EMS, MMS, etc.) for the purposes of incorporating these technologies into our existing strategies. While the scenarios vary, most of the use-cases driving us to SMS et al. revolve around information delivery in areas where Internet connectivity is problematic, yet cell phones abound. It sounds counter-intuitive maybe, but in many regions (like Africa for example), it's far easier to put up a cell tower than it is to lay cable of any kind. Thus, mobile technology can be found in many places where land lines and Internet access cannot.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Being the agenda-pusher that&amp;nbsp;I am, I can't pass up an opportunity to integrate this technology study with work I have already done and am doing. Since my biggest interest right now is in the &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;Composite Applications&lt;/a&gt; space, I wanted to use one of the demos in this study to prove out (to some degree) the composition argument I have been making both &lt;a href="http://www.userinexperience.com/2007/08/26/the-need-for-application-composition/"&gt;in this blog&lt;/a&gt; and internally. Thus, I created a demo scenario for this study that sends a 1-way, application-originated SMS Text Message through an SMS Gateway (&lt;a href="http://www.clickatell.com/"&gt;Clickatell&lt;/a&gt; in this case) to a mobile subscriber when a particular field on a list in MOSS is changed. Now, this scenario isn't rocket science, nor is it earth-shattering. What it is, however, is me taking my own medicine. If I'm going to preach the &lt;a href="http://en.wikipedia.org/wiki/Composite_applications"&gt;Composite Applications&lt;/a&gt; gospel, I'd better try it on for size myself. Here's how I implemented the scenario: &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I started by creating a stand-alone custom activity&amp;nbsp;in Windows Workflow Foundation. The code, with some key details removed, is included below. Note: In order use this yourself, you'll need access to an SMS Gateway (like &lt;a href="http://www.clickatell.com/"&gt;Clickatell&lt;/a&gt;, which is used here) and access to their HTTP API, if they have one. Not the only way to send a text message, I know, but &lt;a href="http://en.wikipedia.org/wiki/SS7"&gt;SS7&lt;/a&gt; Gateways can provide guaranteed message delivery to the subscriber.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;using System;
&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.IO;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Net;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Text;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Workflow.ComponentModel;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Workflow.ComponentModel.Design;

&lt;span style="color: rgb(0,0,255)"&gt;namespace&lt;/span&gt; MyCompany.Workflow.Messaging.Activities
{
    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt; : &lt;span style="color: rgb(43,145,175)"&gt;Activity
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;DependencyProperty&lt;/span&gt; NumberProperty = 
            &lt;span style="color: rgb(43,145,175)"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color: rgb(163,21,21)"&gt;"Number"&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;typeof&lt;/span&gt;(System.&lt;span style="color: rgb(43,145,175)"&gt;String&lt;/span&gt;), 
            &lt;span style="color: rgb(0,0,255)"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt;));
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;DependencyProperty&lt;/span&gt; MessageProperty = 
            &lt;span style="color: rgb(43,145,175)"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color: rgb(163,21,21)"&gt;"Message"&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;typeof&lt;/span&gt;(System.&lt;span style="color: rgb(43,145,175)"&gt;String&lt;/span&gt;), 
            &lt;span style="color: rgb(0,0,255)"&gt;typeof&lt;/span&gt;(&lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt;));
        
        [&lt;span style="color: rgb(43,145,175)"&gt;DesignerSerializationVisibilityAttribute
&lt;/span&gt;            (&lt;span style="color: rgb(43,145,175)"&gt;DesignerSerializationVisibility&lt;/span&gt;.Visible)]
        [&lt;span style="color: rgb(43,145,175)"&gt;BrowsableAttribute&lt;/span&gt;(&lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;)]
        [&lt;span style="color: rgb(43,145,175)"&gt;DescriptionAttribute&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"Destination number of SMS message"&lt;/span&gt;)]
        [&lt;span style="color: rgb(43,145,175)"&gt;CategoryAttribute&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"SendSMSActivity Number Property"&lt;/span&gt;)]
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; Number
        {
            &lt;span style="color: rgb(0,0,255)"&gt;get
&lt;/span&gt;            {
                &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; ((&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;)(&lt;span style="color: rgb(0,0,255)"&gt;base&lt;/span&gt;.GetValue(&lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt;.NumberProperty)));
            }
            &lt;span style="color: rgb(0,0,255)"&gt;set
&lt;/span&gt;            {
                &lt;span style="color: rgb(0,0,255)"&gt;base&lt;/span&gt;.SetValue(&lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt;.NumberProperty, &lt;span style="color: rgb(0,0,255)"&gt;value&lt;/span&gt;);
            }
        }

        [&lt;span style="color: rgb(43,145,175)"&gt;DesignerSerializationVisibilityAttribute
&lt;/span&gt;            (&lt;span style="color: rgb(43,145,175)"&gt;DesignerSerializationVisibility&lt;/span&gt;.Visible)]
        [&lt;span style="color: rgb(43,145,175)"&gt;BrowsableAttribute&lt;/span&gt;(&lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;)]
        [&lt;span style="color: rgb(43,145,175)"&gt;DescriptionAttribute&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"Text of SMS message"&lt;/span&gt;)]
        [&lt;span style="color: rgb(43,145,175)"&gt;CategoryAttribute&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"SendSMSActivity Message Property"&lt;/span&gt;)]
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; Message
        {
            &lt;span style="color: rgb(0,0,255)"&gt;get
&lt;/span&gt;            {
                &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; ((&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;)(&lt;span style="color: rgb(0,0,255)"&gt;base&lt;/span&gt;.GetValue(&lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt;.MessageProperty)));
            }
            &lt;span style="color: rgb(0,0,255)"&gt;set
&lt;/span&gt;            {
                &lt;span style="color: rgb(0,0,255)"&gt;base&lt;/span&gt;.SetValue(&lt;span style="color: rgb(43,145,175)"&gt;SendSMSActivity&lt;/span&gt;.MessageProperty, &lt;span style="color: rgb(0,0,255)"&gt;value&lt;/span&gt;);
            }
        }
        
        &lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;override&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ActivityExecutionStatus&lt;/span&gt; 
            Execute(&lt;span style="color: rgb(43,145,175)"&gt;ActivityExecutionContext&lt;/span&gt; context)
        {
            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; response;
            
            &lt;span style="color: rgb(0,0,255)"&gt;try
&lt;/span&gt;            {
                &lt;span style="color: rgb(0,128,0)"&gt;// Send the SMS Message
&lt;/span&gt;                response = SendSMS(Number, Message);
            }
            &lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;Exception&lt;/span&gt; e)
            {
                response = e.Message;
            }

            &lt;span style="color: rgb(0,128,0)"&gt;// Raise the PageFinished event back to the host
&lt;/span&gt;            messageSentEvent(&lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;MessageSentEventArgs&lt;/span&gt;(response));
                     
            &lt;span style="color: rgb(0,128,0)"&gt;// Notify the runtime that the activity has finished
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ActivityExecutionStatus&lt;/span&gt;.Closed;
        }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;delegate&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;MessageSentEventHandler&lt;/span&gt;(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, 
            &lt;span style="color: rgb(43,145,175)"&gt;MessageSentEventArgs&lt;/span&gt; e);

        &lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;event&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;MessageSentEventHandler&lt;/span&gt; messageSentEvent;
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;event&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;MessageSentEventHandler&lt;/span&gt; MessageSent
        {
            &lt;span style="color: rgb(0,0,255)"&gt;add
&lt;/span&gt;            {
                messageSentEvent += &lt;span style="color: rgb(0,0,255)"&gt;value&lt;/span&gt;;
            }
            &lt;span style="color: rgb(0,0,255)"&gt;remove
&lt;/span&gt;            {
                messageSentEvent -= &lt;span style="color: rgb(0,0,255)"&gt;value&lt;/span&gt;;
            }
        }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; SendSMS(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; number, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; text)
        {
            &lt;span style="color: rgb(43,145,175)"&gt;WebClient&lt;/span&gt; apiRequest = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;WebClient&lt;/span&gt;();
            apiRequest.Credentials = &lt;span style="color: rgb(43,145,175)"&gt;CredentialCache&lt;/span&gt;.DefaultCredentials;

            &lt;span style="color: rgb(0,128,0)"&gt;//Add a user agent header in case the requested URI contains a query
&lt;/span&gt;            apiRequest.Headers.Add(&lt;span style="color: rgb(163,21,21)"&gt;"user-agent"&lt;/span&gt;, 
            &lt;span style="color: rgb(163,21,21)"&gt;"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 2.0.50727;)"&lt;/span&gt;);

            &lt;span style="color: rgb(0,128,0)"&gt;//Add the SMS details to the apiRequest object
&lt;/span&gt;            apiRequest.QueryString.Add(&lt;span style="color: rgb(163,21,21)"&gt;"user"&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"xxxxx"&lt;/span&gt;);
            apiRequest.QueryString.Add(&lt;span style="color: rgb(163,21,21)"&gt;"password"&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"xxxxx"&lt;/span&gt;);
            apiRequest.QueryString.Add(&lt;span style="color: rgb(163,21,21)"&gt;"api_id"&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"xxxxx"&lt;/span&gt;);
            apiRequest.QueryString.Add(&lt;span style="color: rgb(163,21,21)"&gt;"to"&lt;/span&gt;, number);
            apiRequest.QueryString.Add(&lt;span style="color: rgb(163,21,21)"&gt;"text"&lt;/span&gt;, text);

            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; baseURI = &lt;span style="color: rgb(163,21,21)"&gt;"http://api.clickatell.com/http/sendmsg"&lt;/span&gt;;

            &lt;span style="color: rgb(43,145,175)"&gt;Stream&lt;/span&gt; responseStream = apiRequest.OpenRead(baseURI);
            &lt;span style="color: rgb(43,145,175)"&gt;StreamReader&lt;/span&gt; reader = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;StreamReader&lt;/span&gt;(responseStream);
            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; responseCode = reader.ReadToEnd();

            &lt;span style="color: rgb(0,128,0)"&gt;//Clean up in-memory objects
&lt;/span&gt;            reader.Close();
            responseStream.Close();

            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; (responseCode);
        }
    }

    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;MessageSentEventArgs
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; response;
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; Response
        {
            &lt;span style="color: rgb(0,0,255)"&gt;get&lt;/span&gt; { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; response; }
        }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; MessageSentEventArgs(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; response)
        {
            &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.response = response;
        }
    }
}&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Like I said, nothing earth-shattering. However (and I won't go into the details of WF here as there are plenty of good resources that do that) the end-result is a stand-alone Workflow Foundation Activity which encapsulates the business logic for distributing an SMS Text Message via&amp;nbsp;our Gateway provider and which can be hosted in any application that provides the WF runtime. This Activity can easily be dropped into a container Sequential or State-Machine Workflow project (as I did when testing this activity on my machine), or it can be deployed to MOSS as a stand-alone activity which can be included in a Workflow built&amp;nbsp;using SharePoint Designer. Two scenarios with different composers, both using&amp;nbsp;the same asset. That's the vision of &lt;a href="http://en.wikipedia.org/wiki/Composite_applications"&gt;Composite Applications&lt;/a&gt;. (As an aside, with the recent &lt;a href="http://www.infoq.com/news/2007/10/Olso-announcement"&gt;Oslo announcement&lt;/a&gt;, I imagine that we're not far from a day where that same activity could be also be reused in BizTalk and Microsoft CRM, among others).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So what do those scenarios look like?&amp;nbsp;For the developer adding a custom activity to a WF Workflow, it's a simple matter of dragging the activity from the Toolbox to the designer, then binding to the DependencyProperties (Number and Message in this case) and creating an event-handler to receive the event raised by the activity (in this case, sendSMSActivity_MessageSent). See the image below for an example:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/UsingWindowsWorkflowFoundationtoSMSEnabl_D915/CustomWFActivityInVS.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="309" alt="CustomWFActivityInVS" src="http://www.userinexperience.com/wp-images/post-images/UsingWindowsWorkflowFoundationtoSMSEnabl_D915/CustomWFActivityInVS_thumb.png" width="600" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For an individual slinging&amp;nbsp;SharePoint Designer, the experience is different, but also quite powerful. However, The first step I must take as an activity developer is to deploy said activity to the MOSS server. This requires deploying the Activity assembly to the GAC on the MOSS server, adding said assembly as a safe control in the web.config file, and adding the Activity to the WSS.actions file (or a new .actions file in the same directory, which is probably a better idea), which SharePoint designer uses to load up the list of available workflow actions. All of this can be done via a feature in SharePoint (I know that the first two can and I &lt;em&gt;think &lt;/em&gt;that the last can, so feel free to comment if I am incorrect). Here is the code for the WSS.ACTIONS file (Added in the &amp;lt;Actions&amp;gt; section):&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;&amp;lt;Action&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Name&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Send an SMS Text Message&lt;/span&gt;"
&lt;span style="color: rgb(255,0,0)"&gt;  ClassName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;MyCompany.Workflow.Messaging.Activities.SendSMSActivity&lt;/span&gt;"
&lt;span style="color: rgb(255,0,0)"&gt;  Assembly&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;MyCompany.Workflow.Messaging.Activities, Version=1.0.0.0, 
    Culture=neutral, PublicKeyToken=fe2315b70tbc147c&lt;/span&gt;"
&lt;span style="color: rgb(255,0,0)"&gt;  AppliesTo&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;all&lt;/span&gt;"
&lt;span style="color: rgb(255,0,0)"&gt;  Category&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Messaging Actions&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RuleDesigner&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Sentence&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Send %1 to number %2&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;FieldBind&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Field&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Message&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;this message&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;DesignerType&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;TextBox&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;1&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;FieldBind&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Field&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Number&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;this number&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;DesignerType&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;TextBox&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;2&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RuleDesigner&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Parameters&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Parameter&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Name&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Number&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;System.String, mscorlib&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Direction&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;In&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; /&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Parameter&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Name&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Message&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;System.String, mscorlib&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;Direction&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;In&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; /&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Parameters&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Action&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;Once that entry has been added, the activity is ready to be included in an SP Designer workflow. In this example, I bound the workflow to a custom list created in a demo site, set a condition to check the value of a key field, then added the "Send SMS Message" activity and configured its inputs. In this case, the message is constructed from existing information in the list and the destination number is determined by looking up the mobile phone of a user in another list. An image of the Workflow Designer Wizard in SP Designer can be seen below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/UsingWindowsWorkflowFoundationtoSMSEnabl_D915/WFActivityInSharePointDesigner.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="392" alt="WFActivityInSharePointDesigner" src="http://www.userinexperience.com/wp-images/post-images/UsingWindowsWorkflowFoundationtoSMSEnabl_D915/WFActivityInSharePointDesigner_thumb.png" width="600" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If the workflow validates, we're in business and the activity will run each time a list item is added or updated and the field in question isn't blank. Here is the Workflows application page, as seen from MOSS itself:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/UsingWindowsWorkflowFoundationtoSMSEnabl_D915/WFPageInMOSS.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="292" alt="WFPageInMOSS" src="http://www.userinexperience.com/wp-images/post-images/UsingWindowsWorkflowFoundationtoSMSEnabl_D915/WFPageInMOSS_thumb.png" width="600" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In addition, that activity is now available to include in any workflow where sending an SMS notification is a requirement. You be the judge if this is a blessing or a curse... In either case my hope is that this post illustrates the power of composition. And MOSS is just an example in this case, not the end-all for composition by any means. What important in any composition scenario is a platform and technologies that provide the ability to create reusable assets and then&amp;nbsp;reuse those&amp;nbsp;assets across tiers and containers.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:db873261-dd7f-4c25-9760-763335899d9d" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows%20Workflow%20Foundation" rel="tag"&gt;Windows Workflow Foundation&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MOSS%202007" rel="tag"&gt;MOSS 2007&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MOSS" rel="tag"&gt;MOSS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SharePoint%20Designer" rel="tag"&gt;SharePoint Designer&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Composite%20Applications" rel="tag"&gt;Composite Applications&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2fUCzIRutJY:uL3q0Dpce8Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2fUCzIRutJY:uL3q0Dpce8Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=2fUCzIRutJY:uL3q0Dpce8Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/2fUCzIRutJY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Using-Windows-Workflow-Foundation-to-SMS-Enable-MOSS</feedburner:origLink></entry>
  <entry>
    <title type="html">How does IT Move?</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/b-fJmzpAtxQ/How-does-IT-Move" />
    <id>http://www.userinexperience.com/Blog/How-does-IT-Move</id>
    <updated>2009-05-19T15:42:08.613</updated>
    <published>2007-10-29T13:10:39</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I've worked for organizations where IT moves too fast (and thus wastes money and alienates customers) and others where IT moves too slow (and thus the customers go around IT as much as possible). I've also worked in places where IT does both, often in the same day.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This week, I have the pleasure of sitting in all-day meetings related to a series of IT infrastructure projects we are pursuing. The folks in charge of coordinating this effort brought in a vendor to lead&amp;nbsp;a brief engagement designed to help IT project teams&amp;nbsp;and key business stakeholders better understand how to proceed with these key projects. This is a noble goal, and it's one I support. However,&amp;nbsp;I fear that&amp;nbsp;the engagement was put together too quickly and with almost no deliberation. It's just my opinion, of course, and I'm sure that this engagement will&amp;nbsp;have some value.&amp;nbsp;I, for one, want to make sure that we obtain that value even though the process has been a bit hasty. But will it have equal value to the dollar amount on the contract? That I don't know.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;To be fair, I'm certain that we're moving quickly in this effort because we've been far too slow with similar efforts in the past. But, it seems as though the pendulum has swung the other direction. So here is the underlying question: How does IT get things done, without moving too fast or too slow? Here are a couple of my thoughts off the top of my head:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1) Empower people in the right places - IT doesn't need to poke it's nose into all areas of the business just because something smells like technology. The question is, what information technologies do we need to be involved in?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;2) Respect the Business and Keep them Informed - IT managers like to talk about getting users in the room, then they go and demand they be present without respect for the ever-crushing workload which they have to deal with. If you need to move fast, and you need your customer, it's your responsibility to move mountains for them, not ask that they do so for you.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;3) Remember who you are working for - An extension to number 2. Sometimes is looks like IT is the tail wagging the organizational dog, as if our&amp;nbsp;business units&amp;nbsp;exist to use our technologies. If IT feels the need to get things done fast, then I would imagine that there is a good business reason for doing so (there had better be). If that's the case, its our responsibility to help the business understand how moving fast is our best bet for meeting that need. When we help the business understand that, they get in our corner and help us move as a partner, not someone we feel the need to drag along.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;What else am I missing here? Quite a bit, I'm sure, so additional thoughts would be appreciated.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:2247160d-a44a-42d1-9aad-3fc1b49c7bf1" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Business%20Architecture" rel="tag"&gt;Business Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=b-fJmzpAtxQ:iAKIBSWtSE8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=b-fJmzpAtxQ:iAKIBSWtSE8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=b-fJmzpAtxQ:iAKIBSWtSE8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/b-fJmzpAtxQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/How-does-IT-Move</feedburner:origLink></entry>
  <entry>
    <title type="html">Amazon S3: Now with SLA!</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/TGBG7Fq6h8I/Amazon-S3-Now-with-SLA" />
    <id>http://www.userinexperience.com/Blog/Amazon-S3-Now-with-SLA</id>
    <updated>2009-05-19T15:42:08.413</updated>
    <published>2007-10-11T13:10:17</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Saw &lt;a href="http://radar.oreilly.com/archives/2007/10/amazon_s3_gets.html"&gt;this post&lt;/a&gt; from &lt;a href="http://radar.oreilly.com/brady/"&gt;Brady Forest&lt;/a&gt; on &lt;a href="http://radar.oreilly.com/"&gt;O'Reilly Radar&lt;/a&gt;, which points to the official announcement on the &lt;a href="http://aws.typepad.com/aws/2007/10/amazon-s3-at-yo.html"&gt;AWS blog&lt;/a&gt;. This may not mean as much to many of you who have been using &lt;a href="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/002-4364785-8624862?ie=UTF8&amp;amp;node=16427261&amp;amp;no=342430011&amp;amp;me=A36L942TSJ2AJA"&gt;S3&lt;/a&gt; for a while now, but it's big news for a guy like me because I know better than to bring technologies like &lt;a href="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/002-4364785-8624862?ie=UTF8&amp;amp;node=16427261&amp;amp;no=342430011&amp;amp;me=A36L942TSJ2AJA"&gt;S3&lt;/a&gt;, &lt;a href="http://www.amazon.com/b/ref=sc_fe_l_2/002-4364785-8624862?ie=UTF8&amp;amp;node=201590011&amp;amp;no=342430011&amp;amp;me=A36L942TSJ2AJA"&gt;EC2&lt;/a&gt; and &lt;a href="http://www.amazon.com/Mechanical-Turk-AWS-home-page/b/ref=sc_fe_l_2/002-4364785-8624862?ie=UTF8&amp;amp;node=15879911&amp;amp;no=342430011&amp;amp;me=A36L942TSJ2AJA"&gt;Mechanical Turk&lt;/a&gt;&amp;nbsp;into any serious internal conversation unless I can say "yes" to that SLA question. Looks like AWS is getting ready for prime time. And why not? Most of us have been expecting this for a while now.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I will echo &lt;a href="http://radar.oreilly.com/archives/2007/06/amzon_ec2_and_s.html"&gt;Arthur's&lt;/a&gt; request for more to the SLA, specifically for&amp;nbsp;stats on uptime and availability. I think that &lt;em&gt;all services&lt;/em&gt; should provide information like this to be as clear as possible in letting you know what you are getting by consuming said service (and our internal guidelines say as much), but this kind of information&amp;nbsp;is especially vital with services in the cloud. I'm confident that they'll get there, but in the meantime, I'll echo that feature request.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;On another note, why the heck is O'Reilly charging $149 for a glorified whitepaper on &lt;a href="http://radar.oreilly.com/research/reports/facebook.html"&gt;developing applications for Facebook&lt;/a&gt;? I use Facebook. I like Facebook. I think there is something to be said about developing applications for it... in certain situations. But could we just take a moment to breathe here before they hype train carries us all away?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:9983a4fe-5a87-4612-91d8-e0177b71b230" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Amazon" rel="tag"&gt;Amazon&lt;/a&gt;, &lt;a href="http://technorati.com/tags/S3" rel="tag"&gt;S3&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EC2" rel="tag"&gt;EC2&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Mechanical%20Turk" rel="tag"&gt;Mechanical Turk&lt;/a&gt;, &lt;a href="http://technorati.com/tags/O'Reilly" rel="tag"&gt;O'Reilly&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Facebook" rel="tag"&gt;Facebook&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=TGBG7Fq6h8I:Wko9N93A6eA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=TGBG7Fq6h8I:Wko9N93A6eA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=TGBG7Fq6h8I:Wko9N93A6eA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/TGBG7Fq6h8I" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Amazon-S3-Now-with-SLA</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-10-06</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/cA2cKerwC_E/Links-for-2007-10-06" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-10-06</id>
    <updated>2009-05-19T15:42:08.013</updated>
    <published>2007-10-06T10:10:25</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div&gt;&lt;a href="http://ironick.typepad.com/ironick/2007/09/soa-sometimes-i.html"&gt;SOA: Sometimes it IS about the technology&lt;/a&gt; - Both Nick's post and Andrew McAfee's &lt;a href="http://blog.hbs.edu/faculty/amcafee/index.php/faculty_amcafee_v3/its_not_not_about_the_technology/"&gt;original&lt;/a&gt;&amp;nbsp;are worth a read and right on. I think the pearl of wisdom is for all of us to stop advocating one extreme or the other ("x is about technology" vs "x is not") &lt;em&gt;all the time&lt;/em&gt; and start using wisdom, common sense and a willingness to either talk about technology (when the situation calls for it, as Nick describes when one must know which "... goals are realistically achievable given current technology trends") or leave technology out of the discussion (when the situation calls for us to convey to the business that we truly get their business need and aren't simply looking for a way to implement the cool new technology).&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;&lt;a href="http://www.davidchappell.com/blog/2007/09/why-microsoft-should-not-support-sca.html"&gt;Why Microsoft Should Not Support SCA&lt;/a&gt;&amp;nbsp;- Bottom line as I read this: Microsoft doesn't benefit and neither does anyone&amp;nbsp;else. It makes sense, but David certainly makes SCA seem like&amp;nbsp;less of a "big deal" standard than others want us to believe.&amp;nbsp;Not sure what I think yet, but&amp;nbsp; I would highly recommend David's &lt;a href="http://www.davidchappell.com/articles/Introducing_SCA.pdf"&gt;Introducing SCA&lt;/a&gt; article. It's a good read and provides a good overview of some big technology movements outside of the Microsoft world.&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://simonguest.com/blogs/smguest/archive/2007/09/11/Green-Datacenter-Initiative.aspx"&gt;Green Datacenter Initiative&lt;/a&gt;&amp;nbsp;- The idea of "Green IT" is becoming a bigger and bigger deal as more organizations realize that Global Warming is not a joke (it never was) and that the measure corporate ethics and responsibility will increasingly include the impact of their &lt;em&gt;IT organization &lt;/em&gt;on the environment. As Simon says, the measurement technology isn't there yet, but why not start grassroots with your own PC. Downloaded the &lt;a href="http://www.localcooling.com/"&gt;LocalCooling&lt;/a&gt; app Simon links to and get an idea of how little things we all do as individuals &lt;em&gt;does&lt;/em&gt; have an impact.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:99299a48-66bc-4d5b-a59e-ed33579b3f36" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SCA" rel="tag"&gt;SCA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Green%20IT" rel="tag"&gt;Green IT&lt;/a&gt;, &lt;a href="http://technorati.com/tags/LocalCooling" rel="tag"&gt;LocalCooling&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=cA2cKerwC_E:H49V5P305PY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=cA2cKerwC_E:H49V5P305PY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=cA2cKerwC_E:H49V5P305PY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/cA2cKerwC_E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-10-06</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-10-04</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/uQ5O1zgiVoU/Links-for-2007-10-04" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-10-04</id>
    <updated>2009-05-19T15:42:07.7</updated>
    <published>2007-10-04T09:10:05</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx"&gt;Releasing the Source Code for the .NET Framework Libraries&lt;/a&gt; - Kudos Microsoft. No question that this is a good move.&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;&lt;a href="http://www.gapminder.org/video/talks/ted-2007---the-seemingly-impossible-is-possible.html"&gt;TED 2007 - The seemingly impossible is possible&lt;/a&gt;&amp;nbsp;(Video) - Hans Roslings uses some of the best information visualization I have ever seen (Google must agree, because they bought his &lt;a href="http://tools.google.com/gapminder/"&gt;Gapminder&lt;/a&gt; tool) to deliver a great 20 minute presentation about how our cut and dry segmentation of the world into developed and developing countries is wrong and that we have the means and ability to eliminate poverty in our lifetimes. It's well worth 20 minutes.&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://darmano.typepad.com/logic_emotion/2007/09/is-twitter-usel.html"&gt;Is Twitter Useless, Asinine, or The Crocs of The Web?&lt;/a&gt;&amp;nbsp;I love the comparison of Twitter to Crocs and think it's true: There are those that find Twitter pointless (my wife) and those that can't understand why people can't see the simple elegance of power of it (myself). But more than the ability for me to know where my friends are going for dinner, Twitter is a paradigm for&amp;nbsp;multi-channel information sharing and that&amp;nbsp;can be quite powerful&amp;nbsp;for organizations&amp;nbsp;as well as individuals.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://www.presentationzen.com/presentationzen/2007/09/steve-bill-redu.html"&gt;Learning from Bill Gates &amp;amp; Steve Jobs&lt;/a&gt;&amp;nbsp;- Steve Jobs' amazing presentation skills isn't news to anyone, but I like this post largely because of the side-by-side depiction of a Bill Gates slide deck and a Steve Jobs slide deck. It makes a strong point...&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:1f30a5a5-9cc2-4ba5-9371-1d351527a776" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ScottGu" rel="tag"&gt;ScottGu&lt;/a&gt;, &lt;a href="http://technorati.com/tags/TED" rel="tag"&gt;TED&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Gapminder" rel="tag"&gt;Gapminder&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Google%20Gears" rel="tag"&gt;Google Gears&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Twitter" rel="tag"&gt;Twitter&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Presentation%20Zen" rel="tag"&gt;Presentation Zen&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Bill%20Gates" rel="tag"&gt;Bill Gates&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Steve%20Jobs" rel="tag"&gt;Steve Jobs&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=uQ5O1zgiVoU:xomSTSjGXxI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=uQ5O1zgiVoU:xomSTSjGXxI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=uQ5O1zgiVoU:xomSTSjGXxI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/uQ5O1zgiVoU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-10-04</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-10-03</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/yzfKam-oY9M/Links-for-2007-10-03" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-10-03</id>
    <updated>2009-05-19T15:42:07.193</updated>
    <published>2007-10-03T11:10:38</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div&gt;&lt;a href="http://arstechnica.com/news.ars/post/20071001-office-live-workspace-a-free-250mb-sharepoint-lite-for-everyone.html"&gt;Office Live Workspace revealed: a free 250MB "SharePoint Lite" for everyone&lt;/a&gt;&amp;nbsp;- This isn't the Google killer since it's not an "online" version of the classic office applications. What it is is the slow-moving-and-customer-ignorant-IT-organization killer, which is a great thing as far as I'm concerned. &lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/09/13/sharepoint-is-not-a-good-development-platform.aspx"&gt;Sharepoint is not a good development platform&lt;/a&gt;&amp;nbsp;/ &lt;a href="http://andrewconnell.com/blog/archive/2007/09/24/6116.aspx"&gt;SharePoint is a good development platform for applications&lt;/a&gt; / &lt;a href="http://blogs.msdn.com/joelo/archive/2007/09/24/sharepoint-is-an-awesome-dev-app-platform.aspx"&gt;SharePoint is an Awesome Dev App Platform&lt;/a&gt;&amp;nbsp;- One of our SA's said early on in his experience with MOSS 2007 application development that "MOSS takes the rapid out of Rapid Application Development," which I think is true in the OOB development experience. Since then, however,&amp;nbsp;we have been able to experiment with varying ways to develop apps in MOSS and have started to see areas where we can create value and assist in speed by abstracting out some of the complexity. That being said, Visual Studio needs to catch up and help make that development experience richer. As &lt;a href="http://andrewconnell.com/blog"&gt;Andrew Connell&lt;/a&gt;&amp;nbsp;&lt;a href="http://andrewconnell.com/blog/archive/2007/09/24/6116.aspx"&gt;said&lt;/a&gt;, that's a knock on tooling and the development environment, not the platform itself.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://www.codeplex.com/FacetedSearch"&gt;MOSS Faceted Search&lt;/a&gt;&amp;nbsp;(CodePlex)&amp;nbsp;- If you're using or plan to use MOSS and you want your users to get the most value out of Search, I would recommend taking a serious look at faceted search.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;All MOSS Links today... some days are just like that I suppose. :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:7629e631-c3e1-4ee1-90b7-65846b53c462" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MOSS%202007" rel="tag"&gt;MOSS 2007&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Search" rel="tag"&gt;Search&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/ECM" rel="tag"&gt;ECM&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Portal" rel="tag"&gt;Portal&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SharePoint" rel="tag"&gt;SharePoint&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=yzfKam-oY9M:b5wOpSndLoQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=yzfKam-oY9M:b5wOpSndLoQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=yzfKam-oY9M:b5wOpSndLoQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/yzfKam-oY9M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-10-03</feedburner:origLink></entry>
  <entry>
    <title type="html">Composite Applications Visualized</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/QNAxfqiBRJ4/Composite-Applications-Visualized" />
    <id>http://www.userinexperience.com/Blog/Composite-Applications-Visualized</id>
    <updated>2009-05-19T15:42:07.007</updated>
    <published>2007-09-06T08:09:30</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;I published v1 of my Composite Applications Framework document last Thursday and am pretty pleased with the result. As with all things, it will evolve and improve over time, but I think it was a decent first salvo. I am indebted to &lt;a href="http://blogs.msdn.com/mikewalker/archive/2007/08/26/justifying-the-need-for-composite-applications.aspx"&gt;Mike Walker&lt;/a&gt; and &lt;a href="http://www.biske.com/blog/?p=259"&gt;Todd Biske&lt;/a&gt; for their input. My favorite part about blogging is being able to have access to and input from such brilliant people.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As I worked back through the draft of the document, I realized that some key visuals were missing in relation to the various composition terms I wrote about in &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;my last post&lt;/a&gt;, as well as a&amp;nbsp;view of the CAF architecture. I don't have time to go into these in detail, but I'll post them here. Feel free to refer back to my previous &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;two&lt;/a&gt; &lt;a href="http://www.userinexperience.com/2007/08/26/the-need-for-application-composition/"&gt;posts&lt;/a&gt; for more context. As always, I'd love any feedback that anyone is willing to throw my way.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This first image was designed to depict the relationship between some of the composition terms I used in &lt;a href="http://www.userinexperience.com/2007/08/29/composition-assembling-assets-into-applications/"&gt;my last post&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="269" alt="image" src="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_thumb.png" width="524" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The second image expands on the first, but includes example tiers, containers and assets. Many of these examples are specific to the Microsoft universe, specifically MOSS 2007, while others are generic.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_6.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="693" alt="image" src="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_thumb_6.png" width="513" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The final image depicts many of the technologies&amp;nbsp;that I believe play a key role in a CAF. This is not meant to be an end-all-be-all list, or even the best depiction available. Just food for thought.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_3.png" atomicselection="true"&gt;&lt;/a&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_5.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="478" alt="image" src="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_thumb_5.png" width="590" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/CompositeApplicationsVisualized_7069/image_3.png" atomicselection="true"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So there you have it.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;On a personal note, I'm off for a two week computer-less vacation this afternoon, so&amp;nbsp;the blog will&amp;nbsp;be silent during that time. I'll be back in the swing of things on September 22nd and hopefully I won't be so buried in the blogs I read that I'll have a moment to write a thing or two that weekend.&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=QNAxfqiBRJ4:X5qHTEupizE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=QNAxfqiBRJ4:X5qHTEupizE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=QNAxfqiBRJ4:X5qHTEupizE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/QNAxfqiBRJ4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Composite-Applications-Visualized</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-09-06</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/nXOKh1CQplw/Links-for-2007-09-06" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-09-06</id>
    <updated>2009-05-19T15:42:06.813</updated>
    <published>2007-09-06T06:09:34</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;a href="http://www.sanbeiji.com/archives/806"&gt;The Importance of Mentor&lt;/a&gt;&amp;nbsp;- Joe Says: "I say if you want to do something with your life and are willing to make a life-changing and risky change in your life to pursue that goal, then stop being such a chicken and go for it." Agreed. Great post Joe.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://blogs.ittoolbox.com/eai/madgreek/archives/soa-and-the-roi-18497"&gt;SOA and the ROI&lt;/a&gt; - If you sell SOA without ties to MDM, Portals or Process Improvement initiatives, you're just selling a technology with the ability for reuse, but no framework to foster reuse.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://www.visual-literacy.org/periodic_table/periodic_table.html"&gt;Periodic Table of Visualization Methods&lt;/a&gt; - Just about every conceivable way to visualize information is on this table, with examples. A great resource to keep around for a visual learner such as I.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:592e526f-13c1-4c16-9ec4-21ab5d22f52d" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Mentor" rel="tag"&gt;Mentor&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Information%20Visualization" rel="tag"&gt;Information Visualization&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=nXOKh1CQplw:pRCU4LlIM1M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=nXOKh1CQplw:pRCU4LlIM1M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=nXOKh1CQplw:pRCU4LlIM1M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/nXOKh1CQplw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-09-06</feedburner:origLink></entry>
  <entry>
    <title type="html">Composition: Assembling Assets into Applications</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/1qAQaQ24x9s/composition-assembling-assets-into-applications" />
    <id>http://www.userinexperience.com/Blog/composition-assembling-assets-into-applications</id>
    <updated>2009-05-19T15:42:06.357</updated>
    <published>2007-08-29T15:08:44</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In my &lt;a href="http://www.userinexperience.com/2007/08/26/the-need-for-application-composition/"&gt;last post&lt;/a&gt;, I posted an except from a strategy document I am working on around the creation of a Composite Application Framework (CAF). The section I posted dealt specifically with the need for application composition within IT. Soon after I posted, &lt;a href="http://blogs.msdn.com/MikeWalker/"&gt;Mike Walker&lt;/a&gt;, an Architect with Microsoft's Architecture Strategy team, posted a response with &lt;a href="http://blogs.msdn.com/mikewalker/archive/2007/08/26/justifying-the-need-for-composite-applications.aspx"&gt;some thoughts of his own&lt;/a&gt;. As I said in the comment section of that post, I think Mike's additions&amp;nbsp;were right on and plan to incorporate&amp;nbsp;some of his thoughts and comments as I revise that section in the final publication.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In the first section of his post, Mike took a moment to define the term "composite applications" using definitions from Gartner, BEA, IBM and pointed to Chris Keyser's &lt;a href="http://www.architecturejournal.net"&gt;Architecture Journal&lt;/a&gt;&amp;nbsp;paper from January, "&lt;a href="http://msdn2.microsoft.com/en-us/library/bb266335.aspx"&gt;Composite Applications: The New Paradigm&lt;/a&gt;." The last was a key piece of my research and&amp;nbsp;I highly recommend reading it as it discusses composition from a broader view than just SOA, which is contrary to&amp;nbsp;the focus of most first generation thinking on composite applications.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Mike's definition aligns with what I included in the second section of my research paper, which I am posting here. This section shifts the focus&amp;nbsp;from justifying the need to understanding all of the terms in the CA universe as we've defined it. Thus, it includes a bit more than just defining Composite Applications. Mike, I'd be interested in further thoughts or feedback you might have on this section. Same goes for anyone who wants to jump in. Here's section two:&lt;/p&gt; &lt;h3&gt;&lt;a&gt;Composition: Assembling Assets into Applications&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;In order to create a Composite Applications Framework (CAF), one must first understand the vocabulary of composition and composite applications. This section introduces several terms and concepts important to the creation of a CAF. They are:  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;1. Composition  &lt;/p&gt;&lt;p&gt;2. Composite Assets  &lt;/p&gt;&lt;p&gt;3. Composite Applications  &lt;/p&gt;&lt;p&gt;4. Composition Tiers, Composite Types and Containers  &lt;/p&gt;&lt;p&gt;5. Composers  &lt;h4&gt;&lt;a&gt;Composition&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;According to Wiktionary, composition is the combining of different parts to make a whole. In the context of technology, composition is the combining of technology assets to create an application or solution which provides value to the business. According to Keyser, the term itself is a "... shift in computing from brittle, monolithic, developer-centric applications solving one particular problem, to agile, contextual, user-driven applications to support a particular business process." (2006, p. 5) In addition to agile and user-driven applications, composition also "... includes personalization and customization abilities, so that users can easily and quickly modify specific functionality in the solution." (Banerjee, What are Composite Applications?, 2006) In essence, &lt;b&gt;&lt;i&gt;composition is the assembly of assets into applications which can be created and/ or modified quickly and are user-driven in nature&lt;/i&gt;&lt;/b&gt;. Thus, enabling composition of assets into applications is the key and ultimate goal of a CAF.  &lt;h4&gt;&lt;a&gt;Composite Assets&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;Within the realm of Composite Applications, a &lt;b&gt;&lt;i&gt;composite asset is a discrete object with standalone value and functionality which can be combined with other objects to create an application of greater value than the sum of the individual objects&lt;/i&gt;&lt;/b&gt;. Typically, this combination is in support of a business process or set of user goals. Within a CAF, the following objects&amp;nbsp;can be&amp;nbsp;considered assets for composition (Adapted from Banerjee, Building Office Business Applications, 2006 and What are Composite Applications?, 2006):  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;ul&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="0" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Documents&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Dashboards&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Business Activities&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Portal Sites&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Business Rules&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Portal/ Web Pages&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Schemas&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Data Connections&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Metrics&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Authorizations&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Web Parts&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Reports&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;Web Services&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt; &lt;td valign="top" width="200"&gt; &lt;ul&gt; &lt;li&gt;UI Screens&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="200"&gt;&amp;nbsp;&lt;/td&gt; &lt;td valign="top" width="200"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/ul&gt; &lt;/p&gt;&lt;p&gt;It should be obvious from this list that the creation of composite applications goes far beyond the assembly of WebParts on a screen to create a single interface. In fact, composite applications span all of these types and all of the traditional application tiers. To create a successful CAF, IT should create a CAF that allows most, if not all, of the assets listed above to be used in the creation of Composite applications.  &lt;h4&gt;&lt;a&gt;Composite Applications&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;The term "composite applications" evokes many different meanings in the current landscape of information technology. A few examples are:  &lt;ul&gt; &lt;li&gt;Applications created via the assembly of SOA services;  &lt;/li&gt;&lt;li&gt;The Business user's equivalent of Web 2.0 "mashups;" (Keyser, 2006)  &lt;/li&gt;&lt;li&gt;Another form of integration and application development; (Frye, 2005)&lt;/li&gt;&lt;/ul&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;While these are all valid interpretations, they are also nearly all tied to first generation ideas around the meaning and intent of composite applications. Core to that idea was that the only useful assets for composition were either Web Services or entire User Interfaces. Thus, much of the current writing and thinking around composite applications centers on either the composition of fine-grained SOA services into "right-sized" business services, which are then wrapped in a UI and delivered to the user, or the creation of Web Parts which are dragged onto a portal screen, skinned&amp;nbsp;and placed wherever the user desires.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;While we still hold the first generation thinking around composite applications to be true, we believe that composition is more than simple service composition or the creation of WebParts. Furthermore, composition is a reality for all of the assets listed above and also at every tier of an application and for each major type of composite application. Thus,&amp;nbsp;a candidate&amp;nbsp;definition of a composite application is "... &lt;b&gt;&lt;i&gt;a collection of software assets that have been assembled to provide a business capability. These assets are artifacts that can be deployed independently, enable composition, and leverage specific platform capabilities&lt;/i&gt;&lt;/b&gt;." (Banerjee, What are Composite Applications?, 2006, p. 12)  &lt;h4&gt;&lt;a&gt;Composition Tiers, Composite Types and Containers&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;Because a CAF should support more than service and WebPart composition, it is important to understand the tiers of composite applications, types of composite applications and the containers available at each tier. An understanding of each enables solution teams to determine the appropriate placement for a composite application.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Composition Tiers are application layers that provide services to composite applications.&lt;/i&gt;&lt;/b&gt;  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Composite Types are categories of composite applications which map to each composition tier.&lt;/i&gt;&lt;/b&gt;  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Containers are shells which can host any or all of the assets that make up a composite application. &lt;/i&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;&lt;a&gt;&lt;strong&gt;Presentation Tier&amp;nbsp;- UI Composites&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The primary function of the presentation tier is to present business information to knowledge workers and actions to perform on said information. Composition at this tier is called composition "at the glass." (Sholler, 2006) UI Composition is one of the most common forms of composition and is often assumed to be the only tier at which composition takes place because of its broad use and visibility. However, this misconception often causes organizations to attempt to create a CAF simply by creating a "whole cloth" UI through which all applications must be surfaced. The result is a single interface (instead of a unified User Experience) which ends up constraining business users and diminishes the value of a CAF.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Instead of a one-size fits all CAF with exclusive UI composition, organizations maximize the value of a CAF by leveraging composition at the level where it is the most appropriate option for a given composite application. In the case of UI composites, these are most appropriate when the resulting composite application should describe the sequence of interactions the end user will need to follow in order to use the application. (Sholler, 2006) In addition to sequenced composites, UI composites are also appropriate for "informal and unintended compositions." (Keyser, 2006, p. 3) In both cases, an Enterprise Portal environment is the ideal host for these types of composite applications.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;&lt;a&gt;&lt;strong&gt;Application Tier&amp;nbsp;- Service/ Integration Composites&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Composition at the application tier typically involves the creation of new services from existing services to enable a business process or set of user goals. Composites created from existing services are new services themselves which may also be candidates for composition. These services are usually managed by an integration/ orchestration engine such as Microsoft BizTalk Server. Similar to Presentation Tier composites, these composites can have UI elements and trigger user interactions, but the key difference is that the actual composition takes place at the service level. These types of composites are most appropriate when the composition describes automated business activities or a subset of an automated business process. (Sholler, 2006)  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a&gt;&lt;strong&gt;Data Tier&amp;nbsp;- Data/ Information Composites&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Composition at the Data Tier consists of creating services for managing the content and relationships of a business entity. These services are designed to be the building blocks for the creation of other services and are typically not surfaced to a UI. Data Tier composites are most appropriate for consolidating views of shared reference information and are usually the foundation for SOA. Key to the success of Data Tier composition is the establishment of Enterprise Information Management (EIM) processes and practices in an organization. EIM practices, especially those targeted at Master Data Management (MDM) go a long way toward addressing many of the entity aggregation and information integration issues which typically plague SOA and CAF implementations.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a&gt;&lt;strong&gt;Productivity&lt;/strong&gt;&lt;/a&gt; Tier - Ad-hoc Composites&lt;/b&gt;  &lt;/p&gt;&lt;p&gt;Productivity Tier composites are composites used to manage the "rhythm of the business:" those ad-hoc interactions, collaborations and processes which all knowledge workers rely on to accomplish their goals. While discussions around SOA, Enterprise Service Buses (ESBs) and open standards like WS-* and Service Component Architecture (SCA) are valuable, they are all focused on managing and exposing structured business logic. However, the greatest business value for composition can be found at the Productivity tier. (Keyser, 2006) Furthermore, the very idea of composition begs for a framework which supports ad-hoc processes. According to Banerjee, "By their very nature, composite applications presume that composition of solutions can occur after assets have been built and deployed-and so need to explicitly account for people-to-people interactions among information workers that are essential to complete any business process. Usually these interactions are not captured by structured processes or traditional business applications." (Banerjee, Building Office Business Applications, 2006, pp. 12, 13) These types of composites are most appropriate when processes either cannot or need not be defined, or when the business requires a solution that works "in between the boxes" of defined processes.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Each of these tiers and types provides a set of containers within which assets can be hosted. Examples of containers at each tier are:  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;ul&gt; &lt;li&gt;Presentation&amp;nbsp;- Outlook, Excel, InfoPath, WSS WebParts  &lt;/li&gt;&lt;li&gt;Application&amp;nbsp;- Web Services, LOB Systems  &lt;/li&gt;&lt;li&gt;Data&amp;nbsp;- Analysis Services, Data Warehouse, EIM services  &lt;/li&gt;&lt;li&gt;Productivity&amp;nbsp;- MOSS Document Libraries, Excel Services, Workflows, Business Data Catalog&lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;&lt;a&gt;Composers&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;One of the key questions related to the creation of composite applications and a CAF is "Who composes?" That is to say, "What roles would be involved in the assembly of composite applications?" Organizations have several options when determining the primary composers of composite applications and the choice has implications on the design of both a CAF and the experience in creating composite applications. Some likely composers of composite applications are:  &lt;h5&gt;&lt;a&gt;Business Service Developers&lt;/a&gt;&lt;/h5&gt; &lt;/p&gt;&lt;p&gt;These are IT developers focused on providing value-added common business services to all customer solutions teams. Their technical depth is high and a CAF targeted at these users would be similar to what is provided by SOA today.  &lt;h5&gt;&lt;a&gt;Customer Solution Developers&lt;/a&gt;&lt;/h5&gt; &lt;/p&gt;&lt;p&gt;These are IT developers focused on creating customer-centric solutions by leveraging software infrastructure. Their technical depth is moderate to high and a CAF targeted at these users would need to abstract away service creation and assembly.  &lt;h5&gt;&lt;a&gt;Business Analysts&lt;/a&gt;&lt;/h5&gt; &lt;/p&gt;&lt;p&gt;These are customer consultants focused on helping customers determine which business needs are best met with technology. Their technical depth is moderate and a CAF targeted at these users would draw many features from current leading BPM platforms.  &lt;h5&gt;&lt;a&gt;End Users&lt;/a&gt;&lt;/h5&gt; &lt;/p&gt;&lt;p&gt;These are the users of the solutions created by customer solutions teams. Their technical depth is low and a CAF targeted at these users would need to abstract away nearly all of the technical aspects of application creation and should provide very intuitive context- and metadata-driven methods for application assembly and customization.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;For many organizations, it&amp;nbsp;would be advisable&amp;nbsp;for a first generation CAF target Customer Solution Developers as the primary composers of applications, with some configuration, customization and personalization provided to business analysts and end users. Once the CAF is in place, the framework should evolve over the long term to push composition out to Business Analysts and eventually to end users.  &lt;h3&gt;References&lt;/h3&gt; &lt;/p&gt;&lt;p&gt;Banerjee, A. (2006). Building Office Business Applications. &lt;i&gt;&lt;a href="http://www.architecturejournal.net"&gt;The Architecture Journal&lt;/a&gt;&lt;/i&gt;, (10) 12-19.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Banerjee, A. (2006, December). &lt;i&gt;What are Composite Applications?&lt;/i&gt; Retrieved August 20, 2007, from MSDN Architecture Center: &lt;a href="http://msdn2.microsoft.com/en-us/architecture/bb220803.aspx"&gt;http://msdn2.microsoft.com/en-us/architecture/bb220803.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Banerjee, A., Moinuddin, M., &amp;amp; &lt;a href="http://blogs.msdn.com/mikewalker"&gt;Walker, M. J.&lt;/a&gt; (2006). &lt;i&gt;Office Business Applications: Building Composite Applications Using the Microsoft Platform.&lt;/i&gt; Redmond: Microsoft.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Frye, C. (2005, July 20). &lt;i&gt;The role of composite applications in an SOA&lt;/i&gt;. Retrieved August 20, 2007, from SearchWebServices.com: &lt;a href="http://searchwebservices.techtarget.com/qna/0,289202,sid26_gci1109080,00.html"&gt;http://searchwebservices.techtarget.com/qna/0,289202,sid26_gci1109080,00.html&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Keyser, C. (2006). Composite Applications - The New Paradigm. &lt;i&gt;&lt;a href="http://www.architecturejournal.net"&gt;The Architecture Journal&lt;/a&gt;&lt;/i&gt; , (10) 2-5.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Phifer, G. e. (2007, July 13). &lt;i&gt;Hype Cycle for Web and User Interaction Technologies, 2007.&lt;/i&gt; Retrieved August 20, 2007, from Gartner  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Sholler, D. (2006, December 12). &lt;i&gt;Three Approaches to Building Composite Applications.&lt;/i&gt; Retrieved August 13, 2007, from Gartner&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3eee0dcc-732e-4168-b930-7d90905b2492" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Composite%20Applications" rel="tag"&gt;Composite Applications&lt;/a&gt;, &lt;a href="http://technorati.com/tags/OBAs" rel="tag"&gt;OBAs&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Composition" rel="tag"&gt;Composition&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=1qAQaQ24x9s:Y8j7-CEgIuA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=1qAQaQ24x9s:Y8j7-CEgIuA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=1qAQaQ24x9s:Y8j7-CEgIuA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/1qAQaQ24x9s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/composition-assembling-assets-into-applications</feedburner:origLink></entry>
  <entry>
    <title type="html">The Need for Application Composition</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/6K8EAuk_z18/the-need-for-application-composition" />
    <id>http://www.userinexperience.com/Blog/the-need-for-application-composition</id>
    <updated>2009-05-19T15:42:05.91</updated>
    <published>2007-08-26T13:08:37</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you've been &lt;a href="http://www.twitter.com/thesatch"&gt;following me on twitter&lt;/a&gt;, you'd probably be able to venture a guess as to why I've been mostly silent for the last two weeks: I've been frantically working away at an internal strategy and vision for a Composite Application Framework (CAF). I finished a draft Wednesday and am going through a self-imposed peer review process before publishing next week. In addition to internal peer review, I wanted to start engaging some peers in the blogging world for their opinions on the ins and outs of both the need for and the creation of a &lt;acronym title="Composite Applications Framework"&gt;CAF in an enterprise&lt;/acronym&gt;. Part of that includes, of course, some discussion around the meaning of "Composite Applications" and CAF, which has several meanings: from being synonymous with SOA (only the beginning IMO) to Web 2.0 in the Enterprise (or Enterprise 2.0 if you like, which I do not). However, before I get into the weeds of terminology, I wanted to share an excerpt from the document that establishes the need for composition period, be it via SOA or Web/Enterprise 2.0. I've taken out anything specific to my company, but the rest is true to the first draft of the doc. I would love to have feedback from &lt;a href="http://blogs.msdn.com/MikeWalker/"&gt;Mike Walker&lt;/a&gt;, &lt;a href="http://duckdown.blogspot.com/"&gt;James McGovern&lt;/a&gt;, &lt;a href="http://www.biske.com/blog"&gt;Todd Biske&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/nickmalik/"&gt;Nick Malick&lt;/a&gt;, &lt;a href="http://madgreek65.blogspot.com/"&gt;Mike Kavis&lt;/a&gt; and anyone else who wants to weigh in. Going forward, I plan to post some additional sections from the doc for your consumption, review and feedback of any kind. I hope it at least generates some good discussion. So without further ado...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;&lt;a&gt;The Need for Composition&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;To understand the value that a CAF provides for an organization, it is important to first understand environmental trends which are driving IT organizations to reevaluate their current delivery models and to pursue composition strategies. In particular,&amp;nbsp;I believe that there are five factors which&amp;nbsp;illustrate the need for an application composition strategy. These factors are:&amp;nbsp;&amp;nbsp;  &lt;ol&gt; &lt;li&gt;&lt;a&gt;&lt;font color="#808080"&gt;The Cost of Building Applications&lt;/font&gt;&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a&gt;&lt;font color="#808080"&gt;The Problem with Processes&lt;/font&gt;&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;font color="#808080"&gt;The "Consumerization of IT"&lt;/font&gt; &lt;/li&gt;&lt;li&gt;The Need for Agility  &lt;/li&gt;&lt;li&gt;The Desire for a Single User Experience&amp;nbsp; &lt;/li&gt;&lt;/ol&gt; &lt;h4&gt;&lt;a&gt;The Cost of Building Applications&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/TheNeedforCompositeApplications_99E5/clip_image003.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="138" alt="clip_image003" hspace="12" src="http://www.userinexperience.com/wp-images/post-images/TheNeedforCompositeApplications_99E5/clip_image003_thumb.png" width="240" border="0"/&gt;&lt;/a&gt;A current reality many organizations face is that IT costs are increasing while businesses are&amp;nbsp;asking for more controls on IT spending. While the high cost of IT solutions isn't new, more and more organizations are pointing to the cost of integration as a major culprit behind IT cost overruns. According to &lt;a href="http://Ebstrategy.com"&gt;Ebstrategy.com&lt;/a&gt;, "The cost of integration is rapidly becoming a significant barrier to the deployment of new business applications. EBS estimated that in large corporations, approximately 40% of the cost of new applications is spent linking disparate business processes and applications rather than delivering new business functions." (E-Business Strategies, Inc.) Furthermore, Dr. Jean-Jaques Dubray of &lt;a href="http://Attachmate.com"&gt;Attachmate&lt;/a&gt; argues that increasing integration costs are a sign that IT is nearing or has crossed the point of "negative ROI," beyond which the costs, risks and complexity of integration make it nearly impossible for the organization to realize any ROI from its efforts. (2005, p. 9) The figure above illustrates this theory of increased cost and decreased value as the number of systems in an organization increases. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;As a result of this increased cost, Dubray concludes that "...companies are limited in their ability to improve existing business units operations or expand their businesses because all changes in a company's operation translate into modifying or creating new [Line of Business (LOB)] systems." (2005, p. 9) The increased cost of applications due to integration cost and the resulting limitation in IT's ability to deliver value to the organization contributes a great deal to the perception that IT is too expensive and slow to respond to the needs of the business. &lt;/p&gt; &lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;In response to increased cost and this perception, Dubray argues that IT&amp;nbsp;"...can no longer afford to build assets that cannot be reused in future contexts." (2005, p. 9) Instead, IT must view everything it creates for the business&amp;nbsp;as a collection of discrete and reusable assets. In addition, IT must create a framework that enables both the creation of reusable assets and the&amp;nbsp;reuse of those assets in the creation of solutions.  &lt;h4&gt;&lt;a&gt;The Problem with Processes&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/TheNeedforCompositeApplications_99E5/Bb220803.WhatAreComApps03SenusMSDN.10.gif" atomicselection="true"&gt;&lt;img height="177" alt="Bb220803.WhatAreComApps03S(en-us,MSDN.10)" src="http://www.userinexperience.com/wp-images/post-images/TheNeedforCompositeApplications_99E5/Bb220803.WhatAreComApps03SenusMSDN.10_thumb.gif" width="296"/&gt;&lt;/a&gt; The systems that IT creates are typically designed to manage discrete steps in a structured process. An example is web content creation, which typically involves story creation, moderation, publishing and retirement. Historically, IT systems have focused on automating approval, publishing and retirement and have been successful at creating value along these steps. However, the largest step in this process (in terms of elapsed time)&amp;nbsp;is usually the first: story creation. It is also likely the most collaborative and would likely consist of several "ad-hoc" process steps where the author collaborates with other individuals to check facts, obtain more information and even elicit feedback on the document in progress. But the system in question assumes that a completed draft is step 1 in the process. The result is that most applications "...do not enable rich collaboration across functional boundaries. This usually leads information workers to use personal productivity tools to perform the complex interactions required to conduct business. However, this in turn leads to a loss in productivity, as users are forced to cross from one set of tools to another, often manually moving the data through means such as cut-and-paste." (Banerjee, 2006, p. 12)  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;IT cannot focus merely on process automation to create value for the business when the reality is that most processes involve "...much more work between elements than is represented in the initial structured process. This work is often collaborative in nature. Innovation frequently takes place outside structured processes in the collaboration interactions, where imagination predominates, where the creativity of information workers is truly tapped, and where the critical business differentiation occurs." (Keyser, 2006, p. 3) Instead, IT should seek to create applications that enable and enhance the productivity of information workers along both structured and ad-hoc processes, as illustrated in the Figure above (Banerjee, What are Composite Applications?, 2006).  &lt;h4&gt;The "Consumerization of IT"&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/TheNeedforCompositeApplications_99E5/gilbane_facebook_poll_6.19.07.gif" atomicselection="true"&gt;&lt;img height="217" alt="gilbane_facebook_poll_6.19.07" src="http://www.userinexperience.com/wp-images/post-images/TheNeedforCompositeApplications_99E5/gilbane_facebook_poll_6.19.07_thumb.gif" width="290"/&gt;&lt;/a&gt; The "Consumerization of IT" is a term coined by &lt;a href="http://www.gartner.com/"&gt;Gartner&lt;/a&gt; to describe the effect of popular technology outside of the enterprise on the expectations and needs of knowledge workers within the enterprise. Gartner argues that knowledge workers are learning new and creative ways to use the web for productivity and collaboration and that they will expect to have these methods and tools available to them in the workplace. According to Keyser, "Based on working with Web 2.0, users will increasingly expect to exert more control over their work experiences and to participate in them. They will expect business applications to adjust to the way they work, rather than accept a suboptimal experience." (Keyser, 2006, p. 2) An example of this shift has been illustrated by a &lt;a href="http://gilbane.com/blog/2007/06/more_data_on_facebook_users_an.html"&gt;recent poll&lt;/a&gt; conducted on &lt;a href="http://www.facebook.com"&gt;Facebook.com&lt;/a&gt; by the &lt;a href="http://gilbane.com/blog"&gt;Gilbane Group&lt;/a&gt; (Gilbane, 2007). &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In this poll, participants were asked to select from a list of collaboration technologies which they plan to use in their jobs the most over the next two years. The respondents were then broken up into two groups (18-24 year olds and 25-34 year olds) and a visualization of the results can be seen in&amp;nbsp;the figure&amp;nbsp;above. While it's a bit of a surprise that younger knowledge workers will expect to use social-networking sites and SMS text messaging as a part of their jobs and not merely for play, a key piece of information in this unofficial poll is that many younger workers would prefer not to use email as a collaboration tool. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The implication, in my opinion, is that IT cannot paint users into a corner by offering one prescribed way in which to accomplish a task or achieve a goal when another tool or method might enable users to be far more productive. In reality, the "Consumerization of IT" means that the use of technology and the tools at an information worker's disposal&amp;nbsp;are becoming a large part of job satisfaction outside the walls of IT.&amp;nbsp;IT organizations&amp;nbsp;should recognize this trend and seek to provide solutions with the flexibility to meet the technology demands of information workers. &lt;/p&gt; &lt;h4&gt;&lt;a&gt;The Need for Agility&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;Many organizations frequently express&amp;nbsp;a desire to obtain the flexibility to quickly respond to meet new opportunities and demands as a "high priority" which they expect IT to enable.&amp;nbsp;(Keyser, 2006, p. 2) As an organization grows, there is an increasing need for IT to provide the&amp;nbsp;organization with:  &lt;ul&gt; &lt;li&gt;A platform for rapid decision-making;  &lt;/li&gt;&lt;li&gt;Tools to help the business sense and respond to changing market conditions;  &lt;/li&gt;&lt;li&gt;The ability to align business needs with current and future IT assets. &lt;/li&gt;&lt;/ul&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;To support these business needs, IT organizations&amp;nbsp;should be able to provide applications which are:  &lt;ul&gt; &lt;li&gt;Quick and easy to deploy;  &lt;/li&gt;&lt;li&gt;Easy to modify, customize and extend;  &lt;/li&gt;&lt;li&gt;Aligned with the current and future needs of the business. &lt;/li&gt;&lt;/ul&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;All of these factors illustrate the need for&amp;nbsp;IT organizations&amp;nbsp;to provide infrastructure and solutions which enable an organization to respond quickly and easily to change.  &lt;h4&gt;&lt;a&gt;The Desire for a Single User Experience&lt;/a&gt;&lt;/h4&gt; &lt;/p&gt;&lt;p&gt;As organizations grow their products and services, they typically outgrow the LOB systems they purchased or built to manage their earlier products and services. Those legacy systems are typically run to support the existing business, while new systems are created in new interfaces and bolted into the organization to run new businesses. The result for most users, who typically work with similar business processes across all products and services, is a small to large number of disparate systems within which they perform their daily work. Over time, the business begins to call for integration and a unified User Experience for knowledge workers in an organizations. Organizations who have been successful at implementing SOA usually lay the groundwork for meeting this need, but the path to a single User Experience includes a framework which brings data, processes and interfaces into a shared and consistent experience for knowledge workers.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;It is important to note here that a single User Experience is not a single user interface or a single system. Rather, a single User Experience is offered by a platform and a controlled number of user interfaces which provide familiar interactions to knowledge workers regardless of the medium, be it Office client, web application, mobile device or smart client.&amp;nbsp;  &lt;h3&gt;References&lt;/h3&gt; &lt;/p&gt;&lt;p&gt;Banerjee, A. (2006). Building Office Business Applications. &lt;i&gt;&lt;a href="http://www.architecturejournal.net"&gt;The Architecture Journal&lt;/a&gt;&lt;/i&gt;, (10) 12-19.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Banerjee, A. (2006, December). &lt;i&gt;What are Composite Applications?&lt;/i&gt; Retrieved August 20, 2007, from MSDN Architecture Center: &lt;a href="http://msdn2.microsoft.com/en-us/architecture/bb220803.aspx"&gt;http://msdn2.microsoft.com/en-us/architecture/bb220803.aspx&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Banerjee, A., Moinuddin, M., &amp;amp; &lt;a href="http://blogs.msdn.com/mikewalker"&gt;Walker, M. J.&lt;/a&gt; (2006). &lt;i&gt;Office Business Applications: Building Composite Applications Using the Microsoft Platform.&lt;/i&gt; Redmond: Microsoft.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Dubray, D. J.-J. (2005, May). &lt;i&gt;Composite Applications: Value Proposition and Architecture.&lt;/i&gt; Retrieved August 20, 2007, from ebMPL.org: &lt;a href="http://www.ebpml.org/capp.ppt"&gt;http://www.ebpml.org/capp.ppt&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;E-Business Strategies, Inc. (n.d.). &lt;i&gt;Composite Applications - Frequently Asked Questions.&lt;/i&gt; Retrieved August 20, 2007, from EBS Web Site: &lt;a href="http://www.ebstrategy.com/selfservice/composite/composite_apps_faq.htm"&gt;http://www.ebstrategy.com/selfservice/composite/composite_apps_faq.htm&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Gilbane, F. (2007, June 20). &lt;i&gt;More Data on Facebook users and Enterprise 2.0&lt;/i&gt;. Retrieved August 20, 2007, from Gilbane Group Blog: &lt;a href="http://gilbane.com/blog/2007/06/more_data_on_facebook_users_an.html"&gt;http://gilbane.com/blog/2007/06/more_data_on_facebook_users_an.html&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Keyser, C. (2006). Composite Applications - The New Paradigm. &lt;i&gt;&lt;a href="http://www.architecturejournal.net"&gt;The Architecture Journal&lt;/a&gt;&lt;/i&gt; , (10) 2-5.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;  &lt;/p&gt;&lt;p&gt;Platt, M. (2007). Web 2.0 in the Enterprise. &lt;i&gt;&lt;a href="http://www.architecturejournal.net"&gt;The Architecture Journal&lt;/a&gt;&lt;/i&gt; , (12) 2-6.  &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:24b0a167-01de-4cb3-82ac-5a17efc41d43" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Composite%20Applications" rel="tag"&gt;Composite Applications&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/User%20Experience" rel="tag"&gt;User Experience&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=6K8EAuk_z18:2piU8v4k9fg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=6K8EAuk_z18:2piU8v4k9fg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=6K8EAuk_z18:2piU8v4k9fg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/6K8EAuk_z18" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/the-need-for-application-composition</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-08-15</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/Mk16kYfbT2g/Links-for-2007-08-15" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-08-15</id>
    <updated>2009-05-19T15:42:05.68</updated>
    <published>2007-08-15T10:08:38</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.conchango.com/jamiethomson/archive/2007/08/06/SSIS_3A00_-Team-Development-Experiences.aspx"&gt;SSIS Team Development Experiences&lt;/a&gt;&amp;nbsp;- Another example of database developers being left out in the cold when it comes to first-class development tools and practices. It's getting better, but we're not there yet...  &lt;/li&gt;&lt;li&gt;&lt;a href="http://simonguest.com/blogs/smguest/archive/2007/08/14/Adaptive-Path-UXWeek.aspx"&gt;Adaptive Path UXWeek&lt;/a&gt; - Simon Guest is at UXWeek and will be blogging about the experience. I hope that the number of EAs only increases in coming years and hope to attend myself in the future. &lt;/li&gt;&lt;li&gt;&lt;a href="http://lifehacker.com/software/how-to/go-old-school-with-a-notebook-288621.php"&gt;Go old school with a notebook&lt;/a&gt;&amp;nbsp;- I'm a tried and true notebook guy. There is no and never will be an adequate replacement for pen and paper for me... &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.rosenfeldmedia.com/announcements/2007/08/user_experience_and_the_analys.php"&gt;User experience and the analysts&lt;/a&gt; - A nice piece of research done by Rosenfeld Media on major Analysts use of certain UX-related terms. The Gartner ones weren't surprising to me as a Gartner client (though I would imagine that they would argue that the "Consumerization of IT" term is a UX term, thus should be on the list), but it was interesting to see some side-by-side comparisons. More research along these lines would help an organization like mine have some good insight into which firm, if any,&amp;nbsp;should get&amp;nbsp;our money. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/news/2007/08/multi-lingual-programming"&gt;DSLs bringing the end of single language development?&lt;/a&gt;&amp;nbsp;I hope so... especially if one is more open with the terms "language" and "development." &lt;/li&gt;&lt;li&gt;&lt;a href="http://darmano.typepad.com/logic_emotion/2007/08/are-you-a-synth.html"&gt;Are You a Synthesizer?&lt;/a&gt;&amp;nbsp;Enterprise Architects have to be... I sure hope I am. If I'm not, I'd like to become a professional fly fisherman... &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.techrepublic.com.com/hiner/?p=513"&gt;Enterprise 2.0 is about building a collaboration platform that is better than e-mail&lt;/a&gt;&amp;nbsp;- The reality, as Jason states&amp;nbsp;himself in&amp;nbsp;this article, is that Enterprise collaboration (I won't use that term in the title) is less about replacing email and more about repositioning email to be used correctly (messaging) and bringing other tools into the enterprise which are better suited for collaboration (like &lt;a href="http://www.parlano.com/"&gt;Parlano&lt;/a&gt;). (via &lt;a href="http://www.sanbeiji.com/"&gt;Joe Lewis&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:df7e2fcf-8004-42bb-9322-a14df30545d2" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SSIS" rel="tag"&gt;SSIS&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Adaptive%20Path" rel="tag"&gt;Adaptive Path&lt;/a&gt;, &lt;a href="http://technorati.com/tags/UXWeek" rel="tag"&gt;UXWeek&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Lifehacker" rel="tag"&gt;Lifehacker&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Moleskine" rel="tag"&gt;Moleskine&lt;/a&gt;, &lt;a href="http://technorati.com/tags/UX" rel="tag"&gt;UX&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Gartner" rel="tag"&gt;Gartner&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=Mk16kYfbT2g:DnIQA45kCHc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=Mk16kYfbT2g:DnIQA45kCHc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=Mk16kYfbT2g:DnIQA45kCHc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/Mk16kYfbT2g" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-08-15</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-08-06</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/4VXCtoyfm9k/Links-for-2007-08-06" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-08-06</id>
    <updated>2009-05-19T15:42:05.38</updated>
    <published>2007-08-06T12:08:10</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://blogs.zdnet.com/service-oriented/?p=931"&gt;Microsoft: My way or the highway with SOA?&lt;/a&gt;&amp;nbsp;Though Microsoft can certainly afford to do "SOA their way" and though such approaches have certainly worked in the past, I wonder if this one might actually hurt them is the long run. As Joe says, "What Microsoft appears to be doing... goes completely against what SOA is supposed to be all about, which is the ability to deploy and run what you need based on what you need, unencumbered by the limitations of vendors' systems."&amp;nbsp;Wouldn't it be ironic if Microsoft's way of forcing organizations to "do SOA" causes organizations to turn to SOA itself as a way to minimize their dependencies on Microsoft systems?  &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.zdnet.com/service-oriented/?p=932"&gt;Project Zero: IBM enables REST-based development&lt;/a&gt;&amp;nbsp;- Not surprising to see IBM adding support for REST, especially since Microsoft is doing the same&amp;nbsp;by &lt;a href="http://www.infoq.com/news/2007/05/wcf-web-programming-model"&gt;adding a Web Programming model to its WCF upgrades in the .NET 3.5 Framework&lt;/a&gt;. In many ways, this simply underscores David Chappell's assertion that the &lt;a href="http://www.davidchappell.com/blog/2007/06/rest-vs-ws-war-is-over-if-you-want-it.html"&gt;REST versus WS-* debate is over&lt;/a&gt;. While we may still have a place in our hearts for one over the other, the major vendors seem to be saying "why not both?"  &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/nickmalik/archive/2007/08/06/binding-soa-to-bpm-instead-of-bpm-to-soa.aspx"&gt;Binding SOA to BPM instead of BPM to SOA&lt;/a&gt;&amp;nbsp;- Not sure I understand the assertion that we should attach SOA to the swimlane diagram and not BPMN Nick. Pools and Lanes are used heavily in BPMN, so what is it about BPMN that you have an issue with? If it's the BPEL/automation side of BPMN, then I agree, but I think that BPMN can be very useful to organizations without that side, especially since what you get is a standard Process modeling language where none exists today.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://service-architecture.blogspot.com/2007/01/why-sales-isnt-process-driven.html"&gt;Why Sales isn't process driven&lt;/a&gt;&amp;nbsp;- According to Steve Jones, the "mechanism for the implementation and measurement of a service" (process) isn't always the same thing as the drivers for and value of the service (goals). Meaning that our services ought to pay attention to user goals first and the underlying process second. It's a &lt;a href="http://en.wikipedia.org/wiki/User-centered_design"&gt;UCD&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/User_experience"&gt;UX&lt;/a&gt; perspective for SOA...  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.presentations.com/msg/content_display/presentations/e3ife0aa2be553f374d0cab2438eb4b697f"&gt;PowerPoint: Boon or Bane?&lt;/a&gt;&amp;nbsp;I tend to fall into the camp of PowerPoint is a misused tool, not a bad tool in and of itself, though its conventions in&amp;nbsp;the form of automatic title and bullet regions do encourage bad behavior.&amp;nbsp;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.paulgraham.com/stuff.html"&gt;Stuff&lt;/a&gt; - I &lt;a href="http://mylemonadestand.wordpress.com/2007/07/09/fun-facts-n-stats-on-storage-organization/"&gt;read recently&lt;/a&gt; that it took the self-storage industry 25 years to build the first billion square feet of storage space and only 8 years for the second billion. Yet our houses have grown by 80% and we still face a storage crisis. Stuff is best gotten rid of...&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:985a16b5-0509-4647-a4d9-ff28dcfc1d83" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Project%20Zero" rel="tag"&gt;Project Zero&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IBM" rel="tag"&gt;IBM&lt;/a&gt;, &lt;a href="http://technorati.com/tags/REST" rel="tag"&gt;REST&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BPM" rel="tag"&gt;BPM&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BPMN" rel="tag"&gt;BPMN&lt;/a&gt;, &lt;a href="http://technorati.com/tags/UCD" rel="tag"&gt;UCD&lt;/a&gt;, &lt;a href="http://technorati.com/tags/UX" rel="tag"&gt;UX&lt;/a&gt;, &lt;a href="http://technorati.com/tags/PowerPoint" rel="tag"&gt;PowerPoint&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=4VXCtoyfm9k:VgS9Nb_p4W4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=4VXCtoyfm9k:VgS9Nb_p4W4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=4VXCtoyfm9k:VgS9Nb_p4W4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/4VXCtoyfm9k" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-08-06</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-08-05</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/qsiPe2xpmj0/Links-for-2007-08-05" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-08-05</id>
    <updated>2009-05-19T15:42:05.19</updated>
    <published>2007-08-05T10:08:17</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div&gt;&lt;a href="http://www.noahcampbell.info/2007/08/02/enterprise-architecture-rest-and-soa-all-sit-down-at-a-bar/"&gt;Enterprise Architecture, REST and SOA all sit down at a bar?&lt;/a&gt;&amp;nbsp;- More on REST, SOA and EA and EA's responsibility to be relevant to project teams.&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://duckdown.blogspot.com/2007/08/do-enterprise-architects-ask-stupid.html"&gt;Do Enterprise Architects ask Stupid Questions?&lt;/a&gt;&amp;nbsp;- There are no stupid questions, only questions that self-righteous people think are stupid.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://confusedofcalcutta.com/2007/08/04/build-versus-buy-versus-opensource/"&gt;Build versus Buy versus Opensource&lt;/a&gt; - Good advice&amp;nbsp;if you can get Opensource in the door. Of course, vendors charging a premium to solve common problems already solved&amp;nbsp;should be&amp;nbsp;reason enough to adopt opensource...&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://loc.alize.us/"&gt;Loc.alize.us&lt;/a&gt;&amp;nbsp;- A Google Maps and Flickr mashup that brings photos of different lands to you. I'm planning a trip to Italy right now and it's nice to be able to get more than just the top-down view that Google Earth and Maps provide. Google Earth has functionality similar to this, though&amp;nbsp;I like the UI here better.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://www.redmonk.com/jgovernor/2007/08/03/what-soa-needs-to-learn-from-ruby-on-rails/"&gt;What SOA needs to learn from Ruby On Rails&lt;/a&gt; - Though I'm not sure what "Canned SOA" would look like, I agree with the argument that SOA needs some measure of default convention which can be leveraged. &lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/TheDeveloperTheoryOfTheThirdPlace.aspx"&gt;The Developer Theory of the Third Place&lt;/a&gt; - My third place is usually&amp;nbsp;one of several&amp;nbsp;coffee houses or restaurants with free WiFi close to my work or home. BTW, If you're ever in Colorado Springs Scott, we'd love to have you drop by and share some of your expertise.&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/nickmalik/archive/2007/07/30/free-code-getting-it-out-of-the-applications-business.aspx"&gt;Free Code - Getting IT out of the Applications business&lt;/a&gt; - IT takes EIM and the Business Event Ontology and gives the business (Biz Process Devs specifically) the ability to write "free code." While it sounds a little counter-intuitive, it certainly has some promise.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:1202af46-f45f-4a77-b23b-f4f981fa4262" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/REST" rel="tag"&gt;REST&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Opensource" rel="tag"&gt;Opensource&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Ruby%20on%20Rails" rel="tag"&gt;Ruby on Rails&lt;/a&gt;, &lt;a href="http://technorati.com/tags/BPM" rel="tag"&gt;BPM&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=qsiPe2xpmj0:_AHhSeJcd5I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=qsiPe2xpmj0:_AHhSeJcd5I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=qsiPe2xpmj0:_AHhSeJcd5I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/qsiPe2xpmj0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-08-05</feedburner:origLink></entry>
  <entry>
    <title type="html">EA Collaboration Tools: RACI Charts.</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/fVRCou6DQx4/EA-Collaboration-Tools-RACI-Charts" />
    <id>http://www.userinexperience.com/Blog/EA-Collaboration-Tools-RACI-Charts</id>
    <updated>2009-05-19T15:42:04.997</updated>
    <published>2007-08-03T11:08:08</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I've spoken a bit recently about&amp;nbsp;&lt;a href="http://www.userinexperience.com/2007/07/22/ea-functions-best-as-a-collaborative-community/"&gt;Enterprise Architecture as a collaborative tool&lt;/a&gt;, rather than a command and control structure.&amp;nbsp;Talking about collaboration is good, but&amp;nbsp;it takes more than a desire to collaborate to move EA in that direction. In reality, collaboration is an intentional effort, not just something you do by getting a group of people together and talking about architecture. While that's a key first step, and one you can do right now to improve your current landscape, collaboration is a culture which must be encouraged and fostered and which requires stronger leadership than any command and control structure ever does. But I don't want to talk about the soft skills of leadership today. Instead, I'd rather talk in this and another post or two about &lt;strong&gt;tools that make EA Collaboration a richer and deeper experience&lt;/strong&gt;. By tools, I don't mean modeling tools, repositories or frameworks. Those things have their place, but EA is also about people, and the tools of which I speak&amp;nbsp;are tools that help people work together.&amp;nbsp;These&amp;nbsp;are common, simple tools that don't cost an EA team much, but which can add a good bit of value to your efforts.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The first is a communication tool called a &lt;a href="http://en.wikipedia.org/wiki/RACI_diagram"&gt;RACI Chart&lt;/a&gt;. A RACI chart is a simple device used to describe &lt;a href="http://www.userinexperience.com/wp-images/post-images/UsingRACItoFacilitateUnderstanding_8A79/image.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="290" alt="image" src="http://www.userinexperience.com/wp-images/post-images/UsingRACItoFacilitateUnderstanding_8A79/image_thumb.png" width="431" border="0"/&gt;&lt;/a&gt; the roles and responsibilities of a group of people in completing certain tasks or deliverables. An example of a RACI chart from &lt;a href="http://en.wikipedia.org"&gt;Wikipedia&lt;/a&gt; is depicted on the left and illustrates tasks or deliverables as rows (what is being worked on) and roles as columns (who is working on it). At the intersection of each task and role is a letter (R, A, C or I) to represent a role's level of involvement in a task. Here is the meaning of each letter:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;R&lt;/strong&gt;esponsible - The person who does the work. (There can be multiple)&lt;/li&gt; &lt;li&gt;&lt;strong&gt;A&lt;/strong&gt;ccountable - The person accountable for the completion of a task, or the "single wringable neck." (&lt;a href="http://www.imdb.com/title/tt0091203/"&gt;There can only be one&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;&lt;strong&gt;C&lt;/strong&gt;onsulted - A person&amp;nbsp;or people with input into the task. Their expertise is needed.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;I&lt;/strong&gt;nformed - A person or people who "need to know" the outcome, but who&amp;nbsp;need not be&amp;nbsp;consulted during the process.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So why is this valuable to EA? For me, the reason is because it&amp;nbsp;removes assumptions and brings clarity to collaboration. RACI charts enable a group to go into a process or task with a clear understanding of everyone's role. Differences of opinion over the level of involvement are resolved up front,&amp;nbsp;which makes it that much easier for a group to move forward on the "same sheet of music" so to speak. Without clarity, you usually create&amp;nbsp;conflict around contribution (bad), rather than conflict around content (good).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here's an example of a RACI&amp;nbsp;chart that lists some common&amp;nbsp;Architecture&amp;nbsp;deliverables (both Enterprise- and Solution-level):&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/wp-images/post-images/UsingRACItoFacilitateUnderstanding_8A79/image_3.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="217" alt="image" src="http://www.userinexperience.com/wp-images/post-images/UsingRACItoFacilitateUnderstanding_8A79/image_thumb_3.png" width="525" border="0"/&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I won't go to deep into the content here because the deliverables and roles don't apply to every organization. For that matter, neither do the structural and cultural issues that play into "correctness" of this particular chart. The key is to recognize that the chart clearly identifies Rs, an A, Cs and Is for each deliverable listed as they relate to various roles in the organization.&amp;nbsp;On the occasions where I have leveraged this method in the past,&amp;nbsp;I was encouraged by the clarity it brought to the teams with which I was working. On one occasion,&amp;nbsp;I was&amp;nbsp;told that this model helped&amp;nbsp;one individual&amp;nbsp;put his finger on some past frustrations he had around certain deliverables and also understand with clarity how he "fit" into these cross-functional decisions.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Of course, these charts are no substitute for open and honest discussion and they should never be used as a way to manipulate people. They are intended to bring clarity and should be used only to obtain it. Once you've got it, it's time to move on to the task art hand, which you'll do with a lot more clarity than you would have otherwise.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3725667a-deb3-4204-b0a2-ae86381b8952" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/RACI" rel="tag"&gt;RACI&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Collaboration" rel="tag"&gt;Collaboration&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=fVRCou6DQx4:OEwczyCGN8c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=fVRCou6DQx4:OEwczyCGN8c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=fVRCou6DQx4:OEwczyCGN8c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/fVRCou6DQx4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/EA-Collaboration-Tools-RACI-Charts</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-08-03</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/gpDkFhLP1CA/Links-for-2007-08-03" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-08-03</id>
    <updated>2009-05-19T15:42:04.84</updated>
    <published>2007-08-03T10:08:45</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;ul&gt; &lt;li&gt;&lt;a href="http://blog.hbs.edu/faculty/amcafee/index.php/faculty_amcafee_v3/never_email_anyone_over_30/"&gt;Never Email Anyone Over 30&lt;/a&gt;&amp;nbsp;- I've seen many enterprises that think that Email + IM =&amp;nbsp;collaboration needs met&amp;nbsp;and I find it pleasantly surprising to see that IM as a collaboration tool is diminishing in the eyes of the younger generation of workers in favor of things like SMS, Wikis and Blogs (&lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt;&amp;nbsp;is probably just about in its own category). What that means however is that the enterprises who are just now getting IM in the Enterprise are still behind the curve... so what's your strategy for embracing the next generation of collaboration tools? Does an Enterprise vendor have to offer it before we'll buy it?  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.thecontenteconomy.com/2007/07/practical-enterprise-architecture.html"&gt;Practical Enterprise Architecture&lt;/a&gt; - Some good tips on creating valuable Enterprise Architecture.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.enterprise2conf.com/about/what-is-enterprise2.0.php"&gt;What is Enterprise 2.0&lt;/a&gt; - As much as I don't like the phrase, or "concept versioning"&amp;nbsp;in any form, I like what the idea represents in terms of driving information access, interconnected applications and devices and collaborative and open work.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://subsonicproject.com/"&gt;SubSonic&lt;/a&gt; - This looks to be a very nice ASP.NET scaffolding framework that parallels much of the project start-up scripts&amp;nbsp;that makes&amp;nbsp;Ruby on Rails such a nice environment to work in. (via &lt;a href="http://freqken.net/"&gt;Ken Scott&lt;/a&gt;)  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lazycoder.com/weblog/index.php/archives/2007/08/02/should-people-adapt-to-computers/"&gt;Should people adapt to computers?&lt;/a&gt; - Agreed Scott. I think that people have adapted enough... it's time to &lt;a href="http://en.wikipedia.org/wiki/Wearable_computer"&gt;set them free&lt;/a&gt;, and I don't mean by &lt;a href="http://www.youtube.com/watch?v=CZrr7AZ9nCY"&gt;turning their coffee table into a computer&lt;/a&gt; either.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.capgemini.com/ctoblog/2007/07/enterprise_architects_versus_b.php"&gt;Enterprise Architects versus Business Architects&lt;/a&gt; - While I certainly don't think that the role of EA is to create services within an Enterprise SOA, I do think that EA has a responsibility in handing valuable business process knowledge to an SOA team that then knows which services are needed. Otherwise, services end up being created to wrap whatever database entities a given project needs next.&amp;nbsp;In any case,&amp;nbsp;the key is that EA has a responsibility to be relevant to SOA efforts, not the other way around.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://duckdown.blogspot.com/2007/08/enterprise-architecture-is-like-herding.html"&gt;Enterprise Architecture is like Herding Cats&lt;/a&gt; - Don't know what&amp;nbsp;I could possibly add here...  &lt;/li&gt;&lt;li&gt;&lt;a href="http://devhawk.net/2007/07/31/Is+Serendipity+The+Heart+Of+The+WSREST+Debate.aspx"&gt;Is Serendipity the Heart of the WS-*/REST Debate?&lt;/a&gt;&amp;nbsp;Serendipity is probably a large part of the discussion, but I think a key to &lt;a href="http://devhawk.net/ct.ashx?id=6b4d0d87-7244-4a43-9cae-304a5c8a96d3&amp;amp;url=http%3a%2f%2ftech.groups.yahoo.com%2fgroup%2frest-discuss%2fmessage%2f8873"&gt;Nick Gall's General Principle of Serendipity&lt;/a&gt; ("Just as generality of knowledge is the key to serendipitous discovery, generality of purpose is the key to serendipitous (re)use.") is that one can rarely (even in an enterprise) plan for explicit reuse of a service. As such, you plan for serendipity.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3adc9f50-2d20-4c5e-8d02-7e7452c20ab4" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Collaboration" rel="tag"&gt;Collaboration&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Twitter" rel="tag"&gt;Twitter&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/EA" rel="tag"&gt;EA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Business%20Architecture" rel="tag"&gt;Business Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;, &lt;a href="http://technorati.com/tags/REST" rel="tag"&gt;REST&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=gpDkFhLP1CA:f8DI3l1ltUY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=gpDkFhLP1CA:f8DI3l1ltUY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=gpDkFhLP1CA:f8DI3l1ltUY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/gpDkFhLP1CA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-08-03</feedburner:origLink></entry>
  <entry>
    <title type="html">Links for 2007-08-02</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/EhF0zRXEQ8Y/Links-for-2007-08-02" />
    <id>http://www.userinexperience.com/Blog/Links-for-2007-08-02</id>
    <updated>2009-05-19T15:42:04.66</updated>
    <published>2007-08-02T12:08:27</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.dailylit.com/books/walden"&gt;Daily Lit&lt;/a&gt; - Get daily installments of public domain books delivered via email or RSS. I've started with &lt;a href="http://www.dailylit.com/books/walden"&gt;Walden&lt;/a&gt;&amp;nbsp;and should be done in 124 days... assuming I read these installments daily, of course.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.graficaobscura.com/future/futman.html"&gt;The Manifesto of the Futurist Programmers&lt;/a&gt; - There's nothing like a thousand words of propaganda to get your blood boiling over vague ideas and foggy platitudes (via &lt;a href="http://www.codinghorror.com/blog/"&gt;CodingHorror&lt;/a&gt;).  &lt;/li&gt;&lt;li&gt;&lt;a href="http://charlespetzold.com/etc/DoesVisualStudioRotTheMind.html"&gt;Does Visual Studio Rot the Mind?&lt;/a&gt; - A great article from &lt;a href="http://charlespetzold.com/"&gt;Charles Petzold&lt;/a&gt;&amp;nbsp;on the ways that Visual Studio might hinder us as programmers. From a User Experience perspective, I think that the broader critique here is that systems which&amp;nbsp;define our way of working instead of conforming to our way of working probably cost us more than we realize.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.ittoolbox.com/eai/architect/archives/ha-ha-you-must-be-joking-17651"&gt;Ha Ha, you must be joking&lt;/a&gt; - This is what happens when governance isn't seen as an enabler and a way to support a person's natural action. Instead, this is governance from an "us vs. them" perspective.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.iunknown.com/2007/07/a-first-look-at.html"&gt;A First look at IronRuby&lt;/a&gt; - Microsoft's venture into Ruby looks pretty good so far, and the plan to move IronRuby into &lt;a href="http://rubyforge.org/"&gt;Rubyforge&lt;/a&gt;&amp;nbsp;is worthy of applause. Tactically, I am still trying to wrap my head around this Dynamic Language Runtime (DLR) idea&amp;nbsp;and it's place on top of the .NET Common Language Runtime (CLR). Is it just a deferred compilation model? If so, is that really dynamic? Maybe I am missing the point, but I am having a hard time finding a good summary of the inner workings of the DLR. If anyone has anything, please send it my way.  &lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/nickmalik/archive/2007/07/23/all-models-are-wrong-some-models-are-useful.aspx"&gt;All models are wrong, some models are useful&lt;/a&gt; - A true statement, and the extension of this maxim to include communities is correct as well. When we worry less about "correctness" of the community, its makeup and its work and more about gaining value by creating value, we succeed, I think.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:2b54de22-abfc-42e7-87c9-2f992b85e9cf" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Literature" rel="tag"&gt;Literature&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Visual%20Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;, &lt;a href="http://technorati.com/tags/User%20Experience" rel="tag"&gt;User Experience&lt;/a&gt;, &lt;a href="http://technorati.com/tags/UX" rel="tag"&gt;UX&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Governance" rel="tag"&gt;Governance&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IronRuby" rel="tag"&gt;IronRuby&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Ruby" rel="tag"&gt;Ruby&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Archtecture" rel="tag"&gt;Archtecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=EhF0zRXEQ8Y:ECQWfjnsdaU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=EhF0zRXEQ8Y:ECQWfjnsdaU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=EhF0zRXEQ8Y:ECQWfjnsdaU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/EhF0zRXEQ8Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Links-for-2007-08-02</feedburner:origLink></entry>
  <entry>
    <title type="html">EA Functions Best as a Collaborative Community</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/yqOFuGk0HW4/EA-Functions-Best-as-a-Collaborative-Community" />
    <id>http://www.userinexperience.com/Blog/EA-Functions-Best-as-a-Collaborative-Community</id>
    <updated>2009-05-19T15:42:04.457</updated>
    <published>2007-07-22T16:07:27</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/MikeWalker/"&gt;Mike Walker&lt;/a&gt; responded to my "&lt;a href="http://www.userinexperience.com/2007/06/21/is-enterprise-architecture-declarative-or-imperative/"&gt;Is Enterprise Architecture Declarative or Imperative&lt;/a&gt;" question with some &lt;a href="http://blogs.msdn.com/mikewalker/archive/2007/07/10/is-enterprise-architecture-declarative-or-imperative.aspx"&gt;great thoughts&lt;/a&gt; that I'd like to respond to and expand upon here.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For starters, Mike mentioned that he doesn't really care for the terms declarative or imperative. I suspect, based on the tone in the rest of his post, that his dislike stems from the cold and mechanical way those terms may sound when used to represent people. In addition, I think that some would interpret, as Mike did, the declarative term as implying&amp;nbsp;a command and control structure in the sense that EA is still telling teams "what" to do. I'd be willing to grant Mike&amp;nbsp;that those are reasonable arguments,&amp;nbsp;&amp;nbsp;but I will also&amp;nbsp;say that the question was never about the choice between declarative or imperative.&amp;nbsp;Rather, the&amp;nbsp;terms&amp;nbsp;"declarative" and "imperative"&amp;nbsp;represent the&amp;nbsp;"world view" an EA team adopts when sitting on one side or the other. In my mind, declarative teams foster a collaborative community, while imperative teams concern themselves with frameworks, governance, models and the "ROI of EA." Not that these things aren't important, it's just that community and collaboration are more so (a la&amp;nbsp;"Individuals and interactions over processes and tools" in the &lt;a href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;). &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Beyond the terms used to frame the debate, I am in complete agreement with the remainder of Mike's post. The key, Mike says,&amp;nbsp;is that&amp;nbsp;EA is about "fostering community, providing the frameworks for decision making and providing assistance on mission critical projects." I think that the real key word there is community. We know frameworks in EA (too well at times) and we know assistance (though we might know it by the word governance often), but I think we tend to shy away from community because it's very contrary to most of the hierarchical organizations in which we find ourselves. But it is without that community that EA is "...viewed not only as Ivory Tower but as traffic cops"&amp;nbsp;as Mike stated.&amp;nbsp;With community, EA is able to voice the strategies of the business and speak from it's unique vantage point, while at the same time empowering and trusting teams to take the expertise and input of EA and bring it to bear on their projects.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;That being said, just saying that EA needs to foster a collaborative community is not enough. I have found that the EA/ SA (or Domain Architects as Mike calls them, a term I like quite a bit) interface can also foster confusion and generate conflict in many cases. I think that EA's and SA's could both function better in collaborative roles if they remember a few things about themselves and their comrades.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;For Enterprise Architects:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;People deserve the benefit of the doubt.&lt;/li&gt; &lt;li&gt;Coding or not, the people you serve (SA's) are deeper in the code than you are.&lt;/li&gt; &lt;li&gt;Seek to serve, not command.&lt;/li&gt; &lt;li&gt;Even if you have the final say in a matter, help people understand your reasons and solicit their feedback early and often.&lt;/li&gt; &lt;li&gt;Respect their craft.&lt;/li&gt; &lt;li&gt;Keep up with technology and don't lose your edge..&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;font color="#7c7c7c"&gt;For Solution Architects:&lt;/font&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;People deserve the benefit of the doubt.&lt;/li&gt; &lt;li&gt;Learn to appreciate and understand the role of EA in your organization. Learn to appreciate the different perspectives&amp;nbsp;which they bring.&lt;/li&gt; &lt;li&gt;If EA is acting "Ivory Tower," have the courage to tell them.&lt;/li&gt; &lt;li&gt;Treat EA as an ally, not a roadblock.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;font color="#7c7c7c"&gt;Not necessarily a complete list, but the key is that EA and SA must learn to trust one another in order to foster the kind of collaborate community which Mike, myself and so many others speak of. If you don't&amp;nbsp;see a community like that&amp;nbsp;taking shape in your organization, get&amp;nbsp;one started. And if&amp;nbsp;yours is&amp;nbsp;floundering, ask yourself what &lt;strong&gt;you can be doing differently&lt;/strong&gt; before you point to others or the woes of your organization as the cause of your troubles.&lt;/font&gt;&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=yqOFuGk0HW4:DZeBUwswPGs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=yqOFuGk0HW4:DZeBUwswPGs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=yqOFuGk0HW4:DZeBUwswPGs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/yqOFuGk0HW4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/EA-Functions-Best-as-a-Collaborative-Community</feedburner:origLink></entry>
  <entry>
    <title type="html">8 Random Things</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/MaqLYYbrpTo/8-Random-Things" />
    <id>http://www.userinexperience.com/Blog/8-Random-Things</id>
    <updated>2009-05-19T15:42:04.163</updated>
    <published>2007-07-20T12:07:45</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Thanks to &lt;a href="http://www.sanbeiji.com/"&gt;Joe Lewis&lt;/a&gt;, I've been hit with a &lt;a href="http://www.sanbeiji.com/archives/796"&gt;meme&lt;/a&gt;. Everyone says they never do these things, but this one sounds harmless enough since I can say whatever 8 random things I want to in response.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The rules for this meme are: &lt;ol&gt; &lt;li&gt;Let others know who tagged you. &lt;/li&gt;&lt;li&gt;Players start with 8 random facts about themselves. &lt;/li&gt;&lt;li&gt;Those who are tagged should post these rules and their 8 random facts. &lt;/li&gt;&lt;li&gt;Players should tag 8 other people and notify them they have been tagged.&lt;/li&gt;&lt;/ol&gt; &lt;/p&gt;&lt;p&gt;Ok, so 8 random facts about me:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;I received my undergraduate degree in MIS from &lt;a href="http://www.baylor.edu"&gt;Baylor University&lt;/a&gt;. Since then (all apart from my full-time job), I have considered seminary, law school (took the LSAT even), business school and&amp;nbsp;seminary again. I enrolled in an &lt;a href="http://www.du.edu/lis"&gt;LIS&lt;/a&gt; program at the &lt;a href="http://www.du.edu"&gt;University of Denver&lt;/a&gt; last Spring, then moved into a CIS program at DU's University College&amp;nbsp;after the faculty decided that technology isn't that important to LIS programs. I'm a vagabond student, what can I say. If somebody is willing to give me a Master's degree where&amp;nbsp;I pick all the curriculum, I think I'd finally be happy. Of course, I could do that now. It's called learning on your own...&lt;/li&gt; &lt;li&gt;A few weeks ago, I started teaching myself &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; for grins. I'd been interested for a while,&amp;nbsp;but I&amp;nbsp;finally took the plunge and bought&amp;nbsp;&lt;a href="http://www.amazon.com/Agile-Development-Rails-Pragmatic-Programmers/dp/0977616630/ref=pd_bbs_sr_1/002-4364785-8624862?ie=UTF8&amp;amp;s=books&amp;amp;qid=1184957119&amp;amp;sr=8-1"&gt;Agile Web Development with Rails, 2nd Ed&lt;/a&gt;. I haven't had this much fun doing development in a while.&lt;/li&gt; &lt;li&gt;My dream career is to be a writer (and actually be able to live off of it). I've wanted to be once ever since I learned to read and have written on the side actively since I was eighteen. One of these days, I'll force myself through &lt;a href="http://www.nanowrimo.org/"&gt;NaNoWriMo&lt;/a&gt; and finally move in that direction.&lt;/li&gt; &lt;li&gt;My wife and I sponsor three children with &lt;a href="http://www.compassion.com/default.htm"&gt;Compassion International&lt;/a&gt;, the organization which I am privileged to serve. The names of&amp;nbsp;our children&amp;nbsp;are Denis (Tanzania), Immanuel (El Salvador) and Ana Maria (Dominican Republic). Last year, I was in the Dominican Republic and was blessed enough to be able to meet Ana Maria and her mother. It was an amazing experience and one I will never forget and I am reminded every day how fortunate I am that I get to do something I love for an organization who is on the front lines of ending poverty.&lt;/li&gt; &lt;li&gt;My &lt;a href="http://en.wikipedia.org/wiki/Myers-Briggs"&gt;Myers-Briggs personality type&lt;/a&gt;&amp;nbsp;is ENFP (stealing one from Joe). Apparently, I am an idealist and am also terrible at follow-through.&lt;/li&gt; &lt;li&gt;I love technology, but my hobbies (running, biking, hiking, backpacking) take me outdoors where I feel free without my digital leashes.&lt;/li&gt; &lt;li&gt;I am an avid &lt;a href="http://www.davidco.com/"&gt;GTD&lt;/a&gt;-er. I love the &lt;a href="http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280/ref=pd_bbs_sr_1/002-4364785-8624862?ie=UTF8&amp;amp;s=books&amp;amp;qid=1184959124&amp;amp;sr=8-1"&gt;book&lt;/a&gt;, the ideas, &lt;a href="http://www.43folders.com/"&gt;43Folders&lt;/a&gt; and all things GTD. Right now, I am actually supposed to be doing my weekly review. I think this blog post (though on my action list) took longer than 2 minutes...&lt;/li&gt; &lt;li&gt;I wish I was as smart as &lt;a href="http://www.edwardtufte.com/tufte/"&gt;Edward Tufte&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;So that's that. Now to pass this albatross on to others:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://freqken.net/"&gt;Ken Scott&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.dempseywilliams.com/"&gt;Dempsey Williams&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://blog.jasonfoster.com/"&gt;Jason Foster&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://danagonistes.blogspot.com/" target="_blank"&gt;Dan Fox&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.robfay.com/"&gt;Rob Fay&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.axisebusiness.com/adnano/"&gt;Adnan Masood&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.pdatasolutions.com/blog"&gt;Phil Ripperger&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.russandrebecca.blogspot.com/"&gt;Russ Debenport&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Now how's that for some &lt;a href="http://www.structuredprocrastination.com/"&gt;structured procrastination&lt;/a&gt;?&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=MaqLYYbrpTo:BTQB49TC39M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=MaqLYYbrpTo:BTQB49TC39M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=MaqLYYbrpTo:BTQB49TC39M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/MaqLYYbrpTo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/8-Random-Things</feedburner:origLink></entry>
  <entry>
    <title type="html">Greg the Architect</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/2knGbduFH_4/Greg-the-Architect" />
    <id>http://www.userinexperience.com/Blog/Greg-the-Architect</id>
    <updated>2009-05-19T15:42:03.953</updated>
    <published>2007-07-19T04:07:27</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;If you haven't run across the &lt;a href="http://www.gregthearchitect.com/index.html"&gt;Greg the Architect&lt;/a&gt; site or videos yet, &lt;a href="http://www.gregthearchitect.com/index.html"&gt;go there now&lt;/a&gt;. A couple of great quotes form the &lt;a href="http://www.gregthearchitect.com/episode_ROI_beholder.html"&gt;"ROI of the Beholder"&lt;/a&gt; episode completely out of context:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;"Please note: Sarbanes-Oxley prevents us from&amp;nbsp;providing cake."&lt;/p&gt; &lt;p&gt;"Sorry&amp;nbsp;about the metaphor..."&lt;/p&gt; &lt;p&gt;"The big guy doesn't think that SOA is delivering ROI."&lt;/p&gt; &lt;p&gt;"Come on, who's my SOA ROI VIP?"&lt;/p&gt; &lt;p&gt;"I want ROI dripping all over this thing."&lt;/p&gt; &lt;p&gt;"Product naming contest. Name a product, get a free ice cream."&amp;nbsp;&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2knGbduFH_4:4ZrSpYjGHuQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=2knGbduFH_4:4ZrSpYjGHuQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=2knGbduFH_4:4ZrSpYjGHuQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/2knGbduFH_4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Greg-the-Architect</feedburner:origLink></entry>
  <entry>
    <title type="html">A Call for More EA Blogging</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/zCj4a-DZNPQ/A-Call-for-More-EA-Blogging" />
    <id>http://www.userinexperience.com/Blog/A-Call-for-More-EA-Blogging</id>
    <updated>2009-05-19T15:42:02.78</updated>
    <published>2007-07-18T11:07:45</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Saw a post this morning (via &lt;a href="http://duckdown.blogspot.com/"&gt;James McGovern&lt;/a&gt;) entitled&amp;nbsp;"&lt;a href="http://ingine.wordpress.com/2007/07/17/hello-world-untie-the-gardener/"&gt;Hello World! Untie the Gardener&lt;/a&gt;" by a blogger named&amp;nbsp;&lt;a href="http://ingine.wordpress.com/"&gt;ingine&lt;/a&gt;. It's a brief and basic call to action for more people to step out and get more ideas and dialogue around EA going. I concur with this call and am seconding it (or thirding or thirtying it). My primary motive for this blog is to get the ideas that float around&amp;nbsp;our teams and our organization out into the world and grind them out. The result will nearly always be a better set than when I started. Most recently for me, the topics and discussion around &lt;a href="http://www.userinexperience.com/2007/06/21/is-enterprise-architecture-declarative-or-imperative/"&gt;Declarative EA&lt;/a&gt; and &lt;a href="http://www.userinexperience.com/2007/06/10/the-great-buy-vs-build-debate-part-i/"&gt;Buy vs. Build&lt;/a&gt; have only refined and improved my ideas. So hear hear! Let's get more of this going.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When James &lt;a href="http://duckdown.blogspot.com/2007/07/links-for-2007-07-18.html"&gt;provided his link to this post&lt;/a&gt;, he asked &lt;a href="http://ingine.wordpress.com/"&gt;ingine&lt;/a&gt; to "...start the conversation by asking specific questions." I'm sure &lt;a href="http://ingine.wordpress.com/"&gt;ingine&lt;/a&gt; has questions or topics of his own, but I'd be happy to throw out some my random ideas and questions and see if we can grease the skids a bit:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;1) What are some proven&amp;nbsp;methods around iterative EA? We've all heard the chant of "&lt;a href="http://www.gartner.com"&gt;Future State-Current State-Gap Analysis-Migration Plan&lt;/a&gt;" enough to have it embedded in our souls, but how do we leverage these good ideas in a way that doesn't relegate EA to functioning as&amp;nbsp;a team of Binder Boys?&lt;/p&gt; &lt;p&gt;2) Folks like &lt;a href="http://blogs.msdn.com/smguest/archive/2006/10/06/Summary-of-SPARK-UX.aspx"&gt;Simon Guest&lt;/a&gt; with Microsoft (and many others), have started to collaborate with the &lt;a href="http://en.wikipedia.org/wiki/User_experience"&gt;User Experience&lt;/a&gt; community (The likes of&amp;nbsp;&lt;a href="http://www.louisrosenfeld.com/home/"&gt;Lou Rosenfeld&lt;/a&gt;, &lt;a href="http://findability.org/"&gt;Peter Moreville&lt;/a&gt;, &lt;a href="http://blog.jjg.net/"&gt;Jesse James Garret&lt;/a&gt;) for more interplay between Architecture and&amp;nbsp;UX. Is this part of a bigger trend of moving away from EA as process and into EA "for the people?" I, for one, would love to see that happen, but what does that mean for the process- and framework-heavy aspects of traditional EA (I'm looking at you mister &lt;a href="http://www.zifa.com/"&gt;Zachman&lt;/a&gt;)?&lt;/p&gt; &lt;p&gt;3) How does well-run EA best serve an organization first instead of worrying about controlling its decisions? On that note, how does well-run EA best serve its stakeholders first?&lt;/p&gt; &lt;p&gt;4) Is Microsoft on to something with this &lt;a href="http://msdn2.microsoft.com/en-us/office/aa905528.aspx#services"&gt;OBA&lt;/a&gt; thing? For that matter, are we really there with &lt;a href="http://en.wikipedia.org/wiki/Composite_applications"&gt;Composite Applications&lt;/a&gt;?&amp;nbsp;Personally, I see this very idea as an evolution&amp;nbsp;of&amp;nbsp;Enterprise Architectures which&amp;nbsp;serve the user by creating naturally productive applications, but what do others think?&lt;/p&gt; &lt;p&gt;5) How can an organization already in bed with a major software vendor more towards&amp;nbsp;welcoming&amp;nbsp;open source where it makes sense? What experiences have others had in this realm?&lt;/p&gt; &lt;p&gt;6) Is &lt;a href="http://en.wikipedia.org/wiki/Enterprise_content_management"&gt;ECM&lt;/a&gt; mature enough to be&amp;nbsp;of strategic value to most organizations, or does the &lt;a href="http://wordofpie.wordpress.com/2007/07/09/why-ecm-standards/"&gt;visible lack of standards&lt;/a&gt; and market&amp;nbsp;volatility mean that we aren't there yet?&lt;/p&gt; &lt;p&gt;7) Is it okay to have a list of random EA questions and not ask any about SOA?... crap.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I'll stop there for now, though more are bouncing around. Some of these are already in my blogging queue, but I'd love to hear from others on any and all of these. Let's get some dialogue going...&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=zCj4a-DZNPQ:_4V7khLzdEY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=zCj4a-DZNPQ:_4V7khLzdEY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=zCj4a-DZNPQ:_4V7khLzdEY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/zCj4a-DZNPQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/A-Call-for-More-EA-Blogging</feedburner:origLink></entry>
  <entry>
    <title type="html">EA - The Art of Declarative Constraints?</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/hCn3DVykD7U/EA-The-Art-of-Declarative-Constraints" />
    <id>http://www.userinexperience.com/Blog/EA-The-Art-of-Declarative-Constraints</id>
    <updated>2009-05-19T15:42:02.593</updated>
    <published>2007-07-02T15:07:12</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Last week, &lt;a href="http://www.biske.com"&gt;Todd Biske&lt;/a&gt; linked to my post,&amp;nbsp;"&lt;a href="http://www.userinexperience.com/2007/06/21/is-enterprise-architecture-declarative-or-imperative/"&gt;Is Enterprise Architecture Declarative or Imperative&lt;/a&gt;?" and added some of his thoughts in a post entitled "&lt;a href="http://www.biske.com/blog/?p=214"&gt;Transparency in Architecture&lt;/a&gt;."&amp;nbsp;In addition, &lt;a href="http://www.axisebusiness.com/adnano/"&gt;Adnan Masood&lt;/a&gt;&amp;nbsp;left a comment in the original post which made a similar point.&amp;nbsp;Their point:&amp;nbsp;Enterprise Architecture is declarative, but not always and&amp;nbsp;it's not that simple. &lt;a href="http://www.axisebusiness.com/adnano/"&gt;Adnan&lt;/a&gt; agreed that EA is declarative at its best, but mentioned that the "sync up" process I referred to between EA and Solution Architects will have some imperative qualities. Todd also agreed that EA is declarative, but&amp;nbsp;said "... I wouldn't go so far as to say that the path to execution falls to solution architects." Instead, Todd&amp;nbsp;said that EA should define both future state and some very coarse executable actions for achieving that future state.&amp;nbsp;A great point, and I totally agree. The idea of "increasing constraints" as Todd puts it, is a good way to describe the healthy tension at the EA/ SA handoff. Our VP of IT calls this "Freedom within a Framework,"&amp;nbsp;a term which I believe captures the essence of how EA can be declarative. We're not going to sit in your code reviews, but we do care how you are using Enterprise Information and upon which platforms you are delivering solutions to our customers. I heard &lt;a href="http://www.gartner.com/"&gt;Gartner&lt;/a&gt; Analyst Anne Lapkin once state that EA constrains IT for the good of the business. So, If EA is both the &lt;a href="http://blogs.ittoolbox.com/eai/leadership/archives/the-real-meaning-of-enterprise-architect-3336"&gt;Keepers of the Flame&lt;/a&gt; and the stewards of strategy, we have to care. And you, whomever you may be,&amp;nbsp;should demand that we care so you can be free to care about what you need to, be it well-run projects, well-crafted and innovative solutions, or a well-thought-of and profitable&amp;nbsp;IT organization.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The second part of &lt;a href="http://www.biske.com/blog/?p=214"&gt;Todd's post&lt;/a&gt;&amp;nbsp;discussed the topic of governance and how projects&amp;nbsp;constrained by EA should be transparent. While I like this idea far better than being pulled into a million meetings&amp;nbsp;(or, more importantly, making teams feel that they can't be trusted and must be looked after), that kind of transparency is&amp;nbsp;a tall order in most situations&amp;nbsp;I've been in, which Todd also states.&amp;nbsp;But I like this idea and can see its parallels to the concept of &lt;a href="http://www.agileadvice.com/archives/2005/05/information_rad.html"&gt;Information Radiators&lt;/a&gt; in agile software development. In the same way that I can wander into a war room or bullpen and find out basic and essential information about a project (backlog, burndown, etc), these "Architecture Radiators" could provide&amp;nbsp;me with the information I would need to asses the state of the architecture of the project and track its evolution over time.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;But that's just theory... what would such a thing look like? It would have to be both simple to maintain and useful. I'll have to think on this some more. In the meantime, does anyone have any ideas or examples from projects where these types of Information Radiators existed?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:087680ec-5f0a-4c47-9747-7c0ccc063686" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Solution%20Architecture" rel="tag"&gt;Solution Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Agile" rel="tag"&gt;Agile&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Information%20Radiators" rel="tag"&gt;Information Radiators&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=hCn3DVykD7U:rjS144Ht18E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=hCn3DVykD7U:rjS144Ht18E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=hCn3DVykD7U:rjS144Ht18E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/hCn3DVykD7U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/EA-The-Art-of-Declarative-Constraints</feedburner:origLink></entry>
  <entry>
    <title type="html">The Great Buy Vs. Build Debate - Part IV</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/1AKt0vE_IIQ/The-Great-Buy-Vs-Build-Debate-Part-IV" />
    <id>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-IV</id>
    <updated>2009-05-19T15:42:02.393</updated>
    <published>2007-06-29T05:06:42</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Ok, so enough of all of the talk about the nuances of this principle. I've added so much content to its explanation that if I were to append these last three posts to the original explanation, no one would ever read it. So as I wrap this series of posts up, I'm going to sign off with some guidance around these principles. Concrete statements that may help&amp;nbsp;to avoid the three confusion points I covered when I introduced this series. So here they are, with links back to the original post. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Principle:&lt;/strong&gt; Prefer Packaged Solutions&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Guidance:&lt;/strong&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;font color="#656564"&gt;&lt;a href="http://www.userinexperience.com/2007/06/10/the-great-buy-vs-build-debate-part-i/"&gt;Pursue a mixture of purchase, configuration and construction for a given tool or&amp;nbsp;solution&lt;/a&gt;&lt;/font&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.userinexperience.com/?p=75"&gt;Rely on configuration where possible and building where unique and critical&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.userinexperience.com/2007/06/28/the-great-buy-vs-build-debate-part-iii/"&gt;Buy/ reuse&amp;nbsp;as much&amp;nbsp;and many times as&amp;nbsp;you can, then build the rest&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Putting it another way, &lt;a href="http://leodesousa.ca"&gt;Leo De Sousa&lt;/a&gt; shares some &lt;a href="http://leodesousa.ca/?p=11"&gt;principles of his own&lt;/a&gt; on this topic. He's much more succinct than I am and they are right on the money.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Do these sum it up? If not, feel free to comment and provide some of your own thoughts.&lt;/p&gt; &lt;p&gt;&lt;font color="#7c7c7c"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:566e14ff-f15b-4d52-bc2c-1eb85d92407e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Compassion" rel="tag"&gt;Compassion&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Principles" rel="tag"&gt;Principles&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=1AKt0vE_IIQ:dSXxcKvfLjE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=1AKt0vE_IIQ:dSXxcKvfLjE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=1AKt0vE_IIQ:dSXxcKvfLjE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/1AKt0vE_IIQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-IV</feedburner:origLink></entry>
  <entry>
    <title type="html">The Great Buy Vs. Build Debate - Part III</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/tK9cmhKgFB0/The-Great-Buy-Vs-Build-Debate-Part-III" />
    <id>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-III</id>
    <updated>2009-05-19T15:42:01.93</updated>
    <published>2007-06-28T08:06:23</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So far, I have discussed how the "Buy vs. Build" principle is designed to encourage teams to &lt;a href="http://www.userinexperience.com/2007/06/10/the-great-buy-vs-build-debate-part-i/"&gt;choose solutions based on their Purchase, Configure and Build mix&lt;/a&gt;, and to help the customer understand how &lt;a href="http://www.userinexperience.com/?p=75"&gt;our purchase decisions affect what requirements can be met and how&lt;/a&gt;. In this next section, I'll discuss how the "Buy vs. Build" decision is a continual and iterative&amp;nbsp;assessment as opposed to a one-time effort.&lt;/p&gt; &lt;h3&gt;More than one Buy Vs. Build Decision Exists&lt;/h3&gt; &lt;p&gt;Often the "Prefer Packaged Solutions" principle is assumed to mean that one should be on the lookout for a single software package that&amp;nbsp;provides a close fit to our customer need. We then find the best thing, buy it and&amp;nbsp;we're on our way. But in reality, most IT projects, at least at &lt;a href="http://www.compassion.com/"&gt;Compassion&lt;/a&gt;, are a bit more complex than that. The problem may walk like CRM, and it may talk like CRM, but oh, they need Digital Asset Management as well.&amp;nbsp;On the other hand, buying a full-stack package might be overkill when the customer just wants to track conversions from the web. Buying a single packaged solution often just doesn't cut it (no matter what the ECM vendors tell you about their shiny hammer). As a&amp;nbsp;result, I believe that the&amp;nbsp;principle is best applied when we buy as much as we can (but not too much), and build the rest. Let's consider two scenarios...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Horizontal and Vertical Purchases&amp;nbsp;&amp;nbsp;&lt;/h2&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Sometimes, teams find themselves in a situation where the best purchased fit for their business need includes laying a piece of infrastructure which has yet to be purchased. If that happens (and when it rains it tends to pour), said team now has the pleasure of laying some infrastructure. I've heard this referred to "taxing the project teams" and I will say that it's a known pain point that we're trying to fix. Let's hope we do so before someone breaks out the &lt;a href="http://en.wikipedia.org/wiki/Boston_Tea_Party"&gt;tea&lt;/a&gt;. However, even if said infrastructure were already in place, a project team "buys into it" when they choose to invest their vertical and their goodwill into that platform. Thus, a purchase decision is still being made, even when the purchase&amp;nbsp;is in the form of reuse (which is the best buy decision of all).&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Were we to follow the "letter of the law," we could say that we've purchased something for our project and go on about our business. &lt;a href="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartIII_AC31/Verticalvs.Horizontal_3.png" atomicselection="true"&gt;&lt;img height="211" alt="Vertical vs. Horizontal" src="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartIII_AC31/Verticalvs.Horizontal_thumb_3.png" width="350" align="left" border="0"/&gt;&lt;/a&gt;But this leaves out the vertical business need... your real purpose for being a project&amp;nbsp; in the first place. If we simply check the box that says we've bought something and move on, we miss out on an opportunity to explore reusable and packaged options for the vertical (From ISV plug-ins on a platform like MOSS to&amp;nbsp;domain-specific guidance and recipes built&amp;nbsp;on top of&amp;nbsp;a &lt;a href="http://en.wikipedia.org/wiki/Software_factory"&gt;Software Factory&lt;/a&gt;). Granted, verticals tend to be domain-specific and a bit harder to pin on a tool, but as I said in my last two posts, I believe that we have an obligation to asses&amp;nbsp;our purchase and configure option against the customer's requirements (along with them) to determine if we really can find a fit on their vertical. I think that software is moving more and more up the vertical in any case and am finding that we have more and more reasonable purchase options at our disposal.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Assembling a Package&lt;/h2&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The other scenario, which happens less likely now but will become more prevalent over time, is when requirements dictate a solution that&amp;nbsp;can't be met with a single purchase, but for which several partial solutions are&amp;nbsp;available (all over the &lt;a href="http://www.userinexperience.com/2007/06/10/the-great-buy-vs-build-debate-part-i/"&gt;PCB Continuum&lt;/a&gt;). It's in these cases where maximizing what you can build has the most power.&amp;nbsp;Here's an example: we are currently&amp;nbsp;working on an effort to provide an "Offline" capability&amp;nbsp;for a select number of business critical applications&amp;nbsp;so that they can perform critical work when&amp;nbsp;they lose connectivity to the WAN. This solution has some typical requirements, like local storage and synchronization, but it also has some requirements around remote workflow and collaboration which complicate the issue a bit. I have spent some time this week assessing a series of tools which could help meet these needs and have found, as expected, that there is&amp;nbsp;not a vendor out there selling "Compassion's Offline Framework 1.0." Instead, I think that the solution chosen will end up being a mix of a few packages, some configuration and some construction by a development team (the sync engine seems a likely candidate).&amp;nbsp;&lt;a href="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartIII_AC31/PurchaseDecisionGraph.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="248" alt="Purchase Decision Graph" src="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartIII_AC31/PurchaseDecisionGraph_thumb.png" width="400" align="left" border="0"/&gt;&lt;/a&gt; To help illustrate this to the team involved in gathering requirements, I created the chart to the left (you can click it&amp;nbsp;to enlarge)&amp;nbsp;which illustrates each of the 15 options on the draft list (within their area of primary functionality) and placed them on the graph in such a way to illustrate how much of a "buy" we are getting and how much that option meets our requirements. The point I hope to illustrate to those involved is that there is no single package for this problem, but that we don't need to build something from scratch either. As a happy medium, I believe that we can compose a solution from some key complementary technologies on this graph.&amp;nbsp;We would start by going off on a spike or two&amp;nbsp;and really vetting some of these out, of course, but I think that we can come up with a framework that can be leveraged by all of our current and future applications needing an offline capability.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In both scenarios, the common thread is that preferring packaged solutions means we prefer to buy as much as we can, then we build the rest. And the common thread through all three of these posts is that "Preferring Packaged Solutions" means&amp;nbsp;that as stewards of the &lt;a href="http://www.compassion.com/about/missionstatement.htm"&gt;mission&lt;/a&gt; of &lt;a href="http://www.compassion.com/default.htm"&gt;Compassion International&lt;/a&gt;, we have a responsibility to use our resources (money, people, talent, etc) wisely. This doesn't mean we don't build, it just means we target building to those areas that are unique and important to our customers. We have &lt;a href="http://freqken.net/"&gt;very talented developers&lt;/a&gt;, so we have the resources to build. The problem is, they're overloaded and they end up being supplemented with contractors who often get to do the "fun stuff" that they ought to be doing. If we apply this principle well (and I think we do oftentimes), those guys and gals will get to build where it counts and really make a difference in the solutions we deliver to our customers.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;One&amp;nbsp;more brief post to recap and sum up, and then on to other vistas...&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/?p=73"&gt;The Great Buy Vs. Build Debate - Part I&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/?p=75"&gt;The Great Buy Vs. Build Debate - Part II&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:407afb14-1218-4c78-9ea0-0cb6f29907c3" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Compassion" rel="tag"&gt;Compassion&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Principles" rel="tag"&gt;Principles&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MOSS%202007" rel="tag"&gt;MOSS 2007&lt;/a&gt;, &lt;a href="http://technorati.com/tags/WSS%203.0" rel="tag"&gt;WSS 3.0&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Dojo" rel="tag"&gt;Dojo&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Adobe%20AIR" rel="tag"&gt;Adobe AIR&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Smart%20Client%20Software%20Factory" rel="tag"&gt;Smart Client Software Factory&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Groove" rel="tag"&gt;Groove&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Colligo%20Contributor" rel="tag"&gt;Colligo Contributor&lt;/a&gt;, &lt;a href="http://technorati.com/tags/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SQLite" rel="tag"&gt;SQLite&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Google%20Gears" rel="tag"&gt;Google Gears&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=tK9cmhKgFB0:vdeTjQsk1EY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=tK9cmhKgFB0:vdeTjQsk1EY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=tK9cmhKgFB0:vdeTjQsk1EY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/tK9cmhKgFB0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-III</feedburner:origLink></entry>
  <entry>
    <title type="html">Is Enterprise Architecture Declarative or Imperative?</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/QVzHBHlXsPA/Is-Enterprise-Architecture-Declarative-or-Imperative" />
    <id>http://www.userinexperience.com/Blog/Is-Enterprise-Architecture-Declarative-or-Imperative</id>
    <updated>2009-05-19T15:42:01.197</updated>
    <published>2007-06-21T11:06:03</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When I was working on &lt;a href="http://www.userinexperience.com/?p=75"&gt;The Great Buy vs. Build Debate - Part II&lt;/a&gt; last week, I briefly mentioned that the&amp;nbsp;configuration of a purchased application often takes the form of &lt;a href="http://en.wikipedia.org/wiki/Declarative_programming"&gt;declarative programming&lt;/a&gt;, where a developer instructs a system in what to do, but leaves it to the system to decide how best to implement that instruction. Contrast this with &lt;a href="http://en.wikipedia.org/wiki/Imperative_programming"&gt;imperative programming&lt;/a&gt;, where the system is told both the what and the how.&amp;nbsp;In a moment of rabbit-trailing, I started to think about these terms as they relate to human systems. Specifically, I wondered: Does&amp;nbsp;Enterprise Architecture, as an organizational function, serve better by interacting declaratively&amp;nbsp;with implementing teams, or should said function be imperative in nature? Personally, I&amp;nbsp;think that EA is meant to be declarative and should interact regularly with a group of implementing architects (we refer to&amp;nbsp;them as Solution Architects) who "sync up" with these declarative visions and translate them into execution.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;However, I think that in order for an EA group to truly be declarative in its interactions with&amp;nbsp;other teams, there are a few things that have to be in place:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;- An official and accountable group of SA's;&lt;/p&gt; &lt;p&gt;- A high degree of trust both within and between the EA and SA groups;&lt;/p&gt; &lt;p&gt;- Clarity of vision/ strategy and communication from EA to SA's;&lt;/p&gt; &lt;p&gt;- A healthy and consistent feedback loop from SA's to EA.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I think that without these (and others, I am sure), the EA function is almost forced to have two feet in both camps, which is frustrating to both the EA team and the SA group, be it "official" or not.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;But forget about my opinion: What do you think? Is EA truly meant to be declarative? What else belongs on the list of EA-SA collaboration prerequisites? I'd like to elaborate on this discussion more in future posts and would love some dialogue and feedback.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:6ea9ff28-6171-4ec9-b7aa-6e26b40e9fa3" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Enterprise%20Architecture" rel="tag"&gt;Enterprise Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Solution%20Architecture" rel="tag"&gt;Solution Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Business" rel="tag"&gt;Business&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=QVzHBHlXsPA:jlsUdo5XaGo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=QVzHBHlXsPA:jlsUdo5XaGo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=QVzHBHlXsPA:jlsUdo5XaGo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/QVzHBHlXsPA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Is-Enterprise-Architecture-Declarative-or-Imperative</feedburner:origLink></entry>
  <entry>
    <title type="html">The Great Buy Vs. Build Debate - Part II</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/IgAL098_T4Y/The-Great-Buy-Vs-Build-Debate-Part-II" />
    <id>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-II</id>
    <updated>2009-05-19T15:42:01.003</updated>
    <published>2007-06-16T11:06:20</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;... software solutions today simply cost too much to build and maintain for the end customer, and we now live in a market where the supply of quality software cannot meet the demands. In order to achieve that, several key pragmatic things must happen, compromises if you like, to meet that demand. Primarily, most software requirements need to start being standardised, and custom software requirements become the exception to the rule - not the norm.&lt;/p&gt; &lt;p&gt;- Jezz Santos,&amp;nbsp; &lt;a href="http://www.infoq.com/articles/santos-software-factories"&gt;InfoQ Interview on Software Factories&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;At the end of my &lt;a href="http://www.userinexperience.com/?p=73"&gt;previous post&lt;/a&gt;, I stated that "Prefer Packaged Solutions," or the "Buy vs. Build Decision," is really about pinpointing a project's Purchase, Configure and Build mix on the &lt;acronym title="Puchase, Configure, Build"&gt;PCB &lt;/acronym&gt;Continuum. In this post, I'll discuss&amp;nbsp;those&amp;nbsp;three&amp;nbsp;aspects as they relate to satisfying customer requirements&amp;nbsp;(via the Requirements Continuum) and what&amp;nbsp;building upon each aspect&amp;nbsp;means both to our projects and our customers. &amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;But before I do, an editorial note: I stated in my last post that this entry was going to be about how both IT and our customers don't fully understand the implications of this principle and I&amp;nbsp;have since realized that that's not entirely true and comes off a bit negative to both parties. The real key here is not whether or not we or our customers understand hidden implications of this principle, but that as IT,&amp;nbsp;we communicate with them about what it means to purchase,&amp;nbsp;configure, then build to create a solution that meets their business needs.&amp;nbsp;On with the show...&lt;/p&gt; &lt;h3&gt;Customer&amp;nbsp;Implications of a Buy vs. Build Evaluation&lt;/h3&gt; &lt;p&gt;Chances are, you've heard about the &lt;a href="http://en.wikipedia.org/wiki/80/20_rule"&gt;80-20 Rule&lt;/a&gt; (or Pareto Principle) enough times to be sick of it. And while I sympathize, it's overuse is, I believe, a function of its power and applicability to most systems. Broken down into abstract cause and effect, the 80-20 rule states that 80% of the effects in a given domain are a result of 20% of the causes. According to the &lt;a href="http://foldoc.org/"&gt;Free On-Line Dictionary of Computing&lt;/a&gt;, the 80-20 Rule is the&amp;nbsp;"... program-design version of the law of diminishing returns. The 80/20 rule says that roughly 80% of the problem can be solved with 20% of the effort that it would take to solve the whole problem" (see &lt;a title="http://foldoc.org/?eighty-twenty+rule" href="http://foldoc.org/?eighty-twenty+rule"&gt;http://foldoc.org/?eighty-twenty+rule&lt;/a&gt;).&amp;nbsp;Since "effort" also means "cost"&amp;nbsp;in the case of software, I like to extend this rule to say that a customer can obtain 80% of their desired functionality at 20% of the total cost. The real rub though is:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Where the 80% lies along the continuum (in Configuration or Build);  &lt;/li&gt;&lt;li&gt;and, if 80% isn't good enough, where to stop;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;So, as we architect a solution&amp;nbsp;for our customer, how do we move to the right spot on the continuum?&amp;nbsp;&lt;/p&gt; &lt;h2&gt;&lt;font color="#656564"&gt;Buying a Packaged Solution&lt;/font&gt;&lt;/h2&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;It all starts with purchasing something. That something may be large or small, expensive or free. It may be done more than once (as I'll cover in my next post), but you're always "buying something." The key, though, is buying the biggest thing you can without wasting the customer's money. For example, if the customer wants basic document library and list services in their app, you probably&amp;nbsp;shouldn't buy &lt;a href="http://www.documentum.com/"&gt;Documentum&lt;/a&gt;. On the other end, you shouldn't custom build a package that provides these services&amp;nbsp;if &lt;a href="http://www.microsoft.com/technet/windowsserver/sharepoint/default.mspx"&gt;Windows SharePoint Services&lt;/a&gt; is sitting on your servers. A bit simplistic, but you get the point.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Once you've determined the correct solution to buy, you can determine its ability to meet customer requirements out-of-the-box (OOB). By that I mean:&amp;nbsp;if you installed the application and made it available to the customer with no changes to the app whatsoever, what percentage of their requirements would be met? Often this is a small percentage&amp;nbsp;and, in many cases, the things that are met are requirements IT usually&amp;nbsp;adds on behalf of the&amp;nbsp;customer, like&amp;nbsp;role-based user administration,&amp;nbsp;ability to recognize AD accounts, security trimming and the like.&amp;nbsp;However, requirements like a consistent Look and Feel (UI) and a baseline database schema upon which the application is built also figure into the calculation&amp;nbsp;as these are things that tend to&amp;nbsp;take quite a while when building an application from scratch. Understanding exactly where &lt;a href="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartII_1255A/BuyOnly.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="147" alt="Buy Only" src="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartII_1255A/BuyOnly_thumb.png" width="350" align="left" border="0"/&gt;&lt;/a&gt;the &lt;acronym title="Out of the Box"&gt;OOB &lt;/acronym&gt;solution results in&amp;nbsp;met requirements is&amp;nbsp;essential to knowing the final mix of configuration and building because it&amp;nbsp;establishes the starting line on the Requirements Continuum, as in the illustration on the left. My placement is probably a bit high for most bought solutions, but the intent is to illustrate that there will always be a gap between the requirements met with the purchase, the those still remaining. I covered this in more detail in my &lt;a href="http://www.userinexperience.com/?p=73"&gt;last post&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here's where facilitating customer understanding of this principle comes in.&amp;nbsp;After&amp;nbsp;determining where the purchase&amp;nbsp;lies on the requirements continuum,&amp;nbsp;we've reached&amp;nbsp;an important communication touch-point with the customer. While it's probably not necessary&amp;nbsp;in all cases to give the customer a complete breakdown of what needs are already met (though we may want or need&amp;nbsp;to), the key here is simply letting the customer know that there will be extra cost involved in configuring or building on top of this solution. At that point, it's time to determine how much configuring and how much building (if any) needs to be done.&lt;/p&gt; &lt;h2&gt;&lt;font color="#656564"&gt;Configuring a Packaged Solution&lt;/font&gt;&lt;/h2&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Since there is no such thing as a&amp;nbsp;bought solution, you'll always find yourself&amp;nbsp;along this portion of the Requirements Continuum.&amp;nbsp;Even packaged solutions targeted to meet a specific business need like &lt;acronym title="Customer Relationship Management"&gt;CRM&lt;/acronym&gt;, &lt;acronym title="Enterprise Resource Planning"&gt;ERP&lt;/acronym&gt; or &lt;acronym title="Enterprise Content Management"&gt;ECM&lt;/acronym&gt; cannot align to a specific organization because each organization performs the processes that drive those applications in distinctive ways. In some cases, these distinctions are small, as in&amp;nbsp;"we prefer to&amp;nbsp;use the term&amp;nbsp;'prospect' instead of 'lead' in our CRM systems." Sometimes they are a bit broader, as in "The lead form should capture lead source and some freeform textbox for entry of interests." In other cases, the distinctions&amp;nbsp;are large, as in "When a content producer publishes a document, it should be approved in sequence by 4 separate individuals." However, in flexible systems (which should be&amp;nbsp;part of&amp;nbsp;our evaluation), these three requirements can often be met&amp;nbsp;by configuring the existing system to provide this functionality. A mentor of mine often referred this to as &lt;a href="http://en.wikipedia.org/wiki/Declarative_programming"&gt;Declarative Programming&lt;/a&gt;, because implementation of the requirement manifests itself by telling the underlying system what to do and not how to do it. Here's an example: In &lt;a href="http://www.microsoft.com/dynamics/crm/default.mspx"&gt;Microsoft Dynamics CRM 3.0&lt;/a&gt;, the modifications to the UI for lead entry form&amp;nbsp;mentioned in the second requirement would be implemented by declaratively adding these fields to the form through the tool itself, as opposed to imperatively adding this information directly&amp;nbsp;in the ASPX form, then wiring it to the database.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;This product-supported configuration, &lt;a href="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartII_1255A/BuyPlusConfigure.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="147" alt="Buy Plus Configure" src="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartII_1255A/BuyPlusConfigure_thumb.png" width="350" border="0"/&gt;&lt;/a&gt;as&amp;nbsp;illustrated in the updated Requirements Continuum on the left, is where the bought solution is extended, based on customer requirements, until the upper-limit is reached, whether that be 80% of the overall requirements or not.&amp;nbsp;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;At this point, the second customer touch point comes into play. The requirements remaining after purchase and configuration then becomes a list of extra functionality that might be a bit more costly than what has been accomplished so far. However, if the customer needs that functionality and is willing to pay,&amp;nbsp;it's time&amp;nbsp;we do some building.&lt;/p&gt; &lt;h2&gt;&lt;font color="#656564"&gt;Building to Extend a Packaged Solution&lt;/font&gt;&lt;/h2&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you've reached this point, your customer has expressed a desire to obtain functionality that is only available by extending the solution with custom-built code or extensions. Harkening back to the 80-20 Rule, it's important for the customer to understand that these requirements are typically more expensive to provide than&amp;nbsp;those that were met through purchase and configuration. Thus, this is where the final 20% of desired functionality starts to make up 80% of the total cost of the solution.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;That's not to say one should never build. In fact, it may often be necessary to build at least something for the customer that they can't get any other way, but which they need.&amp;nbsp;This is why our the "Prefer Packaged Solutions" principle, states that is acceptable to build "critical &lt;a href="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartII_1255A/ConfigurePlusBuild.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="148" alt="Configure Plus Build" src="http://www.userinexperience.com/wp-images/post-images/TheGreatBuyVs.BuildDebatePartII_1255A/ConfigurePlusBuild_thumb.png" width="350" align="left" border="0"/&gt;&lt;/a&gt;capabilities which cannot be satisfied by a purchased application." (see &lt;a href="http://www.userinexperience.com/?p=73"&gt;Part I&lt;/a&gt; for the full text)&amp;nbsp;Thus, here we should guide the customer to select that functionality which is considered "critical" to the solution being provided. Oftentimes, these things are not only critical, but also unique to the problem domain or organization, as illustrated in the complete requirements continuum depicted above. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The challenge here, of course, is helping the customer understand the fine line between "must have" or critical and "nice to have" requirements.&amp;nbsp;It's often vital to have workflow that works, but it may not always be necessary to have fine-grained control over the placement of form fields. However, uniqueness means that anything is possible at times.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;To this point, we've covered the true meaning of the "Buy vs. Build Decision" (via the PCB Continuum) and&amp;nbsp;the customer implications of that decision&amp;nbsp;(via the Requirements Continuum). In the third post on this topic, I'll discuss the reality of multiple "Buy vs. Build Decisions" in a given problem space.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.userinexperience.com/?p=73"&gt;The Great Buy Vs. Build Debate - Part I&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:22cb62fa-d511-4122-bf1d-560c70970316" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Compassion" rel="tag"&gt;Compassion&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Principles" rel="tag"&gt;Principles&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Software%20Factories" rel="tag"&gt;Software Factories&lt;/a&gt;, &lt;a href="http://technorati.com/tags/CRM%203.0" rel="tag"&gt;CRM 3.0&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=IgAL098_T4Y:jYuyc02bIqY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=IgAL098_T4Y:jYuyc02bIqY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=IgAL098_T4Y:jYuyc02bIqY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/IgAL098_T4Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-II</feedburner:origLink></entry>
  <entry>
    <title type="html">Here's To Number Four!</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/gIDcGQ3O0Q0/Heres-To-Number-Four" />
    <id>http://www.userinexperience.com/Blog/Heres-To-Number-Four</id>
    <updated>2009-05-19T15:42:00.84</updated>
    <published>2007-06-15T07:06:24</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Those of you who know me, know that I grew up in San Antonio and am a life-long Spurs fan. Needless to say, I am quite happy this morning. Here's an image to ponder:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.poundingtherock.com" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="Tim and Tony celebrate another" src="http://www.userinexperience.com/wp-images/post-images/HeresToNumberFour_7993/TimmyandTonyjpg_3.jpg" width="509" border="0"/&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:1868684a-9b11-40df-8094-e0e405e0960b" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Spurs" rel="tag"&gt;Spurs&lt;/a&gt;, &lt;a href="http://technorati.com/tags/NBA" rel="tag"&gt;NBA&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=gIDcGQ3O0Q0:Thh2PKyep7Y:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=gIDcGQ3O0Q0:Thh2PKyep7Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=gIDcGQ3O0Q0:Thh2PKyep7Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/gIDcGQ3O0Q0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Heres-To-Number-Four</feedburner:origLink></entry>
  <entry>
    <title type="html">The Great Buy Vs. Build Debate - Part I</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/r_MZY1qk3jU/The-Great-Buy-Vs-Build-Debate-Part-I" />
    <id>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-I</id>
    <updated>2009-05-19T15:42:00.683</updated>
    <published>2007-06-10T15:06:10</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The team I work on at Compassion created a document a few years back called &lt;a href="http://www.compassion.com"&gt;Compassion's&lt;/a&gt; Corporate Architecture Principles, or CAP. This document consists of a series of high-level principles meant to encourage IT development teams to consider the enterprise when they develop a solution to meet their given business need. Our team, the Architecture Office, or AO, reviews each project during elaboration (most of the time) and evaluates said project against these principles to determine if it passes muster. One of the most oft-discussed principles these days is "&lt;strong&gt;Prefer Packaged Solutions." &lt;/strong&gt;Here is the statement:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://www.compassion.com/"&gt;Compassion&lt;/a&gt; should &lt;i&gt;"build"&lt;/i&gt; only those applications that cannot be purchased or that can be shown to offer critical capabilities that cannot be satisfied by a purchased application.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Even though these principles were adopted before I joined the AO, I like this one because it is intended to encourage Compassion IT and its development teams to pursue reuse at the highest levels possible (i.e. entire packages, services and modules rather than simply "code reuse"). If possible, teams are encouraged to buy an application (or set of applications)&amp;nbsp;which meet the business need of their customer. This statement is clear and even includes the criteria in which&amp;nbsp;building is acceptable ("critical capabilities which cannot be satisfied by a purchased application"). Rhetorically, we refer to this principle as the "Buy vs. Build Decision."&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Call me a biased architect with visions of &lt;a href="http://en.wikipedia.org/wiki/Composite_applications"&gt;Composite Applications&lt;/a&gt; running through his head, but I think that this principle is one of the most important we have.&amp;nbsp;However,&amp;nbsp;this principle is often minimized, misstated and mostly misunderstood,&amp;nbsp;and I think that happens&amp;nbsp;for &amp;nbsp;several reasons: first, there is no such thing as a pure "buy" solution; second, both&amp;nbsp;IT and&amp;nbsp;its customers don't fully realize the implications of this principle; and third, most IT teams are faced with more than one Buy vs. Build Decision. I'll elaborate on the first in this post and will cover the second and third in subsequent posts.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;&lt;font color="#656564"&gt;No Such Thing as a pure "Buy" Solution&lt;/font&gt;&lt;/h3&gt; &lt;p&gt;When considering the "Buy vs. Build" principle, both managers and customers tend to get the idea that they are buying a met business need once the check is signed, when this is hardly ever the case.&amp;nbsp;Instead,&amp;nbsp;purchased solutions usually&amp;nbsp;must be&amp;nbsp;configured to meet the business need (skinning, adding modules, populating data, etc.), enhanced via custom code or other &lt;a href="http://www.userinexperience.com/wp-images/post-images/BuyVs.Build_C5B0/BuyBuildContinuum.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="112" alt="BuyBuild Continuum" src="http://www.userinexperience.com/wp-images/post-images/BuyVs.Build_C5B0/BuyBuildContinuum_thumb.png" width="350" align="right" border="0"/&gt;&lt;/a&gt; custom&amp;nbsp;development, or both. I refer to this as the Purchase-Configure-Build (PCB) Continuum, which is pictured on the left. Most of the time, the closest you'll get to a bought solution is one you purchase, then spend additional money configuring for the customer (This means that the purchase price is not the final price, by the way). The no-mans land is the 100% build, which is today's age of frameworks like .NET and Java pretty much isn't done by anyone's definition. Between the two is a combination of purchasing, configuration and building that results in a met business need. Let's look at an example in &lt;a href="http://office.microsoft.com/en-us/sharepointserver/FX100492001033.aspx"&gt;Microsoft Office SharePoint Server 2007&lt;/a&gt; (MOSS) and &lt;a href="http://www.microsoft.com/technet/windowsserver/sharepoint/default.mspx"&gt;Windows SharePoint Services 3.0&lt;/a&gt; (WSS).&amp;nbsp;WSS 3.0 is a site-provisioning engine which provides basic content and document management services to users via SharePoint sites. WSS is also a development platform&amp;nbsp;upon which developers can configure and construct solutions using documents and lists, WebParts and Workflows that leverage &lt;a href="http://wf.netfx3.com/"&gt;Windows Workflow Foundation&lt;/a&gt; (WF). MOSS 2007 sits on top of WSS and provides a series of value-added extensions to WSS like site federation, search, Forms Services, out of the box Workflows, etc.&amp;nbsp;The image below illustrates where each of these lands on the&amp;nbsp;&lt;acronym title="Purchase-Configure-Build"&gt;PCB &lt;/acronym&gt;Continuum. Obviously, WSS by itself can be leveraged and extended to meet&amp;nbsp;&lt;a href="http://www.userinexperience.com/wp-images/post-images/BuyVs.Build_C5B0/MOSSandWSSBuyBZuild.png" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="161" alt="MOSS and WSS Buy-BZuild" src="http://www.userinexperience.com/wp-images/post-images/BuyVs.Build_C5B0/MOSSandWSSBuyBZuild_thumb.png" width="350" align="left" border="0"/&gt;&lt;/a&gt; a business need, but doing so often requires plenty of configuration, development and administration.&amp;nbsp;A tool like MOSS is designed to minimize the cost of those customizations by providing extra services which IT may leverage, thus it sits more on the buy side of the continuum. But it's not all the way on the buy side, again because no bought solution can ever completely meet a customer's business need.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Because a continuum exists between the purchase and construction of a given solution, it's never so cut and dry that we can simply check a box and say that we're buying this time, or not and say that the customer's needs are too unique. The Buy vs. Build Decision is oftentimes a mix of what can be purchased for a customer (i.e. WSS for web-site hosting and basic collaboration) and what must be built in order to satisfy their business needs (i.e. Custom approval workflows) and it's the job of the AO and the Governance process to ensure that an appropriate mix is pursued. We'll see more on the complexity of that decision and its implications in the next two parts.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:26095a0c-f9b7-467c-b2fe-a628b997b5cf" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Compassion" rel="tag"&gt;Compassion&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Principles" rel="tag"&gt;Principles&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MOSS%202007" rel="tag"&gt;MOSS 2007&lt;/a&gt;, &lt;a href="http://technorati.com/tags/WSS%203.0" rel="tag"&gt;WSS 3.0&lt;/a&gt;&lt;/div&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=r_MZY1qk3jU:oVrcv7Xb4P4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=r_MZY1qk3jU:oVrcv7Xb4P4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=r_MZY1qk3jU:oVrcv7Xb4P4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/r_MZY1qk3jU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-Great-Buy-Vs-Build-Debate-Part-I</feedburner:origLink></entry>
  <entry>
    <title type="html">Forward Pass Redux 2006</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/5-AhheuXlwM/Forward-Pass-Redux-2006" />
    <id>http://www.userinexperience.com/Blog/Forward-Pass-Redux-2006</id>
    <updated>2009-05-19T15:42:00.457</updated>
    <published>2006-09-05T08:09:41</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;&lt;a href="http://www.livescience.com/history/060901_football_pass.html"&gt;100 years ago today&lt;/a&gt;, the forward pass was "invented" in football. It was less than a year from&amp;nbsp;first use to when the forward pass was added to the football rulebook.&lt;/p&gt; &lt;p&gt;This got me thinking. What would happen if the forward pass were invented today?&lt;/p&gt; &lt;p&gt;Some ideas:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;ESPN.com would unleash articles from their masters with opinions on either side of the argument. &lt;a href="http://sports.espn.go.com/keyword/search?searchString=len_pasquarelli&amp;amp;rT=sports"&gt;Len Pasquarelli&lt;/a&gt; would probably claim that the forward pass dilutes the purity of the game and should be sqelched immediately. &lt;a href="http://www.markschlereth.com/"&gt;Mark Schlereth&lt;/a&gt; would claim that America needs to wake up and recognize that Football is a business and if the business needs to evolve to attract fans, it should be allowed to do so.&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://sports.espn.go.com/keyword/search?searchString=Bill_Simmons&amp;amp;source=l_navbar&amp;amp;rT=sports"&gt;Bill Simmons&lt;/a&gt; would, of course, &lt;a href="http://sports.espn.go.com/espn/page2/story?page=simmons/060901"&gt;weigh-in in some humorous way&lt;/a&gt; (that manages to cull from 80's pop culture, music and movies) and generate a ton of fan mail from smarmy frat boys who engage in textual one-upsmanship by emailing questions like:&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;Hey Bill,&lt;/p&gt; &lt;p&gt;Is it me, or are leather helmets a 10 on the &lt;a href="http://espn.go.com/page2/movies/s/simmons/020830.html"&gt;Unintentional Comedy Scale&lt;/a&gt;? Also, I'd like to submit Jack Schneider as a member of the &lt;a href="http://http://sports.espn.go.com/espn/print?id=1193711&amp;amp;type=package"&gt;Ewing Theory&lt;/a&gt; team. I mean, he couldn't catch a forward pass if the ball was a &lt;a href="http://www.badfads.com/pages/collectibles/kooshball.html"&gt;Koosh&lt;/a&gt; and was lobbed underhanded!&lt;/p&gt; &lt;p&gt;More Cowbell,&lt;/p&gt; &lt;p&gt;Pete in Yonkers&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;How about in the world of politics. Of course, the politicians can't help but get involved:&lt;/p&gt; &lt;ul&gt; &lt;p&gt;&lt;/p&gt; &lt;li&gt;Democrats would claim that the forward pass was a ploy by Republicans to divert attention from&amp;nbsp;the war in Iraq during mid-term elections. Then they would question whether the forward pass is a sign that steroids are a problem in football and organize commitees to investigate the possibility of government regulation of the sport.&lt;/li&gt; &lt;li&gt;&lt;/li&gt; &lt;li&gt;Meanwhile, Republicans would claim that the forward pass is the &lt;a href="http://news.google.com/news?hs=0bH&amp;amp;hl=en&amp;amp;lr=&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;q=%22Work+of+Al+Qaeda%22&amp;amp;btnG=Search&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;sa=N&amp;amp;tab=wn"&gt;work of Al-Qaeda&lt;/a&gt; and an attempt by international terrorists to attack us by changing our way of life. A vote for the Republican party is a vote against &lt;a href="http://en.wikipedia.org/wiki/Al_Qaeda"&gt;Al Qaeda&lt;/a&gt;! &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Of course, the forward pass would never survive the media frenzy, Bradbury Robinson, the offender who dared to throw the pass would be demonized (along with his coach, &lt;a href="http://us.rd.yahoo.com/dailynews/space/sc_space/storytext/100yearsagofootballsfirstforwardpass/20149208/SIG=17nbnqniq/*http://www.livescience.com/php/multimedia/imagedisplay/img_display.php?pic=060901_cochems_02.jpg&amp;amp;cap=Saint+Louis+University+football+coach+Eddie+Cochems+called+the+first+forward+pass+in+football+100+years+ago%2C+on+Sept.+5%2C+1906.+Credit%3A+SLU"&gt;Eddie Cochems&lt;/a&gt;) and the sport of football would remain in the stone age forever.&lt;/p&gt; &lt;p&gt;Just kind of makes one think... Maybe I am just making generalizations, but wouldn't you agree that all of the things I listed above, funny or otherwise, aren't really that far from the realm of possibility?&lt;/p&gt; &lt;p&gt;Sports, Football, Forward Pass, Bill Simmons, Politics&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=5-AhheuXlwM:UGHzrgPQSlU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=5-AhheuXlwM:UGHzrgPQSlU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=5-AhheuXlwM:UGHzrgPQSlU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/5-AhheuXlwM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Forward-Pass-Redux-2006</feedburner:origLink></entry>
  <entry>
    <title type="html">Flame Wars 2006</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/O8RDT3njiZ0/Flame-Wars -2006" />
    <id>http://www.userinexperience.com/Blog/Flame-Wars -2006</id>
    <updated>2009-05-19T15:42:00.29</updated>
    <published>2006-09-03T17:09:30</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;I am an avid reader of &lt;a href="http://www.joelonsoftware.com/" target="_blank"&gt;Joel on Software&lt;/a&gt;. I read the &lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=userinexperie-20&amp;path=tg/detail/-/1590593898"&gt;book&lt;/a&gt; and actively follow the blog. I admire Joel, his career and his willingness to speak his mind. I don't always agree with Joel, but I always respect his opinion. He has a fundamental way of looking at seemingly complex things that can tend to oversimplify the issues,&amp;nbsp;but they can also bring about understanding and foster discussion.&lt;/p&gt; &lt;p&gt;Apparently, his Language Wars post from last week upset DHH, a self-described "&lt;a href="http://www.loudthinking.com/arc/000582.html"&gt;Emo Programmer&lt;/a&gt;,"&amp;nbsp;because Joel claims that Ruby on Rails isn't "&lt;a href="http://en.wikipedia.org/wiki/Enterprisey"&gt;Enterprisey&lt;/a&gt;" enough. David &lt;a href="http://www.loudthinking.com/arc/000596.html" target="_blank"&gt;doesn't seem to agree&lt;/a&gt;&amp;nbsp;and claimed that Joel's post was a textbook example of &lt;a href="http://en.wikipedia.org/wiki/Fud" target="_blank"&gt;FUD&lt;/a&gt; in action. If this turns into &lt;a href="http://www.makeyougohmm.com/20050519/1883/"&gt;Adam Curry v. Dave Winer&lt;/a&gt;, it could be interesting to watch.&lt;/p&gt; &lt;p&gt;Now I am probably out of line in declaring this a flame war when Joel has yet to provide a &lt;a href="http://www.joelonsoftware.com/items/2006/09/01b.html"&gt;direct response&lt;/a&gt; to DHH. But DHH is doing his best to shake the trees. See Exhibit A, &lt;a href="http://www.loudthinking.com/"&gt;Two posts and two updates to the second post&lt;/a&gt; all in the course of one day. &lt;/p&gt; &lt;p&gt;DHH missed the point of Joel's post, which was to say that for enterprise applications (read: internal) there are only a limited slate of options (.NET, Java, PHP and 1/2 Python). I think he's right. And don't get me wrong... I really like Rails. I love the flexibility; I love the simplicity. I love the "&lt;a href="http://en.wikipedia.org/wiki/Fight_the_Power"&gt;fight the power&lt;/a&gt;" attitude that comes packaged with the bits. I have used it a bit on the side and will continue to do so when free time lands in my lap. I've even considered repurposing this blog in Rails to add some AJAX-y goodness.&lt;/p&gt; &lt;p&gt;But Joel's point goes beyond the classic "My programming language is cooler than yours" mentality that populates playgrounds and UNIX circles. It's not about cool or fun or exciting. It's about what the enterprise can tolerate and is ready for. When we make architectural decisions at &lt;a href="http://www.compassion.com"&gt;Compassion&lt;/a&gt;, we always consider &lt;strong&gt;context.&lt;/strong&gt; Context is king. It dictates what you can afford to do with what you've been given. Context also brings in factors like how risk tolerant your customers are and what your Machine Service Bureau (MSB) or support group is willing to maintain.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.37signals.com"&gt;37Signals&lt;/a&gt; is changing the world with their software, and that's not an understatement. Do I want to use Rails in house at Compassion tomorrow? Of course, I'd love to give it a spin on something internal. Is that a wise decision based on my current context? Not for another year or two, which is exactly what Joel meant. When the Enterprise is the customer, that's a reality. &lt;/p&gt; &lt;p&gt;All that being said, Joel is missing something here as well. Rails may not be in Joel's short list now, but I'd be willing to bet it will be before Python makes the skip to a full option. Why? Because Rails in the poster child for agility and getting things done with software. It doesn't matter that Python has some of those flavors. Ruby on Rails is a term executives are hearing. Rails is also the poster child for AJAX and when AJAX crosses into the enterprise, so will Rails.&lt;/p&gt; &lt;p&gt;In addition to that, the ubiquity of SOA in the enterprise may make all of this moot eventually anyway.&amp;nbsp;Think about it: If my enterprise has a fully-loaded SOA with all the ESB bells and whistles, why couldn't development team A create a&amp;nbsp;rails application that used services provided by Infrastructure&amp;nbsp;team B? As long as team A's app can&amp;nbsp;create and consume the right messages (and don't even&amp;nbsp;assume SOAP... a good ESB can translate REST to SOAP and back again)&amp;nbsp;who cares what stack team A uses (assuming team A will be dogfooding said app)?&lt;/p&gt; &lt;p&gt;In my opinion, all of this is just smoke and wasted bits when we're in the middle of a technology shift that is enabling these things to play together. So if personal preference becomes the rule of the day (which Microsoft certainly supports by creating languages in .NET that all compile to the same MSIL code) when will these silly schoolyard squabbles stop?&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;tags&gt;Ruby on Rails, SOA, Joel on Software, Loud Thinking, DHH, .NET&lt;/tags&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=O8RDT3njiZ0:hq7BYOhtTUI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=O8RDT3njiZ0:hq7BYOhtTUI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=O8RDT3njiZ0:hq7BYOhtTUI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/O8RDT3njiZ0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Flame-Wars -2006</feedburner:origLink></entry>
  <entry>
    <title type="html">The world is spinning, or is it me?</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/W-XjtV8lpew/The-world-is-spinning-or-is-it-me" />
    <id>http://www.userinexperience.com/Blog/The-world-is-spinning-or-is-it-me</id>
    <updated>2009-05-19T15:42:00.13</updated>
    <published>2006-08-31T11:08:31</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      Since I last crafted a legitimate post to this blog, I have enjoyed several months of changes, excitement, bombardment and general much ado about everything. Here are a few highlights:

1) Finished &lt;a href="http://www.du.edu/lis"&gt;my first Quarter of LIS&lt;/a&gt; in one piece.&lt;br /&gt;&lt;br /&gt;
2) Spent a week in the &lt;a href="http://www.answers.com/Dominican%20Republic"&gt;Dominican Republic&lt;/a&gt; leading a Men's Conference with 3 other men.&lt;br /&gt;&lt;br /&gt;
3) Was promoted to a new role at &lt;a href="http://www.compassion.com"&gt;Compassion &lt;/a&gt;as the Enterprise Applications Architect. I am currently ramping down on day-to-day development work and ramping up (quickly!) into that job. It's been a lot of fun so far, except the part where I &lt;a href="http://www.answers.com/Insanity"&gt;tried to work on all tasks old and new for about two months&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
4) Spent 3 days (starting the day after I got back into the country) in San Diego at the &lt;a href="http://www.gartner.com"&gt;Gartner&lt;/a&gt; Enterprise Architecture Summit. That was a fun way to get started on the new job, esp. as I got to attend with my new boss.&lt;br /&gt;&lt;br /&gt;
5) Decided not to take class during the summer Quarter (see #3), but I am getting ready to start the Fall Quarter on September 12. I'll be taking two courses:
&lt;ul&gt;
	&lt;li&gt;The Corporate Information Environment&lt;/li&gt;
        &lt;li&gt;Legal Issues in Knowledge Management&lt;/li&gt;
&lt;/ul&gt;
I am looking forward to those. Not so much the cost of the &lt;a href="http://www.amazon.com/gp/product/0131538411/ref=ord_cart_shr/002-5802057-9880030?%5Fencoding=UTF8&amp;v=glance&amp;n=283155"&gt;textbooks&lt;/a&gt;, but I am looking forward to the classes themselves.&lt;br /&gt;&lt;br /&gt;
6) Compassion is at the end of a building expansion and parts of the IT department have been cube and office-less this week. One good friend also managed to find a way to move into a new house this week, I think he's been sleeping at Panera Bread. As a side note, it's too bad that good ideas always come to me too late because it would have been cool to have everyone that has been misplaced to take pictures of where they were working this week.  I alone have worked from:
&lt;ul&gt;
&lt;li&gt;My boss's office - He's on vacation this week.&lt;/li&gt;
&lt;li&gt;The World Prayer Center at New Life Church (Colorado Springs)&lt;/li&gt;
&lt;li&gt;The Lobby of New Life Church&lt;/li&gt;
&lt;li&gt;Panera Bread&lt;/li&gt;
&lt;li&gt;My house (This can be further sub-categorized into: the dining room table, the couch, a recliner and on the deck... I am a restless creature)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;

And that about catches you up to date (assuming you're still reading). The good news about the move this week is that it has given me a chance to catch up on some much needed research, reading, brainstorming and planning for the new job (with a little coding thrown in).

Some more in relation to my new job: Obviously, this blog was created to be a place where I threw half-baked opinions about UX design against the wall. That was fun for a while, but then my ADD took me to some content about developer stuff related to all the goodies from last years' &lt;a href="http://www.devconnections.com"&gt;DevConnections conference&lt;/a&gt;. That was also fun for a while.

All that being said, I think that this blog has never really had the unique personality that it needed to. What's cool is that my new job has created some interesting synergies between that developer in me (still there Ken) and the guy that thinks that UX matters. Case(s) in point:

1) When I attended the Gartner EA Summit, I heard a great talk by &lt;a href="http://devhawk.net"&gt;Harry Pierson&lt;/a&gt; called &lt;a href="http://devhawk.net/2006/07/20/Slides+From+Gartner+EA+Conference.aspx"&gt;Beyond SOA: Understanding the &lt;strong&gt;User's&lt;/strong&gt; Role in Architecture&lt;/a&gt;. Hey, that sounds like something I would enjoy... That was the first sign that I may not have strayed to far after all.&lt;br /&gt;
2) I found out after I got back and I was poking around that Simon Guest had given a talk at TechEd entitled &lt;a href="http://blogs.msdn.com/smguest/archive/2006/06/13/629010.aspx"&gt;Putting the &lt;strong&gt;User&lt;/strong&gt; Back into SOA&lt;/a&gt; that I managed to grab the slides for. The second sign... (BTW, that link does not link to the slides themselves. I can't seem to find them anymore, nor do I remember how I got them. For the next best thing, you can head over to &lt;a href="http://blogs.msdn.com/smguest/archive/2006/05/19/602169.aspx"&gt;this link&lt;/a&gt; where Simon links to an ARCast episode he did with &lt;a href="http://www.ronjacobs.com/"&gt;Ron Jacobs&lt;/a&gt; on the same topic.)&lt;br /&gt;
3) A couple of weeks ago, Simon &lt;a href="http://blogs.msdn.com/smguest/archive/2006/08/10/694591.aspx"&gt;posted once again&lt;/a&gt; about UX. This time, he was announcing a Forum discussion he will be hosting in California on "...the intersection of Architecture and &lt;strong&gt;User Experience&lt;/strong&gt;." The third and final sign...&lt;br /&gt;

This was an exciting set of circumstances for me because I felt in my gut that those old passions were still important and had a place in my new role. This was just some great confirmation. The SOA aspect of this was especially interesting as some aspects of an Enterprise SOA have been rolled out at &lt;a href=http://www.compassion.com&gt;Compassion&lt;/a&gt; and we will continue to look for ways to use it to craft a larger Integration and BPM Platform. For more info on Compassion's SOA Implementation, Dan Fox, our resident Solutions Architect, Microsoft MVP and all-around genius has been posting about it at length. Check it out &lt;a href=http://realsoa.blogspot.com&gt;here&lt;/a&gt;.

So what does all this mean then? It means that I will continue to blog (or start depending on your definition of 'continue.') about UX, but from a slightly different perspective. I will continue to talk about UI design and UX for the web, but I will also begin to incorporate some SOA, SaaS, BPM, Architecture and even Knowledge Management 'stuff.' If you actually read this far, my hope is that you would either a) stick around and continue reading what I write; or b) start today. I'm no expert on any of these subjects, but I love to read, write and discourse on nearly everything. 

So here's to a new phase in the journey. Stick around... let's hope I find reason to turn my entry in your FeedBurner client bold a bit more often.

&lt;tags&gt;UX, BPM, SOA, SaaS, Architecture, Gartner, LIS&lt;/tags&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=W-XjtV8lpew:hwaOIpelPys:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=W-XjtV8lpew:hwaOIpelPys:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=W-XjtV8lpew:hwaOIpelPys:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/W-XjtV8lpew" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/The-world-is-spinning-or-is-it-me</feedburner:origLink></entry>
  <entry>
    <title type="html">Thanks Merlin...</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/userinexperience/tYGT/~3/6Uc0RtlmvG4/Thanks-Merlin" />
    <id>http://www.userinexperience.com/Blog/Thanks-Merlin</id>
    <updated>2009-05-19T15:41:59.963</updated>
    <published>2006-08-30T13:08:16</published>
    <author>
      <name>BSatrom</name>
    </author>
    <content type="html" xml:lang="en">
      &lt;p&gt;Most of the time, the musings of &lt;a href="http://www.43folders.com"&gt;Merlin Mann&lt;/a&gt; save me time... not so today after he &lt;a href="http://www.43folders.com/2006/08/30/seal-generator/"&gt;linked&lt;/a&gt; to the "&lt;a href="http://www.says-it.com/seal/index.php"&gt;Official Seal Generator&lt;/a&gt;." Of course, I could blame it on the fact that I am working offsite due to a building move at &lt;a href="http://ww.compassion.com"&gt;work&lt;/a&gt;, but I'd rather blame Merlin. Anyway... Here are a couple of logos I generated for this site:&amp;nbsp; &lt;img height="350" alt="Official Seal Two" src="http://www.userinexperience.com/wp-images/post-images/seal2.gif" width="350" align="baseline"/&gt; &lt;/p&gt; &lt;p&gt;&lt;img height="350" alt="Official Seal Thre" src="http://www.userinexperience.com/wp-images/post-images/seal3.gif" width="350" align="baseline"/&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;tags&gt;Official Seal Generator, Fun&lt;/tags&gt;&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=6Uc0RtlmvG4:CcSIqaCbMeE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/userinexperience/tYGT?a=6Uc0RtlmvG4:CcSIqaCbMeE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/userinexperience/tYGT?i=6Uc0RtlmvG4:CcSIqaCbMeE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/userinexperience/tYGT/~4/6Uc0RtlmvG4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.userinexperience.com/Blog/Thanks-Merlin</feedburner:origLink></entry>
</feed>
