<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>UML</title>
        <link>http://geekswithblogs.net/UlteriorMotiveLounge/category/9120.aspx</link>
        <description>Thoughts, examples, and tips on applying the Unified Modeling Language.</description>
        <language>en-US</language>
        <copyright>Martin L. Shoemaker</copyright>
        <managingEditor>Martin@TheUMLGuy.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>All right, Mr. DeMille, I'm ready for my close-up</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/05/26/all-right-mr.-demille-im-ready-for-my-close-up.aspx</link>
            <description>&lt;p&gt;Back in January, &lt;a target="_blank" href="http://www.brianhprince.com/"&gt;Brian H. Prince&lt;/a&gt; from Microsoft interviewed me about the UML features in Visual Studio Team System 2010. Today, he informed me that &lt;a target="_blank" href="http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Martin-Shoemaker-discusses-UML-in-VSTS2010/"&gt;the interview is finally live on Channel 9&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132437"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132437" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/132437.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/05/26/all-right-mr.-demille-im-ready-for-my-close-up.aspx</guid>
            <pubDate>Tue, 26 May 2009 23:58:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/132437.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/05/26/all-right-mr.-demille-im-ready-for-my-close-up.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/132437.aspx</wfw:commentRss>
        </item>
        <item>
            <title>UML... It's not Rocket Science</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/04/10/umlhellip-itrsquos-not-rocket-science.aspx</link>
            <description>&lt;p&gt;If you &lt;a target="_blank" href="http://twitter.com/UMLGuy"&gt;follow me on Twitter&lt;/a&gt;, you may have seen &lt;a target="_blank" href="http://twitter.com/UMLGuy/status/1485363489"&gt;a strange tweet&lt;/a&gt; yesterday:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Looking for a word... "Employee" is to "Roster" as "Vehicle" is to _____? "Fleet" doesn't seem quite right.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With a lot of helpful suggestions, especially from &lt;a target="_blank" href="http://twitter.com/patrickgreene"&gt;@patrickgreene&lt;/a&gt;, we settled on “Fleet Manifest”. It’s ideal for what I needed.&lt;/p&gt;
&lt;p&gt;But in case you’re wondering why I needed that term, here’s a slide from &lt;a target="_blank" href="http://213softwarestudios.com/UMLQuickStart.aspx"&gt;the UML QuickStart class&lt;/a&gt; from &lt;a target="_blank" href="http://213softwarestudios.com/"&gt;213 Software Studios&lt;/a&gt; (click pictures for larger images):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/GetmetheFleetManifestStat_CE1A/Use%20Case%20Sample_2.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Use Case Sample" border="0" alt="Use Case Sample" width="644" height="484" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/GetmetheFleetManifestStat_CE1A/Use%20Case%20Sample_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And here’s another:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/GetmetheFleetManifestStat_CE1A/Swimlanes_2.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Swimlanes" border="0" alt="Swimlanes" width="644" height="484" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/GetmetheFleetManifestStat_CE1A/Swimlanes_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;"Think one through..." is what we'll do &lt;strong&gt;after&lt;/strong&gt; these slides. I'll show you diagrams of the concepts first, so you know what we're trying to accomplish; and then together, we'll think through a live example. And &lt;strong&gt;then&lt;/strong&gt; you and your team will do your own examples, and I'll help you get it right.&lt;/p&gt;
&lt;p&gt;These are just a tiny sample of what you’ll get in a full day of intensive hands-on UML training. Email John T. Hopkins at &lt;a href="mailto:jhopkins@213softwarestudios.com"&gt;jhopkins@213softwarestudios.com&lt;/a&gt; or call (248) 425-8549 for more information.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130893"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130893" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/130893.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/04/10/umlhellip-itrsquos-not-rocket-science.aspx</guid>
            <pubDate>Fri, 10 Apr 2009 20:08:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/130893.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/04/10/umlhellip-itrsquos-not-rocket-science.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/130893.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ulterior Motive Lounge Episode 31: The Teams Split Up</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/01/31/ulterior-motive-lounge-episode-31-the-teams-split-up.aspx</link>
            <description>&lt;p&gt;Continuing &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/01/07/ulterior-motive-lounge-episode-30-touring-the-laboratories.aspx"&gt;The Project That Time Forgot&lt;/a&gt;, a UML case study in comic strip form... (Click pictures for larger images.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Episode%2031.jpg"&gt;&lt;img title="Episode 31" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="389" alt="Episode 31" width="604" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode31TheTeamsSpl_EA80/Episode%2031_5.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;After a long hiatus due to weather, illness, work, conferences, and more stuff than I can explain, the Lounge is back.&lt;/p&gt;
&lt;p&gt;This Episode gets the ball rolling for Act II, so there’s not much new UML content here yet. But I can give you a few diagrams of the team’s review process. The process starts with some preliminaries, then splits into three threads of operations, each with a separate team:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Review%20Process.jpg"&gt;&lt;img title="Review Process" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="432" alt="Review Process" width="604" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode31TheTeamsSpl_EA80/Review%20Process_3.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Design Review.&lt;/strong&gt; This team, led by The UML Guy, will create a Design Assessment, summarizing the state of the design and any clear risks and concerns. The details of the Design Review look like this: &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title="Design Review" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="627" alt="Design Review" width="554" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode31TheTeamsSpl_EA80/Design%20Review_3.jpg" /&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;ul&gt;
        &lt;li&gt;Review the original design spec to determine the intent of the original team. &lt;/li&gt;
        &lt;li&gt;Review design documents and updates since the original spec. &lt;/li&gt;
        &lt;li&gt;Reverse engineer a design from the code. A good UML tool like &lt;a target="_blank" href="http://www.sparxsystems.com/"&gt;Enterprise Architect&lt;/a&gt; makes this a lot easier, but not easy. &lt;a target="_blank" href="http://www.theumlguy.com/Videos/RosarioReverseSequence.wmv"&gt;VSTS 2010 will make it even easier&lt;/a&gt;, but &lt;em&gt;still&lt;/em&gt; not easy. Incorporate this into a design summary. &lt;/li&gt;
        &lt;li&gt;Review the design with the dev team and revise until it’s ready for presentation. &lt;/li&gt;
        &lt;li&gt;Review the design with the full review team and revise until it’s ready for assessment. &lt;/li&gt;
        &lt;li&gt;Create the design assessment. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;li&gt;&lt;strong&gt;Functional Review.&lt;/strong&gt; This team, led by Geek Girl, will create a Functional Assessment: a description of how well the system performs existing functions, with emphasis on usability and correctness. The details of the Functional Review process look like this: &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title="Functional Review" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="484" alt="Functional Review" width="503" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode31TheTeamsSpl_EA80/Functional%20Review_3.jpg" /&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;ul&gt;
        &lt;li&gt;Review the existing requirements docs. &lt;/li&gt;
        &lt;li&gt;Review outstanding defect reports, and make those the beginning of a functional assessment. &lt;/li&gt;
        &lt;li&gt;For each function identified in the requirements, identify actors and user who represent those actors. Interview those users to determine how well the system &lt;em&gt;really&lt;/em&gt; works, and update the functional assessment. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;li&gt;&lt;strong&gt;Requirements Review.&lt;/strong&gt; This team, led by The Reader, will create a Requirements Assessment: a description of what requirements the system covers; and more important, what it &lt;em&gt;doesn’t&lt;/em&gt; cover. The details of the Requirements Review process look like this: &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title="Requirements Review" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="526" alt="Requirements Review" width="509" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/WindowsLiveWriter/UlteriorMotiveLoungeEpisode31TheTeamsSpl_EA80/Requirements%20Review_3.jpg" /&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;ul&gt;
        &lt;li&gt;Review the existing requirements docs. &lt;/li&gt;
        &lt;li&gt;Assess the quality of the existing requirements. Are they quantified? Are they testable? Are they unambiguously stated in words, diagrams, and tests? Are they assigned business values and priorities? Do they have clearly identified actors and use cases and scenarios and goals for each feature? These and many more questions will help to create the requirements assessment. &lt;/li&gt;
        &lt;li&gt;For each actor represented in the requirements &lt;em&gt;or&lt;/em&gt; discovered during interviews, identify and interview representative users. Determine whether they have missing requirements, as well as whether they know of or require previously unidentified actors. &lt;/li&gt;
    &lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;For a really thorough review, you probably need at least three more threads of activity:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Code Review to inspect the code, either completely or through sampling, to identify how well it’s constructed and maintained. &lt;/li&gt;
    &lt;li&gt;Quality Review to identify Quality Assurance measures, Testing measures, and the status of each. &lt;/li&gt;
    &lt;li&gt;Process Review to analyze the processes followed by the dev team and related teams. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But for simplicity (and to keep most of my focus on &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/17/requirements-night-at-ulterior-motive-lounge.aspx"&gt;my primary message&lt;/a&gt;), I’m going to restrict this case study to Design, Functionality, and Requirements. Code will be reviewed under Design, and Quality will be reviewed under Functionality. Process will be reviewed everywhere.&lt;/p&gt;
&lt;p&gt;Is this a lot of work? Yep. But it’s a minimal necessary set of activities to review a project for status and risks after you’ve ignored them for a long time. It would be &lt;strong&gt;so&lt;/strong&gt; much easier if you could do these sorts of assessments in real time right from the start as the project proceeds. It would be &lt;strong&gt;so&lt;/strong&gt; much easier if you could report the status and health of the project at the push of a button, based upon the actual work the team does &lt;strong&gt;as they do it.&lt;/strong&gt; Gee, wouldn’t Owner’s life be a lot easier if there were tools to do all that?&lt;/p&gt;
&lt;p&gt;Oh, wait a minute… There &lt;em&gt;are&lt;/em&gt; tools like that! In fact, there’s a whole category of such tools: &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Application_Lifecycle_Management"&gt;Application Lifecycle Management (ALM)&lt;/a&gt;. And my current favorite is the aforementioned &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/vsts2008/products/default.aspx"&gt;Visual Studio Team System&lt;/a&gt;, perhaps the most poorly named product Microsoft produces today. Why poorly named? Because &lt;a target="_blank" href="http://msdn.microsoft.com/vstudio/products/"&gt;Visual Studio&lt;/a&gt; is a developer tool set, particularly a tool set for .NET developers; so when people hear a name like “Visual Studio Team System”, they assume it’s a developer tool set, only bigger and better. They assume it’s about .NET development.&lt;/p&gt;
&lt;p&gt;VSTS is &lt;strong&gt;not&lt;/strong&gt; about .NET development. Oh, VSTS includes Visual Studio, and then adds some powerful developer and architect and DBA and tester features; but those features, as powerful as they are, are just the icing on the cake.&lt;/p&gt;
&lt;p&gt;The cake is ALM. VSTS is about your process and how you can define it and design it and manage it and track it, all through tools your team – your &lt;strong&gt;whole&lt;/strong&gt; team, not just .NET developers – are already using. Your Project Managers can create task lists and project plans in Excel or Project. Your developers can work on those plans in Visual Studio – or not! If they’re working with Eclipse or other non-.NET tools, developers can use &lt;a target="_blank" href="http://www.devbiz.com/teamplain/webaccess/default.aspx"&gt;TeamPlain&lt;/a&gt; to access their work items. Testers can create and apply test plans. Executives can view summaries and reports and Key Productivity Indicators (KPIs) through a project Web portal.&lt;/p&gt;
&lt;p&gt;And all of these tools are updated automatically as the team works, in real time, through the Team Foundation Server: a powerful set of databases, reports, services, and tools that integrate with Excel and Project and Visual Studio and Sharepoint and other tools to provide a seamless process involving all participants.&lt;/p&gt;
&lt;p&gt;I didn’t intend this post to turn into an ad for VSTS, so I’ll leave you to explore further if you like. But I can tell you this: even if Owner had known about VSTS, even if he could’ve convinced Cowboy Consultant to look at it, they would’ve turned it down. Owner already balked at spending proper time and money on requirements and design. Cowboy Consultant already demonstrated that he has no patience for anything beyond the code itself. Well, as powerful as VSTS is, it’s not cheap (though I think it’s well cost justified), and it takes time and effort and training to use it properly. They both would’ve written it off as needless overhead, judging by the attitudes we’ve seen so far.&lt;/p&gt;
&lt;p&gt;And those attitudes are going to lead to some mighty big problems pretty soon. Dinosaur sized, even.&lt;/p&gt;
&lt;p&gt;One final note on today’s Episode. You may wonder why Dog is going out into the Park with The Reader and Stick Boy. Well, she’s a dog. She smells things, really interesting things. She wants to investigate, not hang around in some sterile, air conditioned computing center. Dogs gotta be walked, ya know?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129103"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129103" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/129103.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/01/31/ulterior-motive-lounge-episode-31-the-teams-split-up.aspx</guid>
            <pubDate>Sat, 31 Jan 2009 06:59:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/129103.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2009/01/31/ulterior-motive-lounge-episode-31-the-teams-split-up.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/129103.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ulterior Motive Lounge Episode 29: Touring the Pavilion</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/15/ulterior-motive-lounge-episode-29-touring-the-pavilion.aspx</link>
            <description>&lt;p&gt;Continuing &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/09/ulterior-motive-lounge-episode-28-meet-danny-diplodocus.aspx"&gt;The Project That Time Forgot&lt;/a&gt;, a UML case study in comic strip form... (Click pictures for larger images.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Episode%2029.jpg"&gt;&lt;img alt="Ulterior Motive Lounge Episode 29" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Episode%2029.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;“We grow dinosaurs!” Big whoop, huh? Like &lt;em&gt;anyone&lt;/em&gt; reading the strip hadn’t figured that out before I started Scene 1… It’s hard to surprise the characters in a story when the audience can tell from the promos what the surprise is.&lt;/p&gt;
&lt;p&gt;But since The UML Guy has been part of the project before, none of this was a surprise to him. So while the others were taking in the new sights, he was drawing more UML diagrams. His results follow.&lt;/p&gt;
&lt;p&gt;We learned a few more specific kinds of scientists on the project:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Laboratory Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Laboratory%20Staff%20Scene%207.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;We added one more category of Employee Actors, Information Staff:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Employee%20Actors%20Scene%207.jpg"&gt;&lt;img alt="Employee Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Employee%20Actors%20Scene%207.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you’ve ever eaten at a restaurant – certainly if you’ve ever worked at one – you’ll realize we need more detail in our set of Concession Actors, starting with a Restaurant Manager:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Supervisor%20Actors%20Scene%207.jpg"&gt;&lt;img alt="Supervisor Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Supervisor%20Actors%20Scene%207.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And then more specific Restaurant Staff:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Concession Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Concession%20Staff%20Actors%20Scene%207.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;We also learned of more systems we’ll need to support the functions described in the Episode:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Deployment%20with%20Icons%20Scene%207.jpg"&gt;&lt;img alt="Logical Deployment Diagram" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Deployment%20with%20Icons%20Scene%207.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We added an Information Console, a Laboratory Server, Laboratory Computers, Laboratory Devices, a Commerce Server, and Cash Registers. Note that the Commerce Server has to communicate with the Warehouse Server to schedule deliveries to the rooms and to the mainland.&lt;/p&gt;
&lt;p&gt;These new systems complicated the physical Deployment Diagram almost to the breaking point. It’s complex enough that The UML Guy plans to group it, simplify it, and turn it into multiple diagrams when he gets time. But for now, here’s one more look at the single diagram:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Physical%20Deployment%20Scene%207.jpg"&gt;&lt;img alt="Physical Deployment Diagram" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Physical%20Deployment%20Scene%207.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We added some new Use Cases for Driver:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Driver%20Use%20Cases%20Scene%207.jpg"&gt;&lt;img alt="Driver Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Driver%20Use%20Cases%20Scene%207.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And for Guest:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Guest%20Use%20Cases%20Scene%207.jpg"&gt;&lt;img alt="Guest Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Guest%20Use%20Cases%20Scene%207.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One of those Use Cases, Make Purchase, is complex enough to deserve a dedicated diagram:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Make%20Purchase.jpg"&gt;&lt;img alt="Make Purchase Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Make%20Purchase.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We can see from the Episode that there are multiple Classes of souvenirs:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Souvenir Classes" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Merchandise.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;And finally, we have new Use Cases for the Geneticist and the Embryologist. Normally, The UML Guy prefers a single diagram per Actor, focused on the Use Cases for that Actor; but in this case, the Use Cases are closely related and work with related Domain Objects. So he combined the diagrams for now, but may split them later:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Geneticist%20and%20Embryologist%20Use%20Cases.jpg"&gt;&lt;img alt="Geneticist and Embryologist Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Geneticist%20and%20Embryologist%20Use%20Cases.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That’s it for new UML content for this Episode. Oh, The UML Guy could &lt;em&gt;imagine&lt;/em&gt; more, such as Use Cases for the Restaurant Staff and the Souvenir Staff; but Owner just didn’t give enough detail to work with. Those will come out over time.&lt;/p&gt;
&lt;p&gt;Other comments on this Episode:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The sign post in panel 2 probably ought to include &lt;a href="http://en.wikipedia.org/wiki/Seoul"&gt;Seoul&lt;/a&gt;, &lt;a href="http://www.ottumwaiowa.com/"&gt;Ottumwa&lt;/a&gt;, &lt;a href="http://www.millvalley.com/"&gt;Mill Valley&lt;/a&gt;, &lt;a href="http://www.cityofboston.gov/"&gt;Boston&lt;/a&gt;, and &lt;a href="http://www.hometownusa.com/maine/Crabapple_Cove.html"&gt;Crabapple Cove&lt;/a&gt;; but that would’ve made it unreadable. &lt;/li&gt;
    &lt;li&gt;It’s not the Dino Dog that’s bothering The Reader in panel 6, it’s the curry. The fastest way to drive him away is to serve him curry. But boy, curried chicken sausage sounds good to me right now! &lt;/li&gt;
    &lt;li&gt;Since you insisted (I know you’re thinking it, here’s the recipe for Yabanapple Soup: &lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;strong&gt;Yabanapple Soup (Serves 4)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;3 large ripe bananas&lt;/p&gt;
&lt;p&gt;1 large sweet potato (sometimes called a yam in America, but &lt;em&gt;not&lt;/em&gt; the same as yams elsewhere – it’s a whole different genus and species)&lt;/p&gt;
&lt;p&gt;1 large can of chunk pineapple, drained&lt;/p&gt;
&lt;p&gt;2 large cans of whole coconut milk (skim if you prefer)&lt;/p&gt;
&lt;p&gt;3 tablespoons of honey&lt;/p&gt;
&lt;p&gt;1 dash cinnamon&lt;/p&gt;
&lt;p&gt;1 dash nutmeg&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
    &lt;li&gt;Clean and peel the sweet potato. &lt;/li&gt;
    &lt;li&gt;Boil a pan of water. When boiling, add the sweet potato, and boil until slightly soft. Remove from heat and drain. &lt;/li&gt;
    &lt;li&gt;Peel and slice the banana into quarter-inch slices. &lt;/li&gt;
    &lt;li&gt;Slice the sweet potato into quarter-inch slices, and then into chunks. &lt;/li&gt;
    &lt;li&gt;In a sauce pan, mix coconut milk, sweet potato chunks, banana slices, pineapple chunks, honey, cinnamon and nutmeg. Heat until simmering. &lt;/li&gt;
    &lt;li&gt;Serve hot; or chill and serve with a scoop of ice cream. &lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
    &lt;li&gt;Boy, those are some cool-looking souvenirs in panel 7. Let’s take a closer look: &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;a href="http://www.cafepress.com/UMLounge.340153135"&gt;&lt;img alt="Ladies of Ulterior Motive Lounge T-Shirt" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Ladies.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cafepress.com/UMLounge.340166266"&gt;&lt;img alt="What-EVER! T-Shirt" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_What-EVER.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cafepress.com/UMLounge.340171710"&gt;&lt;img alt="The UML Guy T-Shirt" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_The%20UML%20Guy%20Shirt.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cafepress.com/UMLounge.340234288"&gt;&lt;img alt="UML Bear" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_UML%20Bear.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.cafepress.com/UMLounge.340215623"&gt;&lt;img alt="Ulterior Motive Lounge Stein" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Stein.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Wow! Too bad this is just a comic strip, not the real world. Wouldn’t it be great if there were &lt;a href="http://www.cafepress.com/UMLounge"&gt;a place where you could buy LoungeWare&lt;/a&gt;, especially just in time for Christmas?&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.wayneboring.com/"&gt;Wayne H. Boring&lt;/a&gt; was a famous and popular &lt;a href="http://www.dccomics.com/go/superman/"&gt;Superman&lt;/a&gt; artist. I love his work, and I couldn’t resist borrowing his name for the pun in panel 8. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next Episode: a tour of the Labs!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127957"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127957" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127957.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/15/ulterior-motive-lounge-episode-29-touring-the-pavilion.aspx</guid>
            <pubDate>Tue, 16 Dec 2008 02:03:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127957.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/15/ulterior-motive-lounge-episode-29-touring-the-pavilion.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127957.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ship It On The Side Episode 3</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/11/ship-it-on-the-side-episode-3.aspx</link>
            <description>&lt;a href="http://shipitontheside.com/2008/12/3-use-cases/"&gt;Ship It On The Side Episode 3 -- Use Cases&lt;/a&gt; is now released. Complete with goats!&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127805"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127805" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127805.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/11/ship-it-on-the-side-episode-3.aspx</guid>
            <pubDate>Thu, 11 Dec 2008 07:45:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127805.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/11/ship-it-on-the-side-episode-3.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127805.aspx</wfw:commentRss>
        </item>
        <item>
            <title>The UML Learning Path</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/10/the-uml-learning-path.aspx</link>
            <description>&lt;p&gt;(Click picture for a larger image.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9261/o_UML%20Learning%20Path.jpg"&gt;&lt;img alt="The UML Learning Path" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9261/r_UML%20Learning%20Path.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No, I'm not going to name any of the devs who inspired this post. They wouldn't know who I am, anyway.&lt;/p&gt;
&lt;p&gt;But it takes an extremely high degree of arrogance to go from "I don't see a way to use this" to "This has no value, no matter who says they're getting value out of it. So I'll dismiss it, and I'll mock them" Either arrogance, or more likely, insecurity: "I don't understand this; so since those people think it's important, either they understand something I don't, or they're fools. I'll mock them, so everyone thinks they're fools. That will make &lt;em&gt;me&lt;/em&gt; look smart."&lt;/p&gt;
&lt;p&gt;And that insecurity manifests in a lot of places on a lot of topics, not just UML: Agile Development, Orchestrated Development, CMMI, Test Driven Development, C#, Java, Ruby, linux, .NET... Any time you move from "I don't see it" to "It's worthless", look around: if other developers are putting those tools to productive use, then it's &lt;em&gt;not&lt;/em&gt; worthless. It just doesn't help &lt;em&gt;you&lt;/em&gt;. So do you call it worthless, and imply they're fools? Or do you openly mock them, demonstrating that &lt;em&gt;you're&lt;/em&gt; a fool?&lt;/p&gt;
&lt;p&gt;Or do you follow the only exit path in this diagram? There is only one, after all. Once you &lt;em&gt;get&lt;/em&gt; UML, you've gotten it for good. You may not use it all the time, but you'll understand when and why you &lt;em&gt;should&lt;/em&gt; use it. But the only exit path is the middle: you recognize that UML (or Agile, or Orchestrated, or...) is having some value on some projects, so it's not worthless; but you just can't see the value. You remain open-minded.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127800"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127800" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127800.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/10/the-uml-learning-path.aspx</guid>
            <pubDate>Thu, 11 Dec 2008 02:41:34 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127800.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/10/the-uml-learning-path.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127800.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ulterior Motive Lounge Episode 28: Meet Danny Diplodocus!</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/09/ulterior-motive-lounge-episode-28-meet-danny-diplodocus.aspx</link>
            <description>&lt;p&gt;Continuing &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/ulterior-motive-lounge-episode-27-meet-the-crew.aspx"&gt;The Project That Time Forgot&lt;/a&gt;, a UML case study in comic strip form... (Click pictures for larger images.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Episode%2028.jpg"&gt;&lt;img alt="Ulterior Motive Lounge Episode 28" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Episode%2028.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And just in case you can't read that sign above the gate, here's a larger view:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Gate%20Sign.jpg"&gt;&lt;img alt="Park Gate Sign" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Gate%20Sign.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So Editor Bill looked at this strip and said, "Geez, Martin, what happened? You spent so much time drawing that volcano cone, you didn't have time for any UML?"&lt;a href="#Apologies to Editor Bill"&gt;*&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;"What?" I said, "You don't see the UML content in this Episode?"&lt;/p&gt;
&lt;p&gt;"Well, yeah, there are a couple new systems mentioned, I guess."&lt;/p&gt;
&lt;p&gt;"Ah," I said, "that's because you're not listening (or reading) with the ears (or eyes) of an analyst. This Episode is chock full of UML content. The UML Guy's listening carefully and updating his diagrams and drawing new diagrams. You just can't see that in the tiny little panels. But I'll be sure the readers can see them in the commentary." Score 1 for The UML Guy!&lt;/p&gt;
&lt;p&gt;To start with, The UML Guy remembered the right name for one Actor. He kept blipping out on the name of the workers who load and unload the baggage; so he simply called them "Shipping Staff". Then he remembered the right name: Stevedore. So he updated the model for that, and also to show a previously forgotten Actor, Driver:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Transport%20Staff%20Actors%20Scene%206.jpg"&gt;&lt;img alt="Transport Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Transport%20Staff%20Actors%20Scene%206.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Editor Bill responded, "Drivers? I don't see any drivers. The team are just driving themselves."&lt;/p&gt;
&lt;p&gt;"Ah," I reminded him, "don't forget: Actors in UML aren't people or job descriptions: they're roles people or systems play. In this Episode, Owner, The Reader, and Geek Girl are fulfilling the Driver role." Score 2 for The UML Guy! It's almost like I'm setting up these points on purpose...&lt;/p&gt;
&lt;p&gt;Editor Bill mentioned a couple new systems. Oh, it's a lot more than a couple. Implicit and explicit in Owner's narration are &lt;strong&gt;17 new systems&lt;/strong&gt;. Score 3 for The UML Guy!  That means our original Logical Deployment Diagram has grown by 242%:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Deployment%20with%20Icons%20Scene%206.jpg"&gt;&lt;img alt="Logical Deployment Diagram (revised)" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Deployment%20with%20Icons%20Scene%206.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now some of those systems are implicit &lt;em&gt;only&lt;/em&gt; because The UML Guy has worked on baggage handling systems and reservation systems. So these aren't requirements or existing infrastructure &lt;em&gt;yet&lt;/em&gt;. They're only assumed.&lt;/p&gt;
&lt;p&gt;That's OK. You're allowed to bring your experience and history to your projects. You're &lt;em&gt;expected&lt;/em&gt; to bring them. Just be sure you don't mistake past experience for present knowledge. The UML Guy will have to present these ideas to Owner and Owner's staff and ask the analyst's most important question: "Is this right?"&lt;/p&gt;
&lt;p&gt;And that's a &lt;em&gt;hard&lt;/em&gt; question to get answered. It's easy for stakeholders to get confused in jargon and answer "Yes" out of reflex, not out of understanding. It's &lt;em&gt;really&lt;/em&gt; easy for an analyst with a strong personality to unintentionally pressure the stakeholders into "Yes." I spend a &lt;em&gt;lot&lt;/em&gt; of time saying, "Don't let me &lt;em&gt;convince&lt;/em&gt; you that I'm right. If I'm wrong, &lt;em&gt;please&lt;/em&gt; tell me. I don't think I'm wrong; but I &lt;em&gt;need&lt;/em&gt; you to tell me if I am, because you're the only ones who can."&lt;/p&gt;
&lt;p&gt;Now in this &lt;em&gt;particular&lt;/em&gt; case, we're going to find that The UML Guy is brilliant, and these changes are all perfect. Scriptwriters have awesome powers, after all. (But I'd love to hear from you if you disagree with anything here.)&lt;/p&gt;
&lt;p&gt;So the new systems are these:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Car Information System.&lt;/strong&gt; This new system is obvious from the Episode. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Guest Information Server.&lt;/strong&gt; If the Car Information Server is going to present guest-specific info feeds, somewhere there will have to be stored information on each Guest. Since the Central Server is concerned with operation of the Park systems, The UML Guy assumes there will be a separate system for Guest information. He's willing to be told that he's wrong, of course, but that's how he's drawing the diagrams right now. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Reservation Server.&lt;/strong&gt; Since Owner discussed Priority Guests vs. Guests, we know there has to be a way for Guests to express their preferences as they make reservations. (See the Guest Use Cases below for more details.) That little bit of knowledge implies a reservation system of some kind. The Park will contract with a travel company to book reservations; and their Reservation Server will have to connect with the Guest Information Server to know what rooms are available when, and to inform the Park about reservations. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Guest's Personal PC.&lt;/strong&gt; Guests will be able to make their reservations online, so their PCs are connected to the rest of the network by connecting to the Reservation Server. It's unlikely that we'll be deploying any code there; but again, we're defining a broad scope now, and narrowing in later. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Weather Station.&lt;/strong&gt; Since the Island is an independent territory, there's no National Weather Service providing forecasts there. In order to provide up-to-date weather information, they'll need some sort of weather reporting station. &lt;a href="http://www.amazon.com/Furuno-PB100-Ultrasonic-Weather-Station/dp/B000OTMZHI/ref=sr_1_3?ie=UTF8&amp;amp;s=electronics&amp;amp;qid=1228868421&amp;amp;sr=1-3"&gt;Something like this...&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Hospitality Console.&lt;/strong&gt; The Lodge staff will need consoles to enter and maintain Guest information. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Event Planner Console.&lt;/strong&gt; Event planners will need consoles to plan and manage events. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Room Lock.&lt;/strong&gt; From Owner's description, the Lodge room locks must tie into the GPS system, since the GPS Locators act as keys; and the Guest Information Server must be able to assign GPS's to locks. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Sorter.&lt;/strong&gt; The baggage sorter on the Island will be a &lt;em&gt;huge&lt;/em&gt; system. (Trust me!) It needs a server dedicated just to sortation logic and planning. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Sorter Controller Module.&lt;/strong&gt; While the Sorter plans and routes bags (and packages -- Park staff will use the same system for routing packages to installations throughout the Island), the actual sortation hardware needs a separate server to control all the inducts and diverts and carriers and rollers and conveyors and scanners and lifters and loaders and pushers and more and more and more... There's a lot there (Trust me!), so we'll need separate servers for routing logic and for device control and communications. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bar Code Scanner.&lt;/strong&gt; Each package will be tagged with a bar code label, and the scanners will use these to locate each package and report the locations to the Sorter Controller Module. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Sorter Car.&lt;/strong&gt; Each car (or carrier) in the sortation system will have its own control device to help it induct, center, and divert loads. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Baggage Check In Console.&lt;/strong&gt; When the Guests arrive at the docks on the mainland (or at the heliport for Priority Guests), the Stevedores there will have to check in their baggage at this console. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Baggage Scale.&lt;/strong&gt; Weighs Guest luggage. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bar Code Printer.&lt;/strong&gt; Prints the bar code labels for the baggage. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Shoreside Baggage Server.&lt;/strong&gt; Manages baggage information at the dock or the heliport. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Dockside Bar Code Scanner.&lt;/strong&gt; Used to confirm that each bag reachs the dock and is loaded onto the ship. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And if the &lt;em&gt;Logical&lt;/em&gt; Deployment Diagram has gotten complicated, the &lt;em&gt;Physical&lt;/em&gt; Deployment Diagram has gotten worse -- so complex, The UML Guy had to reorganize it and regroup the nodes by their locations in (and out of ) the Park:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Physical%20Deployment%20Scene%206.jpg"&gt;&lt;img alt="Physical Deployment Diagram (revised)" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Physical%20Deployment%20Scene%206.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These locations are:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Underground Sortation System.&lt;/strong&gt; Where all the sortation hardware is found. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Server Room.&lt;/strong&gt; Where the primary servers are found. (Yes, I can explain why Room Lock is inside that boundary. It's a highly technical concept we call a &lt;em&gt;mistake&lt;/em&gt;. The UML Guy goofed. He'll clean it up later.) &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Lodge Offices.&lt;/strong&gt; Where Lodge hardware is found (and probably where Room Lock &lt;em&gt;should&lt;/em&gt; be found). It contains two specific locations:
    &lt;ul&gt;
        &lt;li&gt;&lt;strong&gt;Concierge Office.&lt;/strong&gt; Where the Hospitality team works. &lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Event Planning Office.&lt;/strong&gt; Where the Events team works. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Reservation Agent.&lt;/strong&gt; The offices of the third-party reservation service. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Ops Center.&lt;/strong&gt; Where the lead Ops staff works. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Comm Center.&lt;/strong&gt; A separate building where communications hardware is found, including an array of communications towers and antennas mounted on the roof. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Check In.&lt;/strong&gt; The baggage check-in centers on the mainland. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Field Units.&lt;/strong&gt; Mobile devices throughout the Island. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And as The UML Guy added hardware and envisioned hardware in different locations, he realized the Park would need more Routers, along with a satellite Internet link; so he added those to this diagram.&lt;/p&gt;
&lt;p&gt;The UML Guy also identified initial Use Cases for some Actors, including Driver:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Driver%20Use%20Cases.jpg"&gt;&lt;img alt="Driver Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Driver%20Use%20Cases.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This Use Case relates to two Domain Objects: the GPS Data, and the Guest Feed (which in turn involves a Weather report, Daily Events, and Guest Schedules). The UML Guy also added a note for a known defect. There may be better ways to note this, depending on your defect tracking tools; but this note is a very &lt;em&gt;visible&lt;/em&gt; way to indicate it (expecially to my audience, i.e., you).&lt;/p&gt;
&lt;p&gt;We also have Stevedore Use Cases:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Stevedore%20Use%20Cases.jpg"&gt;&lt;img alt="Stevedore Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Stevedore%20Use%20Cases.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The UML Guy didn't mark either of these with a defect note: even though he knows the sorter's not working, he doesn't know enough yet to tie it to a particular Use Case.&lt;/p&gt;
&lt;p&gt;And finally, with have Use Cases for Guests and Priority Guests:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Guest%20Use%20Cases.jpg"&gt;&lt;img alt="Guest and Priority Guest Use Cases" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Guest%20Use%20Cases.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I could go through the Episode panel by panel and justify every one of those Use Cases; but most of them should be obvious if you've done much traveling. If you have any questions on them, please feel free to ask. The UML Guy probably has some idea of Event Planner and Concierge Use Cases from this Episode as well; but the information is &lt;em&gt;so&lt;/em&gt; vague, he left those Actors for later. (Either that, or he was awed by the scenery.)&lt;/p&gt;
&lt;p&gt;No UML content, Editor Bill? Ha! It is to laugh! UML content coming out your ears, my friend...&lt;/p&gt;
&lt;p&gt;Some other notes on this Episode:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Yes, all cars on the Island are AMC Gremlin X's. Long-time readers will notice a pattern here. &lt;/li&gt;
    &lt;li&gt;Before I drew panel 4, I had no idea there would be Car Information Systems. Before I drew panel 5, I had never heard of Danny Diplodocus. Now this little bit of imaginary code is whispering in my ear and suggesting that he needs a larger role in the story. &lt;strong&gt;He's a blooming drawing of an imaginary blooming computer-animated dinosaur, and he's trying to wrest control of the story from me!&lt;/strong&gt; I tell ya, authors have no control over their creations, none at all. &lt;/li&gt;
    &lt;li&gt;No offense is intended toward Italian software developers in their role in the defective sortation system. &lt;strong&gt;I'm&lt;/strong&gt; not blaming them; but it's common for the absent team members to become the scapegoats for all failures, &lt;em&gt;especially&lt;/em&gt; when they're from a different company &lt;em&gt;and&lt;/em&gt; there's a bit of a language barrier. Do they share the blame in this case? Probably. Do they deserve the &lt;strong&gt;whole&lt;/strong&gt; blame? I seriously doubt it. But since they're not there to defend themselves, they're going to get more than their share, I'll bet. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next Episode: a tour of the Pavilion!&lt;/p&gt;
&lt;p&gt;&lt;a name="Apologies to Editor Bill"&gt;&lt;/a&gt; OK, OK, Editor Bill didn't say that. As author, I get to put words in the mouths of my characters &lt;em&gt;and&lt;/em&gt; Editor Bill. He did say, "Well, no, there's not a lot of UML content; but you can be excused, because you've got a lot coming up." &lt;em&gt;Then&lt;/em&gt; I told him about the UML content. But if I tell the story this way, I get to brag about how hard I worked on that volcano cone!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127775"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127775" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127775.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/09/ulterior-motive-lounge-episode-28-meet-danny-diplodocus.aspx</guid>
            <pubDate>Wed, 10 Dec 2008 00:23:32 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127775.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/09/ulterior-motive-lounge-episode-28-meet-danny-diplodocus.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127775.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ulterior Motive Lounge Episode 27: Meet the Crew</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/ulterior-motive-lounge-episode-27-meet-the-crew.aspx</link>
            <description>&lt;p&gt;Continuing &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/02/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx"&gt;The Project That Time Forgot&lt;/a&gt;, a UML case study in comic strip form... (Click pictures for larger images.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Episode%2027.jpg"&gt;&lt;img alt="Ulterior Motive Lounge Episode 27" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Episode%2027.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There's the business, and then there's the role of the system within the business. If all you focus on is the role of the system, you can miss chances to see where the system's &lt;em&gt;really&lt;/em&gt; needed.&lt;/p&gt;
&lt;p&gt;So time permitting, I would rather start by understanding the whole business and then work inward. Oh, sometimes the division is very clear: if my client asks for a change to their payroll system, I probably don't need details about their waste management system.&lt;/p&gt;
&lt;p&gt;Or do I? What if the waste management staff is made up of hourly employees? What if excess waste problems can result in overtime? What if that overtime gets charged to a different budget, such as the Environmental Quality Initiative?&lt;/p&gt;
&lt;p&gt;The boundaries between "business" and "problem domain" can be fuzzy, and it's easy to cross the boundaries without realizing it. I find it's easier to start with a broad scope and narrow in than to start with a narrow scope and expand.&lt;/p&gt;
&lt;p&gt;And if I had to pick the number one category of overlooked Actors in requirements analysis, it's the development and maintenance teams themselves. Customers think about what &lt;em&gt;they&lt;/em&gt; need from your system; but how often do they think about what &lt;em&gt;you&lt;/em&gt; need from the system? Do they think about running diagnostics to chase down problems? Do they think about maintenance and archiving of data? Do they think about staging and deploying patches and new releases? Do they think about detecting and tracking defects and problems and patterns of usage and percentage of down time? Do they think about support personnel and the tools they'll need to keep users running?&lt;/p&gt;
&lt;p&gt;Maybe. Maybe, if they're a very experienced system buyer. But most often, the answer is &lt;strong&gt;no&lt;/strong&gt;. If &lt;em&gt;you&lt;/em&gt; don't think of the development and maintenance and support staffs as Actors, and &lt;em&gt;you&lt;/em&gt; don't identify their Use Cases, no one will. Then you'll deploy, and the system will need maintenance, and your users will need support, and you'll have no tools to help them. And when you start trying to retrofit the tools after the fact, someone will say "You should've thought of that." And they're right. You should have. You're the professionals here.&lt;/p&gt;
&lt;p&gt;So Owner has done a good job of identifying the "stars" of the story. These are Actors you &lt;em&gt;will&lt;/em&gt; see again as the story plays out. (Trust me: if I didn't need them in the story, I wouldn't draw them. I'm just too busy to draw characters I don't need. (Somewhere Editor Bill and &lt;a href="http://www.getflowerpot.com"&gt;Curtis Gray&lt;/a&gt; are stunned into disbelief at that remark.)) But he has barely scratched the surface of the full Park staff. After much longer discussions, The UML Guy identified these basic classes of Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Park%20Actors.jpg"&gt;&lt;img alt="Park Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Park%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is a common pattern in many of my models:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;User&lt;/strong&gt;s are anyone who might be involved with the system in any way. They may be anonymous visitors to the Park's Web site; or they may be more specific Actors, as described below. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Authorized User&lt;/strong&gt;s are Users who have permissions to do something on the system that Users can't do. This is represented in the diagram above as a set of Authorizations. Different Authorized Users will have different Authorizations. We'll get more specific about what that means when we get closer to code. &lt;/li&gt;
    &lt;li&gt;An &lt;strong&gt;Employee&lt;/strong&gt; is an Authorized User that works within the organization and has additional Authorizations as a result. &lt;/li&gt;
    &lt;li&gt;A &lt;strong&gt;Supervisor&lt;/strong&gt; is an Employee with a Staff of Employees, along with additional Authorizations and responsibilities. &lt;/li&gt;
    &lt;li&gt;A &lt;strong&gt;Vendor&lt;/strong&gt; is an Authorized User who isn't employed by the business, but who provides services to the organization and may have additional Authorizations and responsibilities. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, this model has another class of Authorized Users: Guests. We want each Guest to have Web access to Park content, so that we can sell additional services and souvenirs to them. And then Priority Guests are Guests who pay for full Internet access.&lt;/p&gt;
&lt;p&gt;After identifying these major classes of Actors, the team identified more specific versions of each. The Vendor Actors diagram is the simplest:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Vendor%20Actors.jpg"&gt;&lt;img alt="Vendor Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Vendor%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Supervisor Actors are more numerous:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Supervisor%20Actors.jpg"&gt;&lt;img alt="Supervisor Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Supervisor%20Actors.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The Employee Actors are where the "Actor Explosion" comes in. This is just the first diagram; more detailed Employee diagrams follow:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Employee%20Actors.jpg"&gt;&lt;img alt="Employee Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Employee%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most (but not all) of these Employee classes have more detailed Employees below.&lt;/p&gt;
&lt;p&gt;Here are the Ops Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Ops%20Staff%20Actors.jpg"&gt;&lt;img alt="Ops Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Ops%20Staff%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And Ops Staff is complex enough to require two even more detailed diagrams. Here are the Transport Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Transport%20Staff%20Actors.jpg"&gt;&lt;img alt="Transport Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Transport%20Staff%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And here are the Facilities Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Facilities%20Staff.jpg"&gt;&lt;img alt="Facilities Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Facilities%20Staff.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are the Laboratory Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Laboratory%20Staff.jpg"&gt;&lt;img alt="Laboratory Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Laboratory%20Staff.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are the Lodge Staff Actors&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Lodge%20Staff%20Actors.jpg"&gt;&lt;img alt="Lodge Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Lodge%20Staff%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are Concession Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Concession%20Staff%20Actors.jpg"&gt;&lt;img alt="Concession Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Concession%20Staff%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are the Marketing Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Marketing%20Staff%20Actors.jpg"&gt;&lt;img alt="Marketing Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Marketing%20Staff%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And finally, here are the Medical Staff Actors:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Medical%20Staff%20Actors.jpg"&gt;&lt;img alt="Medical Staff Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Medical%20Staff%20Actors.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Whew! That's a total of 86 different classes and subclasses of Actors! And I'll bet if I spoke to people in the transport, hospitality, marketing, or amusement industries, I'd find more. Owner's 8 Actors may be the most important, but they're less than 10% of the total set of Actors.&lt;/p&gt;
&lt;p&gt;And I haven't even started &lt;em&gt;looking&lt;/em&gt; at system and device actors. We'll likely end up with around 100 candidate Actors. Will we need all of them? Probably not. But I'm more comfortable now that we haven't overlooked anything.&lt;/p&gt;
&lt;p&gt;And yet categorizing isn't enough! We really need to understand relations between them as well. For instance, Employees report to Supervisors. Here is a rough Org Chart for the Park staff, with an arrow from each Employee to the Supervisor to which she or he reports:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Org%20Chart.jpg"&gt;&lt;img alt="Park Org Chart" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Org%20Chart.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There's one more lesson in this Episode: although I see this work as identifying Actors, I went a little farther than that, identifying their goals and motivations as well. That's a step down the road to identifying Personas, as described by Alan Cooper in &lt;a href="http://www.amazon.com/About-Face-Essentials-Interaction-Design/dp/0470084111/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1228525682&amp;amp;sr=8-1"&gt;About Face&lt;/a&gt; and &lt;a href="http://www.amazon.com/Inmates-Are-Running-Asylum-Products/dp/0672326140/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1228525682&amp;amp;sr=8-2"&gt;The Inmates Are Running the Asylum&lt;/a&gt;. In fact, since these are fictional characters, it's a &lt;em&gt;lot&lt;/em&gt; like defining Personas. Cooper argues that by creating fictional Personas that represent users with personalities and motivations and goals, you create a filter to differentiate "okay software that someone can use" from "&lt;strong&gt;great&lt;/strong&gt; software that will really satisfy this person's goals and make this person happy". I like a lot of what Cooper has to say in these books. I'm not 100% persuaded yet, but he's persuasive. Of course, I've also gone &lt;em&gt;way&lt;/em&gt; overboard by his standards. He recommends typically around 3 Personas, 5 for a big project. I have 8, plus the review team, plus almost 80 more Actors. But I have them in part for the demands of the story, not the system. If Alan Cooper were doing Interaction Design for this project, he would likely focus on just one or two of these Actors, and flesh them out to a handful of Personas, and work on designing great software for them. Then he would focus on other Personas over time.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127606"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127606" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127606.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/ulterior-motive-lounge-episode-27-meet-the-crew.aspx</guid>
            <pubDate>Fri, 05 Dec 2008 23:34:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127606.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/ulterior-motive-lounge-episode-27-meet-the-crew.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127606.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Business Actors</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/business-actors.aspx</link>
            <description>&lt;p&gt;On &lt;a href="http://www.Twitter.com"&gt;Twitter&lt;/a&gt;, @&lt;a href="http://twitter.com/ClearSpringBA"&gt;ClearSpringBA&lt;/a&gt; asked:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/UMLguy"&gt;UMLguy&lt;/a&gt; to show a "parent" actor over subsidiaries, do I use the generalization feature in UML? (doing an actor-UC diagram, new to it)&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;Wordy cuss that I am, I answered multiple times:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/ClearSpringBA"&gt;ClearSpringBA&lt;/a&gt; Are subsidiaries subordinates or special cases? For ex, Supervisor is special case of Employee; Emps are subordinates of Supv&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/ClearSpringBA"&gt;ClearSpringBA&lt;/a&gt; For special case, genralization arrow from Supv to Emp. "Supv is an Emp with more responsibilities."&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;Her questions back:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/UMLGuy"&gt;UMLGuy&lt;/a&gt; thanks for all the info. subsidiaries are parent companies, can do everything on behalf of a sub.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;&lt;a href="http://twitter.com/UMLGuy"&gt;UMLGuy&lt;/a&gt; so, i would draw the arrow toward the parent company? the arrow with the "big head", generalization arrow? prob wrong terms!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;I decided this had gotten complex enough that words weren't working; so we went to email. Since this is general enough not to show any business info from her client, I thought I would share my response, in case anyone else finds it useful:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;&lt;span class="entry-content"&gt;&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;div&gt;Here’s a simple diagram of business relationships:&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;img alt="Businesses as Actors" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9244/o_Businesses.gif" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;You can read it as follows:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;ol&gt;
    &lt;li&gt;A Business is an Organization. Triangle arrow (“generalization” or “inheritance”) can be interpreted as “is a”. &lt;/li&gt;
    &lt;li&gt;A Parent Company is a Business. &lt;/li&gt;
    &lt;li&gt;A Parent Company has zero or more Subsidiaries, which are Businesses. (They might also be Parent Companies themselves, since a Parent Company is a Business.) The plain arrow can be interpreted as “has” or “contains” or “uses”. 0..* means any number, possibly 0. 1..* would mean any number, NOT 0. That could mean, for example, that a Parent Company MUST have at least 1 Subsidiary. &lt;/li&gt;
    &lt;li&gt;A Business has 0 or 1 Parent, which is a Parent Company. The “topmost” Business has no Parent. All the others have 1. &lt;/li&gt;
    &lt;li&gt;A Business has zero or more Partner Businesses. &lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;I hope that clarifies things, and gets you thinking about new ideas. Please let me know if you have more questions.&lt;/div&gt;
&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;And I hope it helps someone else, too!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127604"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127604" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127604.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/business-actors.aspx</guid>
            <pubDate>Fri, 05 Dec 2008 19:58:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127604.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/05/business-actors.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127604.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Ulterior Motive Lounge Episode 26: Aboard the Helicopters</title>
            <link>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/02/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx</link>
            <description>&lt;p&gt;Continuing &lt;a href="http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/11/26/ulterior-motive-lounge-episode-25-the-uml-guys-terms.aspx"&gt;The Project That Time Forgot&lt;/a&gt;, a UML case study in comic strip form... (Click picture for a larger image.)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Episode%2026.jpg"&gt;&lt;img alt="Ulterior Motive Lounge Episode 26" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/r_Episode%2026.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the first we've seen of Deployment Diagrams in the Lounge; but they're enough like Class Diagrams that I think you should find them easy to read. Here's the diagram above, larger and more readable:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Logical Deployment Diagram" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Logical%20Deployment.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;The cubes represent nodes within the system. By default, they represent Processors: computers where you'll deploy code. The &lt;strong&gt;&amp;lt;&amp;lt;device&amp;gt;&amp;gt;&lt;/strong&gt; stereotype here indicates devices that your system talks to, but you don't actually deploy any code there. The lines connecting the nodes represent paths of communication. Recall from our Class Diagrams that we use arrows to indicate which end of a relationship is a "controller or "owner" in the relationship; but if the ends are "peers" -- or if we just haven't decided the details yet -- we use simple lines, not arrows. Lines are more common in Deployment Diagrams.&lt;/p&gt;
&lt;p&gt;As in Class Diagrams, the triangle-headed arrow indicates generalization or inheritance. In this example, a Windows Mobile Phone is a more-specific example of a cell phone, one where we can deploy Windows Mobile apps.&lt;/p&gt;
&lt;p&gt;Processors and devices are physical things. Stakeholders who haven't a clue what Classes they need will commonly have strong opinions of what nodes they need. "We're going to have PCs at all these stations, and a server back here, and two printers over here, and a connection to the Internet here, and..." So a Deployment Diagram is often part of their requirements, not just their design. (Of course, the design may result in deployment changes...) Drawing the Deployment Diagram is a good starting point for discussing the system.&lt;/p&gt;
&lt;p&gt;To make these diagrams even more readable to the stakeholders, it's common to add specific icons for specific kinds of nodes:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Logical Deployment Diagram with node icons" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Deployment%20with%20Icons.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;What we've seen so far are &lt;em&gt;logical&lt;/em&gt; Deployment Diagrams: these are the nodes that must communicate to carry out requirements, but not the full picture. A physical Deployment Diagram adds the hardware that connects these nodes, and also describes the connections:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Physical Deployment Diagram" src="http://geekswithblogs.net/images/geekswithblogs_net/UlteriorMotiveLounge/9138/o_Physical%20Deployment.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Some stakeholders -- particularly IT staff and network admins -- will prefer the physical Deployment Diagrams; but most will prefer to know where work is done, without reference to how the nodes connect.&lt;/p&gt;
&lt;p&gt;Note also some added detail here: besides Windows Mobile Phones, we have two other kinds of cellular devices. The Tablet PCs are equipped with Cellular Modems; and the GPS Locators use cell signals to broadcast their locations. Hmmm... That means the cellular network is very close to being a single point of failure. if that went down, it would be bad...&lt;/p&gt;
&lt;p&gt; Other notes from today's Episode:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Dog refused to be left home. She's pretty stubborn sometimes. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.wimax.com/"&gt;WiMAX&lt;/a&gt; is becoming a very popular solution for wide-range wireless networking. But darn it, they &lt;em&gt;still&lt;/em&gt; don't have a tower that can reach my house! &lt;/li&gt;
    &lt;li&gt;Stick Boy is a gamer geek. He never goes anywhere without his wizard staff. &lt;/li&gt;
    &lt;li&gt;Hacker Girl's shirt reads, "What-EVER!" in pink on blackl. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And finally: yes, despite his admonitions, The UML Guy just overlooked some vital information. He's not kidding: we &lt;em&gt;all&lt;/em&gt; have blind spots, and we &lt;em&gt;need&lt;/em&gt; each other to review and catch what we miss. Even knowing that, he didn't listen to Dog. She's always barking about something, so this can't be important, right?&lt;/p&gt;
&lt;p&gt;Everyone on the team and every stakeholder has a unique perspective. Think of your problem as a giant abstract sculpture in a dark room; and you're supposed to recreate that sculpture. Everyone has a flashlight. Some are broad beams, and some are narrow, but &lt;em&gt;none&lt;/em&gt; is large enough to encompass the entire sculpture. Oh, sure, if you stand back at a distance, you can play your beam over the wole thing; but then you're too far away to see details. So you need everyone, every light, to see angles and perspectives that you overlook. Even with &lt;em&gt;all&lt;/em&gt; the beams, you'll miss some details; so go out of your way to get as many beams as possible, and have everyone look from multiple angles.&lt;/p&gt;
&lt;p&gt;Of course, most of us would probably overlook Dog as a stakeholder, so I'll cut The UML Guy a little slack. But if only he had listened...&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127519"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127519" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/UlteriorMotiveLounge/aggbug/127519.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martin L. Shoemaker</dc:creator>
            <guid>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/02/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx</guid>
            <pubDate>Tue, 02 Dec 2008 14:59:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/UlteriorMotiveLounge/comments/127519.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/UlteriorMotiveLounge/archive/2008/12/02/ulterior-motive-lounge-episode-26-aboard-the-helicopters.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/UlteriorMotiveLounge/comments/commentRss/127519.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>