<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>edjez's WebLog : /etc/other</title><link>http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx</link><description>Tags: /etc/other</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Invoking the ghost</title><link>http://blogs.msdn.com/edjez/archive/2006/04/28/InvokingTheGhost.aspx</link><pubDate>Fri, 28 Apr 2006 23:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:586420</guid><dc:creator>edjez</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edjez/comments/586420.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=586420</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;Let’s say you are talking about a program with someone. Imagine stakes are somewhat high. Suddenly one of these two phrases gets thrown out:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;1. "&lt;I style="mso-bidi-font-style: normal"&gt;It could be faster&lt;/I&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;In any but the healthiest of teams, these are great words to&amp;nbsp;put folks on defensive&amp;nbsp;and stop rational conversations about code.&amp;nbsp;Suddenly the neurons spin (?) and we wonder- is there something we missed? Is my code &lt;I style="mso-bidi-font-style: normal"&gt;wrong&lt;/I&gt;? Did I screw it up &lt;I style="mso-bidi-font-style: normal"&gt;all over the place&lt;/I&gt;? Does this guy/gal have some &lt;I style="mso-bidi-font-style: normal"&gt;privileged&lt;/I&gt; piece of information? When someone tells you "It could be faster" - what's your typical reaction…?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;2. "&lt;I style="mso-bidi-font-style: normal"&gt;It's for security reasons&lt;/I&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;That's another one. And it's funny I even dare to bring this up, being from Microsoft and all that. Who would be brave enough enter a debate about&amp;nbsp;code being written&amp;nbsp;for such an honorable purpose? Who would be enough of a&amp;nbsp;security&amp;nbsp;expert to dare question the existence of code that is there to protect us from evil, shame and regret?&amp;nbsp;Do you&amp;nbsp;want&amp;nbsp;your grandchildren to remember&amp;nbsp;you for being the dude/dudette that left that gaping security hole open? That was exploited by that worm that took civilization back to the 19th century in one fell swoop? I know &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Georgia"&gt;I&lt;/SPAN&gt;&lt;/EM&gt; don't want to be associated with an accidental return to hunter/gatherer lifestyle&amp;nbsp;...so we block the issue in our heads and move on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;What's going on here?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;These are just two examples of what I call 'invoking ghosts' in discussions about software. We bring up a topic that is vague, crosscutting, obscure, to 1) provide an excuse to do&amp;nbsp;work or not do work, independently of how sensible it is&amp;nbsp;to do it or not&amp;nbsp;2) win a debate against The Other Idea 3) raise FUD levels and gain control of the situation or reduce others' credibility 4) basically steer the conversation away from the code and into people manipulation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;Now, don't get me wrong. Perf and security are important (Doh! I sound like an idiot....I guess you can quote me on that...No, the first phrase) Things &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Georgia"&gt;can&lt;/SPAN&gt;&lt;/EM&gt; be faster and you &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Georgia"&gt;could&lt;/SPAN&gt;&lt;/EM&gt; be doing things for real security measures - but how to tell? What do you do if in a conversation someone invokes these topics as ghosts, and steer it back into a productive place?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;Fortunately, I think there are good patterns and tools to communicate around these issues. A huge one is to be transparent about the goals and unknowns. This basically puts on the table 1. What is it that you are trying to achieve, and 2. An acknowledgment that the understanding of the problem and the shape of the solution are still evolving. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;What has helped me is to get to a shared (implicit or explicit) commitment to an approach:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;1) Establish the needs &amp;amp; the priorities&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;2) Analyze current situation and set a goal for an improvement&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;3) Work on improving the system, checkpoint against goals&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;4) do it all again&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;This actually sounds quite obvious, but it has helped me bring sanity to discussions about quality attributes such as performance &amp;amp; scalability, security, manageability, maintainability, and other areas where 'ghosts' tend to live. Quality attributes tend to be particularly good 'haunted houses' because of their crosscutting, distributed nature, and because we tend to have less than ideal tools to think about tests of success.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;If you look at the 4 steps above the first one is about establishing needs - figuring out your tests, if you will. There has been a lot of work for many years around helping people figure out their tests/needs for quality attributes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;For security you have Threat Modeling, for manageability you have Health Modeling, for performance you have Perf Modeling, and I hope good frames come up for other quality attributes as well. But what I particularly like about these models is that they aren't models about the solution, but models for &lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Georgia"&gt;tests &lt;/SPAN&gt;&lt;/EM&gt;(and steps 2, 3 &amp;amp; 4&amp;nbsp;are just&amp;nbsp;process guidance to help us make them pass…the “green and refactor” of the “red, green, refactor” cycle). &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;In my opinion the focus on tests first for these complex areas&amp;nbsp;makes these approaches and tools intrinsically suitable for expressing partial, incomplete or overlapping goals (which tends to happen whenever humans are involved..), and helping people iteratively collaborate around defining, verifying and refining them. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;By starting with tests, we support an inductive approach to building the solution, akin to what you do with TDD. Now maybe we still don't have good tools to automatically test our systems based on all these testing models, but I hope that's just&amp;nbsp;a matter of time (base DSL for tests that can be specialized for specific domains, anyone?). Eventually, these tools could become part of the suite of tests that drive the creation of the solution, treated as acceptance tests tied to business needs, and maybe even verifiable against systems at runtime.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;…In the meantime it takes toil, tinkering, and a dabbling with mental experiments. But most of all I think it takes clear communication between people. Here’s some resources around these topics that I’ve used to help me scare the ghosts away from the conversations, and keep them productive, collaborative, and smart:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;A HREF="/jmeier/archive/2005/12/01/499078.aspx"&gt;&lt;FONT size=2&gt;What makes a good threat model&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; – by J.D. Meier&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;A HREF="/jmeier/archive/2006/04/12/575374.aspx"&gt;&lt;FONT size=2&gt;Performance &amp;amp; Scalability Checkpoint to improve your software engineering&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; – by JD too&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;A href="http://msdn.microsoft.com/security/securecode/threatmodeling/default.aspx"&gt;&lt;FONT size=2&gt;MSDN page having lots of things threat model&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; (the generic portal)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;A href="http://blogs.gotdotnet.com/ricom/archive/2004/04/28/122503.aspx"&gt;&lt;FONT size=2&gt;Rico Mariani’s blog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; – Entry with the foreword of the p&amp;amp;p perf &amp;amp; scale guide with a quote of Donald Knuth quoting Tony Hoare saying ‘&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;A href="http://www.microsoft.com/windowsserversystem/dsi/designwp.mspx"&gt;&lt;FONT size=2&gt;Health Modeling&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; - whitepaper on the Windows Server. They’ve done us all the favor of dumping the health model of a printer in XML. Whee! (But can you write a test runner for it?)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;(Whither my simplicity model paper? Related to maintainability of code? I digress)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;FONT size=2&gt;Kudos: It’s clear that J.D. has done a lot of work in this area. He’s the best I know at distilling these areas in significant, actionable, and insightful ways.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia&gt;&lt;FONT size=2&gt;(OK, My cereal is going something like "Ed - W-T-F-is-this-fluffy-post? Why don't you tell us about&amp;nbsp;dependency injection, aspects, executable models, Object Builder, using XAML to define types dynamically,&amp;nbsp;gps, CAB running in mobile devices, workflow and UI or concurrency or whatever?"&amp;nbsp; A: "I believe writing software is a social activity.&amp;nbsp;I&amp;nbsp;believe that&amp;nbsp;if&amp;nbsp;we learn to communicate, improve how we &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;reason, become more self-aware,&amp;nbsp;and question assumptions in more effective ways we will plain simply write much better software and enjoy it more along the way. Plus -&amp;nbsp;it's my blog. And my doctor&amp;nbsp;told me&amp;nbsp;I shouldn't talk to cereal.)&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Georgia"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=586420" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Off+the+deep+end_2E002E002E00_/default.aspx">Off the deep end...</category></item><item><title>Release of CAB (Composite UI Application Block) !!</title><link>http://blogs.msdn.com/edjez/archive/2005/12/06/CABRelease2005.aspx</link><pubDate>Wed, 07 Dec 2005 02:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:500766</guid><dc:creator>edjez</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/edjez/comments/500766.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=500766</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;And so it releases. This has been a great project and team to work with. I feel privileged to have been able to work with all the folks who made it possible, and to have made such a step forward implementing a close customer connection throughout the project.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/cab.asp"&gt;&lt;FONT face=Verdana size=2&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/cab.asp&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So what is CAB? It's an application block that provides common infrastructure components and a programming model for smart client applications that are composed out of views and business logic that might come from different teams or need to evolve independently. It has been architected considering many a convergence of many patterns observed in large successful&amp;nbsp;customer applications and whre the platform and tools are going in the future in this space.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;It contains:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;WorkItems: a programming abstraction to simplify encapsulating use cases into 'contexts' that have shared state and orchestrating logic and nested recursively&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Plug-in infrastructure: providers for enumerating available modules and loading them into the environment, and orchestration of the application bootstrap&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Shared shell abstractions:&amp;nbsp; a set of interfaces that allow logic to 'share a shell' and to&amp;nbsp;facilitate separation of concerns between UI-intensive shell development and business logic development&amp;nbsp;&lt;/FONT&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Workspaces - a set of interfaces that specify how to show controls in an a given area or style - such as portal, tabbed, MDI windows, etc&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;UI Extension sites - named 'slots' in a shell where you want to add controls such as menus or status bar panes&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Commands - a common way of hooking up multiple UI events to a specific callback inside your application&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Composition infrastructure that helps objects find each other and communicate - such as the ability to share state, auto-wire-up of pub-sub of events&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;A service locator/lifetime container/dependency injection++ foundation&lt;/FONT&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;Built on ObjectBuilder - which allows you to extend the architecture specifying what it means to 'contextualize' an object.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;A &lt;EM&gt;reflective architecture&lt;/EM&gt; that you can explore to see the current state of the application, and a &lt;EM&gt;visualization architecture&lt;/EM&gt; that allows architects and troubleshooters have views that exploit this reflective nature and can show you the internals of the application structure and how it's running while it's live (see the &lt;A href="http://www.gotdotnet.com/codegallery/releases/viewuploads.aspx?id=22f72167-af95-44ce-a6ca-f2eafbf2653c"&gt;sample visualization in a separate download&lt;/A&gt;).&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This is a 'large' app block - you will probably want to do the hands-on-labs and see the webcasts to understand the key concepts in depth. But you can get going with little effort by looking at the quicktstarts and included how-to documentation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;When the time comes around, we'll be working on showing how WinFX technologies such as Windows Workflow and WPF (Avalon) can be used in CAB applications. As always, the goal of these p&amp;amp;p assets is to help you build your applications in that make the best use of the existing platform and sets you up for simplified adoption of the next generation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I hope you enjoy it. To all the customers who participated in our expert advisory board, on-site visits, workshops, webcasts and &lt;A href="http://www.gotdotnet.com/codegallery/codegallery.aspx?id=22f72167-af95-44ce-a6ca-f2eafbf2653c"&gt;gotDotNet community&lt;/A&gt; - THANK YOU.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;//7-12 Updated to add link to Visualization download&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=500766" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/Smart+Client/default.aspx">Smart Client</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>Of EntLib 2.0, a local AOP Workshop, and the infamous TDD article</title><link>http://blogs.msdn.com/edjez/archive/2005/12/05/500396.aspx</link><pubDate>Tue, 06 Dec 2005 07:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:500396</guid><dc:creator>edjez</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/edjez/comments/500396.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=500396</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Quickie blog post, just to get jamming:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;EntLib internals webcast&lt;/STRONG&gt;. Yes, EntLib &lt;EM&gt;and &lt;/EM&gt;CAB ship with ObjectBuilder, our common factory &amp;amp; dependency injection infrastructure ++. Answering the FAQs: Yes, we have one. Yes, it's this one. Yes, you can build something like Spring with it, if you wanted to. Yes, we want your feedback and you to do cool stuff with it. And Yes, I am hoping that folks implement a creation strategy that do a transparent proxying, see my next post why. Interested in ObjectBuilder and how we externalized the config interpretation and wiring to instrumentation out of each app block? See this: 
&lt;P&gt;&lt;EM&gt;So what's this Configuration Source thing meant to be? Why do you have so many kinds of factories? How can I reuse the instrumentation capabilities in my own app? What's different in the new Configuration Designtime?&lt;BR&gt;Get the answers to these and many more questions at the &lt;/EM&gt;&lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032286082%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;&lt;FONT color=#009933&gt;&lt;EM&gt;Enterprise Library for .NET Framework 2.0: Core Architecture webcast&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt;. It's on this coming Thursday,&amp;nbsp;December 8th at 10:00am US Pacific Time / 18:00 UTC. Register now to view the webcast live (this is best if you want to ask us questions), or as always it will be available on demand from the next day&lt;BR&gt;&lt;/EM&gt;&lt;BR&gt;By the way, shipping EntLib on ObjectBuilder was not an easy feat, congrats to the team for pulling it off and consolidating the EntLib and CAB factory and dependency injection approach...at one point in time I started wondering..."what have I done! Include a new component as part of the foundation of something that needs to ship ASAP&amp;nbsp;for what some think is a hazy fluffy ivory-tower architectural benefit! I'll be lynched!".&amp;nbsp;But our p&amp;amp;p devs + testers rock. (Guys - if you are reading this: If &lt;EM&gt;you&lt;/EM&gt; don't pull&amp;nbsp;these feats, nobody can. However, if I ever have to ship a &lt;A href="http://www.microsoft.com/windowsvista/default.mspx"&gt;full OS&lt;/A&gt;, I'll keep the learning in mind).&lt;/P&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;STRONG&gt;Aspect Oriented Programming Workshop&lt;/STRONG&gt; We recently held a workshop around AOP here at MS. I was glad I finally got to meet &lt;A href="http://wwwhome.cs.utwente.nl/~aksit/"&gt;Prof. Mehmet Aksit&lt;/A&gt; in person&amp;nbsp;(from Twente, of &lt;A href="http://trese.cs.utwente.nl/oldhtml/composition_filters/"&gt;Composition Filter&lt;/A&gt; fame). I hoped I would also see Christa Schwanninger from Siemens but she's having a baby (congrats &lt;A href="http://www.kircher-schwanninger.de/"&gt;Christa &amp;amp; Michael&lt;/A&gt;!). My conclusion? To better influence Microsoft the AOSD community should 'consolidate efforts' and express the commonalities that exist in approaches. I mean, there ain't that many e.g. in runtime you'll find 3 main flavors - assembly rewriting, using dynamic languages, or using transparent proxies. Only so many pointcut expressions cover a large % of advice types, and so on. I think it would be good to have a &lt;EM&gt;pattern language&lt;/EM&gt; around AOSD. The AOP alliance has most of the material needed but&amp;nbsp;sometimes&amp;nbsp;I feel the discussions around problem space and solution space get mixed; or that the academic efforts focus on the &lt;EM&gt;uniqueness&lt;/EM&gt; of each solution (which they should) instead of the &lt;EM&gt;commonality&lt;/EM&gt; (which is a lousy strategy&amp;nbsp;for a researcher - to write about what everyone understands!). Mehmet was going to try to get a AO on .NET wiki started somewhere to get this dialogue around commons going, when I find out that it materializes, I'll post. &lt;/P&gt;&lt;/FONT&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;In the meantime, if anyone from the AO community wants to define a factory for proxying, please consider&amp;nbsp;doing it via an&amp;nbsp;ObjectBuilder strategy. It will help others use your solution, on stuff we've built e.g. CAB. And oh, if only I got a dollar for every time I meet a customer who could have benefited from richer interception on .NET. If you want it too ping a comment here, I'll print it nail it to doors on bldg 42. &lt;/P&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;No, I don't have MS's official stand on AOSD, so please don't ask me- &amp;nbsp;there's an old obscure BillG 2nd hand quote from an Australian interview where he &lt;A href="http://computerworld.co.nz/news.nsf/0/A453734B3782CAFDCC256ED000171C8D?OpenDocument&amp;amp;pub=Computerworld"&gt;allegedly&lt;/A&gt; said MS would be embracing it. Definitively the platform is embracing more and more requirements of separation of concerns throughout, which is good. Indigo looks great in this regard. I'd like to see&amp;nbsp;more of&amp;nbsp;a unified approach one day. But&amp;nbsp;a lot of questions are unresolved yet (when you think about&amp;nbsp;trust models around assemblies, for example, who is allowed to advice what?).&amp;nbsp;So I don't know what the end solution would look like. Especially when I think about crosscutting concerns and concurrency, hm. We'll see.&lt;/P&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;&lt;STRONG&gt;The infamous TDD article gets pulled&lt;/STRONG&gt; Unless you have been living in a tupperware, you know&amp;nbsp;there was a fallout over some article about TDD deep in the tree of MSDN VSTS content. Yes, it got removed. &lt;A href="http://msdn2.microsoft.com/en-us/library/ms182521.aspx"&gt;Here's the link&lt;/A&gt;, anyways.&amp;nbsp;It described TDD in terms of some steps that in my opinion was just..plain..wrong...and it &lt;A href="http://www.artima.com/weblogs/viewpost.jsp?thread=137207"&gt;irked&lt;/A&gt;&amp;nbsp;&lt;A href="http://codebetter.com/blogs/scott.bellware/archive/2005/11/21/134910.aspx"&gt;folks&lt;/A&gt; in the TDD community. Anyways, here are my key&amp;nbsp;points late in the&amp;nbsp;game:&lt;/P&gt;&lt;/FONT&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Sorry Jimmy!&amp;nbsp;I'm so late to this flame party it's not even funny...&amp;nbsp;&lt;FONT face=Tahoma&gt;&lt;A href="http://www.jnsk.se/"&gt;Jimmy Nilsson&lt;/A&gt;&lt;/FONT&gt; pings me for comment, I start writing a post in this web form and my machine runs out of battery...there goes my IE with all my text. It would have been a good post. To your question...no, what the article described is not what we do when we say we do TDD in patterns &amp;amp; practices. I respected &lt;a href="http://blogs.msdn.com/randymiller/"&gt;Randy Miller's &lt;/A&gt;reaction a lot, even though he didn't get to&amp;nbsp;blog about it. And I truly beleive in TDD as a design technique.&lt;/P&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;To MS folks...how about some internal review cycles...there's agile and TDD lists... one... email... away.&lt;/P&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;I'm glad the community responded so vigorously. Kudos to all who by nature or effort were able to articulate a response that did not evoke a Turret syndrome diagnosis. &lt;/P&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;I would also&amp;nbsp;like to see those passionate about the subject take advantage of the situation&amp;nbsp;and engage with MS in a &lt;EM&gt;proactive&lt;/EM&gt; way. I mean, it's good agile approaches will be getting more visibility. As the word gets spread, it may get mangled. That's just 2nd law of thermodynamics. MS and its tools channel is a &lt;EM&gt;huge megaphone&lt;/EM&gt; for the agile message.&amp;nbsp;I know, many people ask, "who needs a megaphone in this era of blogs &amp;amp; social web 2.0 long-tail software"? Well, not everyone is in-the-know of what Michael Feathers or Brian Button are saying, or has their RSS pointing at the community gurus..so influencing an ISV like MS to help spread the word in a way the respected leaders think it's right not only will help the overall industry, but also creates a market for those engaging in it.&amp;nbsp;Consider this personal estimate:&amp;nbsp;probably more Microsoft customer-devs relate OOP advice to &lt;A href="http://www.insteptech.com/h_whoweare.htm"&gt;Deborah Kurata&lt;/A&gt; than the &lt;A href="http://hillside.net/patterns/DPBook/GOF.html"&gt;GoF&lt;/A&gt;. So what about ganging up on MS and saying "we will publish books, training, etc and furnish you at a fee with agile-community-approved guidance that the masses can&amp;nbsp;take a shot at&amp;nbsp;without requiring going on a 4-month spiritual walkabout with Kent Beck on some rainy hill in Oregon". I think it could be a win.&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;What's the news? CAB shipping, EntLib shipping, and we are off to a great start with patterns &amp;amp; practices in 2006 and starting to plan the wave of stuff for WinFX+ timeframe technologies.... Avalon...Indigo...Workflow...LinQ This is my 5th year in this group. Any one year is never similar to the previous one. Hope you are finding the existence of p&amp;amp;p as helpful as I enjoy working here. &lt;/P&gt;
&lt;P&gt;Namasté! no, wait, that's Soma, not me. Thank you!&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=500396" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/Smart+Client/default.aspx">Smart Client</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Separation+Of+Concerns/default.aspx">Separation Of Concerns</category><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>@ Seattle Code Camp this Weekend</title><link>http://blogs.msdn.com/edjez/archive/2005/10/22/seattle-code-camp-2005.aspx</link><pubDate>Sun, 23 Oct 2005 05:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:483902</guid><dc:creator>edjez</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/edjez/comments/483902.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=483902</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Today my brother &amp;amp; I headed towards &lt;A href="http://pacwest.ms/codecamp/sea/1/"&gt;Seattle Code Camp&lt;/A&gt;. &lt;A href="http://www.vergentsoftware.com/blogs/ckinsman/default.aspx"&gt;Chris Kinsman&lt;/A&gt; is the director &amp;amp; the DeVry University provides the place. The agenda is decided upon by volunteer speakers (it is a bit more structured than Foo, but I still like the un-conference feeling to it). It's nice to see the local community congregate and have such an event, and the fact that many speakers try out their skills at being up front for the same time. &amp;nbsp;I was able to see many friends, present and past. I got to see &lt;A href="http://www.thezbuffer.com/categories/pdc.aspx"&gt;Andy Dunn&lt;/A&gt; although I missed his talk on Shaders ("I think I scared them with math again..." he mused right after). &lt;A href="http://www.agileprogrammer.com/dotnetguy/"&gt;Brad Wilson&lt;/A&gt; (of p&amp;amp;p fame) gave an intro to Ruby &amp;amp; Rails, and John Luif, Olaf and Kzu were around as well.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://weblogs.asp.net/cazzu/"&gt;Kzu&lt;/A&gt;, &lt;A href="http://www.agileprogrammer.com/dotnetguy/"&gt;Brad&lt;/A&gt; and &lt;A href="http://www.peterprovost.org/"&gt;Peter Provost&lt;/A&gt;&amp;nbsp;&amp;amp; &lt;A href="http://dotnetjunkies.com/WebLog/tshak/"&gt;TShak&lt;/A&gt;&amp;nbsp;have talks &lt;A href="http://pacwest.ms/codecamp/sea/1/agenda.html"&gt;scheduled&lt;/A&gt; for tomorrow about stuff like Monad, dependency injection containers, CAB, &amp;nbsp;GAT, and LINQ. Cool people, cool topics. See you around. I'm the one with the badge that says "&lt;FONT size=1&gt;Hello my name is&lt;/FONT&gt; &lt;FONT size=3&gt;Ed&lt;/FONT&gt;"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=483902" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>One Bad Unit Test..How many angels can dance on the head of a pin?</title><link>http://blogs.msdn.com/edjez/archive/2005/08/06/How-many-angels-can-dance-on-a-pin.aspx</link><pubDate>Sun, 07 Aug 2005 09:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:448685</guid><dc:creator>edjez</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/edjez/comments/448685.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=448685</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I was coding some stuff this last Friday, trying to clarify to myself some of the feedback we've been getting for CAB, the Dependency Injection work we've done there and we are doing in EntLib, partial specifications, and&amp;nbsp;related topics.&amp;nbsp;I was playing on a prototype, which inclines me&amp;nbsp;strongly&amp;nbsp;to write unit tests carefully and with rigor. I do this because a good set of tests will make you think hard of the semantic requirements, scopes of collaboration, and other important issues of your program. I find it that choosing carefully which test to write next is orders of magnitude more significant than making code that will pass it. With good unit tests I consider this second step&amp;nbsp;almost a&amp;nbsp;trivial, inductive activity. It must be weird, if you're not used to seeing TDD, to watch me staring at empty space for a while, then after 10 minutes saying "aha!" and writing a 10 liner unit test... that fails.. and then writing 3 lines to make it pass. I guess that's my quirky way of being in the zone when I am by myself (pairing around spikes and prototypes is an order of magnitude better.. I cringe when I think the hours people -including me-&amp;nbsp;spend coding on their own at weird times of day, when Mon-Fri 8-5 they congregate in buildings to do...email. But I digress.)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;At one point during the day&amp;nbsp;there was a couple of hours when my rigor kind of went down. That is something that pairing will prevent, but I didn't have anyone to turn to (not in the war room). I reverted inch by inch to the 'old way', making some notes on paper, hacking a bunch of classes 'that you just know what they have to do' with that high-speed caffeine/sugar/videogame high feeling..that you know will you pay for later. But I was typing typing typing typing pretending all was OK and exhilarated at the apparent speed. At one point in time I wrote a quick test (failed) and changed the code to make it pass and..failed. duh! I know what the issue is..went fix the code - remove-this-here, change-this-to-here, delete-this and run test and ....fails. Huh?.&amp;nbsp;I looked again, and &lt;EM&gt;I had changed a different class than the intended one&lt;/EM&gt;. My change made sense anyways, it was an improvement of the semantics (not just a refactoring) but then it hit me:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I changed a different class than I intended.&amp;nbsp;The tests around that class &lt;EM&gt;still&lt;/EM&gt; &lt;EM&gt;passed&lt;/EM&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I panicked. Not only I had coded a new subsystem with appalling test coverage, but I had left a trail of vestigial cruft out of half-thought though requirements, interfaces with just one implementation, and the one trivial unit test that was NOT breaking was waving all my bad practices in my face. So I immediately reverted to the point where I hadn't made that change and try to analyze what test would have broken by that change. Finding the test that &lt;EM&gt;would have failed&lt;/EM&gt; because of my change actually was easy, but once I coded&amp;nbsp;it,&amp;nbsp;it was clearly not good: it was an horrible statement of intent, a disgust of a specification, a shame of OOP, an insult to Liskov,&amp;nbsp;a mooning to Demeter, and all those things that make your code brittle and plain evil. I did not want my code passing that test at all! &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So I decided to stop and revert and analyze what had gotten me here. As a matter of fact making the ugly test meaningless (and thinking of the meaningful test) sent me on a quest though my code to revert, delete, and clean. Which made me happy&amp;nbsp;since deleting code is my favorite programming activity. It was amazing how much semantic trash had crept in through a couple of missing and bad tests. (Of course if the architecture you are working in favors good modularization and separation of concerns it helps act as a 'containment wall' against such ugliness...but I was working at the core of a very generic component without these benefits. And, to reinforce, paring would have been even better).&amp;nbsp;All that&amp;nbsp;infectious spreading darkness, through&amp;nbsp;one little&amp;nbsp;fixture done wrong. The semantic spaces that we represent in code - especially OO code - are twisty and rich, and through one&amp;nbsp;apparently small mis-understanding (by error, or in my case, by omission) can cause large, unpredictable and&amp;nbsp;almost emergent side-effects&amp;nbsp;elsewhere. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Which reminded me of the 18th? 17th? century discussions of space and spirit- how many angels can dance on the head of a pin? The question is strange because it seems to discuss dimensions totally orthogonal to each other&amp;nbsp;- matter and spiritual force, exagerated by the use of a trivial pin and respect-inducing angels. So how much meaningful insights&amp;nbsp;can leak through one bad or one missing unit test? I guess... just as many.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;...godspeed to the sts-114&amp;nbsp;Discovery astronauts. &lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=448685" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Separation+Of+Concerns/default.aspx">Separation Of Concerns</category><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>p&amp;p Community Process 2.0 is out!</title><link>http://blogs.msdn.com/edjez/archive/2005/07/08/pnpCPTwo.aspx</link><pubDate>Sat, 09 Jul 2005 05:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:437055</guid><dc:creator>edjez</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/edjez/comments/437055.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=437055</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;We have relased the p&amp;amp;p Community Process&amp;nbsp;to 2.0, incorporating feedback we got from customers, partners and field on the 1.0 version.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This one includes:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;- A more realistic relationship between the internal process and externally visible process. In the 2.0 version now we open up the information about the project to the broad community as early as possible but still making sure we will actually have a project to ship :)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;- More explanation around the options available for 'deeper' engagement - how to become an Expert Advisor and &amp;nbsp;week-at-p&amp;amp;p, for example. This was done in an ad-hoc way before&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Here's the URL. Please send us feedback if you have ideas on how we can work in&amp;nbsp; a way that suits you better, or if you think having more visibility into specific aspects of our business would be valuable for you&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://practices.gotdotnet.com/releases/checkfordownload.aspx?id=60dd1bb9-0d1e-45e0-975a-a7f398697344&amp;amp;ReleaseId=cc9f9070-7133-4729-93dd-b088bd9a2e30"&gt;&lt;FONT face=Verdana size=2&gt;http://practices.gotdotnet.com/releases/checkfordownload.aspx?id=60dd1bb9-0d1e-45e0-975a-a7f398697344&lt;/FONT&gt;&amp;amp;ReleaseId=cc9f9070-7133-4729-93dd-b088bd9a2e30&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=437055" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/Smart+Client/default.aspx">Smart Client</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>5 years of guidance groups at Microsoft! - What's your story?</title><link>http://blogs.msdn.com/edjez/archive/2005/06/30/pnpInsideOut.aspx</link><pubDate>Fri, 01 Jul 2005 08:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:434538</guid><dc:creator>edjez</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/edjez/comments/434538.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=434538</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;5 years ago Microsoft executives approved the existence of a group focused on guidance - understanding enterprise customer scenarios, creating a dedicated engineering team to producing guidance in the form of code,patterns, frameworks and guides, and consolidating the authoritative content that enterprises would use under an identity. This team, called PAG internally, eventually became &lt;EM&gt;patterns &amp;amp; practices&lt;/EM&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Some of us in the team put together some wiki pages with the motivations and approaches of our group, sprinkled with candid and colorful comments about how we got here, what it's like to be outside the normal product group hierarchy at Microsoft,and other interesting facts.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;This is not just about explaining p&amp;amp;p - It's about having a 2-way dialogue with YOU -a conversation about why we exist, and areas for growth. We put it in a wiki so you can go and tell us your perspective and your own anecdotes.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The pages include things&amp;nbsp;like: &lt;BR&gt;- why did p&amp;amp;p get created, where does it live in the MS organization, and what's it like to be there?&lt;BR&gt;- How do we explain internally and externally the difference between product stuff and p&amp;amp;p stuff?&lt;BR&gt;- What are some of the things currently going on inside of our group? What tools and methodologies do we use?&lt;BR&gt;- What are the observed trends and directions of our group?&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://channel9.msdn.com/wiki/default.aspx/Channel9.PatternsAndPracticesInsideOut"&gt;http://channel9.msdn.com/wiki/default.aspx/Channel9.PatternsAndPracticesInsideOut&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;(We didn't have the time to make it to short but it's light reading)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I'm thrilled to work in this group and this paper is part of our commitment to be transparent and more effective at learning how to be your -our customers'- ambassador.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=434538" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/Smart+Client/default.aspx">Smart Client</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category><category domain="http://blogs.msdn.com/edjez/archive/tags/Separation+Of+Concerns/default.aspx">Separation Of Concerns</category><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>Most people go hiking to lakes...architects prefer hiking around:</title><link>http://blogs.msdn.com/edjez/archive/2005/05/12/meta-lake.aspx</link><pubDate>Thu, 12 May 2005 10:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:416757</guid><dc:creator>edjez</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/edjez/comments/416757.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=416757</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Meta Lake!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;IMG src="http://www.gotdotnet.com/workspaces/customization/images.aspx?fileId=5003c0fd-0e35-476b-82ad-886472524a87&amp;amp;id=60dd1bb9-0d1e-45e0-975a-a7f398697344&amp;amp;flg=1"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Sorry. Couldn't resist.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=416757" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item><item><title>Darth vader's Blog</title><link>http://blogs.msdn.com/edjez/archive/2005/04/29/413556.aspx</link><pubDate>Sat, 30 Apr 2005 00:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:413556</guid><dc:creator>edjez</dc:creator><slash:comments>40</slash:comments><comments>http://blogs.msdn.com/edjez/comments/413556.aspx</comments><wfw:commentRss>http://blogs.msdn.com/edjez/commentrss.aspx?PostID=413556</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Missed it when it hit /. a couple of days ago. It's hilarious. &lt;/FONT&gt;&lt;A href="http://darthside.blogspot.com/"&gt;&lt;FONT face=Verdana size=2&gt;http://darthside.blogspot.com/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;You know it's going to be good when Darth Vader's post title is "I Am Surrounded by Idiots"&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=413556" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/edjez/archive/tags/_2F00_etc_2F00_other/default.aspx">/etc/other</category></item></channel></rss>