<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0"><channel><title>nPlus1.org</title><link>http://nplus1.org/</link><description>it depends...</description><generator>Graffiti CMS 1.2 (build 1.2.0.1678)</generator><lastBuildDate>Tue, 10 Nov 2009 13:03:10 GMT</lastBuildDate><image><link>http://nplus1.org</link><url>http://nplus1.org/images/npluslogo-small.gif</url><title>nPlus1.org</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Nplus1" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Design Review Checklist for SOA Service Capabilities</title><link>http://nplus1.org/tidbits/design-review-checklist-for-soa-service-capabilities/</link><pubDate>Tue, 10 Nov 2009 14:03:10 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/design-review-checklist-for-soa-service-capabilities/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&amp;nbsp;&lt;a href="http://artofsoftwarereuse.com/2009/11/09/design-review-checklist-for-service-capabilities/"&gt;http://artofsoftwarereuse.com/2009/11/09/design-review-checklist-for-service-capabilities/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vijay Narayanan has created a checklist for reviewing service capabilities of SOA solutions. According to the post:&lt;/p&gt;
&lt;p&gt;&amp;quot;This checklist contains close to 50 questions and covers the following areas:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Functionality&lt;/li&gt;
    &lt;li&gt;Design decomposition&lt;/li&gt;
    &lt;li&gt;Documentation&lt;/li&gt;
    &lt;li&gt;Coupling&lt;/li&gt;
    &lt;li&gt;Reuse&lt;/li&gt;
    &lt;li&gt;Consistency&lt;/li&gt;
    &lt;li&gt;Integration&lt;/li&gt;
    &lt;li&gt;Performance&lt;/li&gt;
    &lt;li&gt;Reliability&lt;/li&gt;
    &lt;li&gt;Deployment&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=RV3_bW-blHU:50aE9O0-7Ok:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=RV3_bW-blHU:50aE9O0-7Ok:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=RV3_bW-blHU:50aE9O0-7Ok:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=RV3_bW-blHU:50aE9O0-7Ok:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=RV3_bW-blHU:50aE9O0-7Ok:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=RV3_bW-blHU:50aE9O0-7Ok:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/RV3_bW-blHU" height="1" width="1"/&gt;</description></item><item><title>Busting the Mythical Man Month</title><link>http://nplus1.org/tidbits/busting-the-mythical-man-month/</link><pubDate>Sun, 08 Nov 2009 13:24:04 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/busting-the-mythical-man-month/</guid><dc:creator>Mike Wood</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;A group at Microsoft Research decided to investigate several of the ideas set forth in the &lt;em&gt;Mythical Man Month&lt;/em&gt; as well as a few other software development trends, such as Test Driven Development.&amp;nbsp; The results are pretty interesting.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx"&gt;http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;To some degree, The Mythical Man Month formed the foundation of a lot of the work we did,&amp;rdquo; [Nachi] Nagappan says. &amp;ldquo;But we also studied other existing assumptions in software engineering. They can be good or bad, because people make decisions based on these assumptions. Our primary goal was to substantiate some of these beliefs in a Microsoft context, so managers can make decisions based on data rather than gut feel or subjective experience.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Some of the items covered were TDD and the use of assertions in code.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you have experience with these practices, do you agree or disagree with their findings?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_65wwgzsaaw:pr4xclc7wqw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_65wwgzsaaw:pr4xclc7wqw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=_65wwgzsaaw:pr4xclc7wqw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_65wwgzsaaw:pr4xclc7wqw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_65wwgzsaaw:pr4xclc7wqw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=_65wwgzsaaw:pr4xclc7wqw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/_65wwgzsaaw" height="1" width="1"/&gt;</description></item><item><title>Object Oriented Programming, Part 2: Understanding Objects</title><link>http://nplus1.org/articles/object-oriented-programming-part-2-understanding-objects/</link><pubDate>Fri, 06 Nov 2009 01:51:23 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/articles/object-oriented-programming-part-2-understanding-objects/</guid><dc:creator>James Bender</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/articles/">Articles</category><description>&lt;div style="margin: 0in 0in 10pt"&gt;Before we can do that, it&amp;rsquo;s important to understand the basics of objects before you can grasp Object Oriented Programming.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Key Object Concepts&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Objects are essentially a collection of structured data stored in memory. An object is based on a class that defines how to create an object.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;In this article, I will describe the following concepts.&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Classes&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Class members&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 1in"&gt;&lt;span&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Properties and Fields&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 1in"&gt;&lt;span&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Methods&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 1in"&gt;&lt;span&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Events&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Instances&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Static Types&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Interfaces&lt;/div&gt;
&lt;div style="text-indent: -0.25in; margin: 0in 0in 10pt 0.5in"&gt;&lt;span&gt;&amp;middot;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Message Passing&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Because all these terms are interrelated, it is difficult to discuss one without mentioning the others.&amp;nbsp;So be patient if I mention a term before I define it &amp;ndash; I will get to the definition shortly.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Classes&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;A class is a definition for an object. It describes the attributes such as properties, fields and methods (more on this later) of an object. It may also set default values and implementations for these attributes. Think of a class as a blueprint we can use to help us build an object. Generally, we work with classes only at design-time, defining the attributes appropriate for that class.&amp;nbsp;In most cases, we do not work directly with classes while a program is running.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;A class is often represented by a UML class diagram, such as the one below.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&lt;img alt="" src="http://nplus1.org/images/articleImages/OOP-Part-2/OOP_Part_2.png" /&gt;&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Public Members&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;A class (and an object) exposes a finite set of publicly-exposed members. Members are methods, properties and fields (defined below). This public interface is how you interact with an object.&amp;nbsp;An object may be capable of far more than what it exposes by its public interface, but these other capabilities are not seen directly by the outside world. Keeping object interfaces simple is one way that an object can help simplify a complex system.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Properties and Fields&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Properties and fields describe static data associated with a class.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;A property is similar to a field, but a property provides a &amp;ldquo;Getter&amp;rdquo; and &amp;ldquo;Setter&amp;rdquo; &amp;ndash; methods that run when you attempt to read or write the value of a property. This allows a developer to add code that will automatically run whenever a field&amp;rsquo;s value is retrieved or assigned. This code might perform validation or calculate a value on the fly.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Methods&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;A method is a discrete section of code that is associated with a class and therefore with an object. Some methods return a value; others just run code and return nothing.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Instances&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;So far, we&amp;rsquo;ve been talking about objects without defining what an object is. An object is an instance of a class &amp;ndash; it represents a specific set of data.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;We said before that a class is like a blueprint. Think of an object as the house, machine or other device built from that blueprint. &amp;nbsp;Methods, properties and fields defined in a class become methods, properties and fields in any object based on that class.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;It is possible to produce more than one house from the same blueprint. Similarly, it is possible to create multiple objects from the same class.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Static Types&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;It is possible to instantiate a class without explicitly creating an instance of that class. You can do this if the class is defined as &amp;ldquo;static&amp;rdquo;.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;For static classes, the .Net framework takes care of instantiating an object for us. Static types require and use only one instance of a class.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Constructors&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;A constructor is a special type of method that runs when an object is first created. This is a good place to put initialization code for your object.&amp;nbsp;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;You may create constructors that accept parameters. This is useful if you want to set the values of an object&amp;rsquo;s properties at the time you instantiate that object.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Events&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;An event is a notification by an object that something has happened. This something might be user input, such as a mouse-click on a form; or it can be something less tangible, such as a customer exceeding his credit limit. Other objects may or may not respond to these events.&amp;nbsp;It is up to these other objects to subscribe to an event if they wish to respond to that event. Generally the object and raising event do not know how the event will be consumed.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Interfaces&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;An interface looks like a class in that it can have properties, fields and methods. The difference is that the properties and methods contain no implementation code. Interfaces are used only to define the public members of a class. A class implementing an interface inherits all the public members of that interface and it is up to the class to provide implementation.&lt;/div&gt;
&lt;div style="margin: 10pt 0in 0pt"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Message Passing&lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;Objects communicate by passing messages. These messages can be primitive data types, such as strings and integers; they can be XML; they can be binary data; or they can be other objects.&amp;nbsp;Generally speaking objects expose public members to accept these messages. This helps to simplify the communication between objects.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;In this article, we learned the basics of objects, their definitions, their members and how to work with them. In the next article, we&amp;rsquo;ll introduce Object Oriented Programming constructs and how these concepts are implemented using objects.&lt;/div&gt;
&lt;div style="margin: 0in 0in 10pt"&gt;&amp;nbsp;
&lt;div style="margin: 0in 0in 0pt"&gt;&lt;em&gt;David Giard has been developing solutions using Microsoft technologies since 1993.&amp;nbsp;In the past, he has spoken at Day of .Net, CodeStock, Microsoft DevCares, Microsoft ArcReady, Dot Net University, X Conference and numerous user groups around the Midwest. &amp;nbsp;He is a recovering certification addict and holds an MCTS, MCSD, MCSE, and MCDBA, as well as a BS and an MBA.&amp;nbsp;He is the host and producer of the popular online TV show Technology and Friends. He is an officer of the Great Lakes Area .Net User Group. He is an avid photographer and has visually documented many of the Heartland community events. You can read his latest thoughts at &lt;/em&gt;&lt;a href="http://www.davidgiard.com/"&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;www.DavidGiard.com&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&amp;nbsp;&lt;/em&gt;&lt;/div&gt;
&lt;div style="margin: 0in 0in 0pt"&gt;&lt;em&gt;David lives in Michigan with his two teenage sons&lt;/em&gt;.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=naXdbKMvOIo:C_t7zVQLaQo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=naXdbKMvOIo:C_t7zVQLaQo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=naXdbKMvOIo:C_t7zVQLaQo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=naXdbKMvOIo:C_t7zVQLaQo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=naXdbKMvOIo:C_t7zVQLaQo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=naXdbKMvOIo:C_t7zVQLaQo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/naXdbKMvOIo" height="1" width="1"/&gt;</description></item><item><title>Turtles and Architecture</title><link>http://nplus1.org/tidbits/turtles-and-architecture/</link><pubDate>Wed, 04 Nov 2009 15:14:16 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/turtles-and-architecture/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&lt;a href="http://techdistrict.kirkk.com/2009/11/03/turtles-and-architecture/"&gt;http://techdistrict.kirkk.com/2009/11/03/turtles-and-architecture/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Software architecture is 'turtles all the way down.'&lt;/em&gt;&lt;em&gt;Many of us can relate. In dysfunctional organizations, architects and developers fail to communicate effectively. The result is a lack of transparency and a lack of understanding by both sides, ... The failure often occurs (though I recognize there are other causes) because architecture is about breadth and development is about depth.&amp;nbsp; Each group has disparate views of software architecture, and while both are warranted, a gap between these views exists.&amp;nbsp;The architect might focus on applications and services while the developer focuses on the code. Sadly, there is a lot in between that nobody is focused on. It is this gap between breadth and depth that contributes to ivory tower architecture.&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=T5GoYFM-OCo:eltXxdVZwOY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=T5GoYFM-OCo:eltXxdVZwOY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=T5GoYFM-OCo:eltXxdVZwOY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=T5GoYFM-OCo:eltXxdVZwOY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=T5GoYFM-OCo:eltXxdVZwOY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=T5GoYFM-OCo:eltXxdVZwOY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/T5GoYFM-OCo" height="1" width="1"/&gt;</description></item><item><title>nPlus1 Winter 2009 ArcSummit (Chicago)</title><link>http://nplus1.org/tidbits/nplus1-winter-2009-arcsummit-chicago/</link><pubDate>Fri, 30 Oct 2009 00:31:31 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/nplus1-winter-2009-arcsummit-chicago/</guid><dc:creator>Mike Wood</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;nPlus1.org is hosting its&amp;nbsp;fifth Architecture Summit on December 7th in Chicago, IL. The topic of this summit will be Patterns and Principles. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Session One: Software Patterns&lt;br /&gt;
&lt;/strong&gt;Patterns are an important tool to use as architects and developers. They provide a common vocabulary for us to design with, as well as a common approach to a common problem. Come learn about useful patterns, and how to use them in your everyday code.&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Session Two: How I Learned To Love Dependency Injection &lt;br /&gt;
&lt;/strong&gt;Dependency Injection is one of those scary topics that most developers avoid. It sounds all &amp;lsquo;high-falootin&amp;rsquo; and complex. It&amp;rsquo;s not. Really. We wouldn&amp;rsquo;t lie. It&amp;rsquo;s a great way to manage complexity in your system, and a great way to make your system so much more testable. And isn&amp;rsquo;t that what we all want? &lt;br /&gt;
&lt;br /&gt;
Each session will be followed by open discussions periods.&lt;br /&gt;
&lt;br /&gt;
A catered lunch will be provided starting at noon when the welcome time begins.&lt;/p&gt;
&lt;p&gt;There will be an optional Introduction to Object Oriented Programming prior to lunch from 10:00 AM to Noon.&amp;nbsp; If you're looking to get up to speed quickly prior to the patterns and DI talk, or if you just want a refresher, please come to the morning session.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Register at: &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=142763"&gt;https://www.clicktoattend.com/invitation.aspx?code=142763&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=MaGqdqCkQHM:cqzHgwYMfyc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=MaGqdqCkQHM:cqzHgwYMfyc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=MaGqdqCkQHM:cqzHgwYMfyc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=MaGqdqCkQHM:cqzHgwYMfyc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=MaGqdqCkQHM:cqzHgwYMfyc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=MaGqdqCkQHM:cqzHgwYMfyc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/MaGqdqCkQHM" height="1" width="1"/&gt;</description></item><item><title>Cloud Computing Use Cases White Paper</title><link>http://nplus1.org/tidbits/cloud-computing-use-cases-white-paper/</link><pubDate>Thu, 29 Oct 2009 12:38:58 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/cloud-computing-use-cases-white-paper/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&lt;em&gt;&lt;font size="3"&gt;
&lt;p&gt;&lt;a href="http://www.stumbleupon.com/s/#2jJDaf/cloud-computing-use-cases.googlegroups.com/web/Whitepaper_V2_Draft_3.pdf?gda=V5VvH0wAAAAPGXgkJ5fi30lYg4awQpoEt_zsDgQGqOYzy1aGmKyJO7dMQXP4LWLs8nZKm8G1Sg4qmt-Oc-AoYVao2e3x_UDw_Vpvmo5s1aABVJRO3P3wLQ&amp;amp;gsc=QZjXAgsAAABQG7y5erK9QmR0z42f1NGR/"&gt;http://www.stumbleupon.com/s/#2jJDaf/cloud-computing-use-cases.googlegroups.com/web/Whitepaper_V2_Draft_3.pdf?gda=V5VvH0wAAAAPGXgkJ5fi30lYg4awQpoEt_zsDgQGqOYzy1aGmKyJO7dMQXP4LWLs8nZKm8G1Sg4qmt-Oc-AoYVao2e3x_UDw_Vpvmo5s1aABVJRO3P3wLQ&amp;amp;gsc=QZjXAgsAAABQG7y5erK9QmR0z42f1NGR/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&amp;quot;The Cloud Computing Use Case group brought together cloud consumers and cloud vendors to define common use case scenarios for cloud computing. The use case scenarios demonstrate the performance and economic benefits of cloud computing and are based on the needs of the widest possible range of consumers. &lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/em&gt;&lt;font size="3"&gt;
&lt;p&gt;The goal of this white paper is to highlight the capabilities and requirements that need to be standardized in a cloud environment to ensure interoperability, ease of integration and portability. It must be possible to implement all of the use cases described in this paper without using closed, proprietary technologies. Cloud computing must evolve as an open environment, minimizing vendor lock-in and increasing customer choice.&amp;quot;&lt;/p&gt;
&lt;/font&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_UBEmIFKjmc:_XDbdh9cAvQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_UBEmIFKjmc:_XDbdh9cAvQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=_UBEmIFKjmc:_XDbdh9cAvQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_UBEmIFKjmc:_XDbdh9cAvQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_UBEmIFKjmc:_XDbdh9cAvQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=_UBEmIFKjmc:_XDbdh9cAvQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/_UBEmIFKjmc" height="1" width="1"/&gt;</description></item><item><title>Enterprise Service Pollution</title><link>http://nplus1.org/tidbits/enterprise-service-pollution/</link><pubDate>Tue, 27 Oct 2009 16:25:06 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/enterprise-service-pollution/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&lt;a href="http://service-architecture.blogspot.com/2009/10/requirements-landfill-challenge-of.html"&gt;http://service-architecture.blogspot.com/2009/10/requirements-landfill-challenge-of.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Enterprise Services of any type from Business Services like procurement through to technical infrastructure services such as Identity management are all at risk from a threat of pollution. I call this threat the &lt;b&gt;requirements landfill&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
One of the key principles of SOA in operation has been the ability to have services which are used across the enterprise. These single services represent a single point of truth and a single functional boundary that ensures enterprise consistency, it is their goal to shift away from fragmented sytems towards Services which represent the single way of accomplishing a technical or business objective&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is great and good but I've been seeing something more and more over the past few years. Its that these enterprise class services, particuarly when successful, suffer from being the easy place to add new requirements rather than always being the right place to add those requirements.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_OdiobrQlPU:R2cY1JVdnXk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_OdiobrQlPU:R2cY1JVdnXk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=_OdiobrQlPU:R2cY1JVdnXk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_OdiobrQlPU:R2cY1JVdnXk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=_OdiobrQlPU:R2cY1JVdnXk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=_OdiobrQlPU:R2cY1JVdnXk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/_OdiobrQlPU" height="1" width="1"/&gt;</description></item><item><title>Microsoft releases The Infrastructure Planning and Design Guide Series</title><link>http://nplus1.org/tidbits/microsoft-releases-the-infrastructure-planning-and-design-guide-series/</link><pubDate>Mon, 26 Oct 2009 12:20:02 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/microsoft-releases-the-infrastructure-planning-and-design-guide-series/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/solutionaccelerators/ee382254.aspx"&gt;http://technet.microsoft.com/en-us/solutionaccelerators/ee382254.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Infrastructure Planning and Design guide series gives you architectural guidance for Microsoft infrastructure products. The IPD guides help clarify and streamline design processes for Microsoft infrastructure technologies, with each guide addressing a unique infrastructure technology or scenario.&amp;nbsp; &lt;br /&gt;
&lt;/em&gt;&lt;a id="ctl00_mainContentContainer_ctl03" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl03',this);" href="http://technet.microsoft.com/en-us/library/cc196387.aspx"&gt;&lt;em&gt;Learn more.&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;IPD guides provide:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;em&gt;Concise planning guidance to design an infrastructure for Microsoft technologies&lt;/em&gt;&lt;/li&gt;
    &lt;li&gt;&lt;em&gt;The critical decisions to be addressed and the available options&lt;/em&gt;&lt;/li&gt;
    &lt;li&gt;&lt;em&gt;A means to validate design decisions with the business to ensure that the solution meets the requirements of both business and infrastructure stakeholders&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=rxTixGvFZT8:dZVilm9GD8I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=rxTixGvFZT8:dZVilm9GD8I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=rxTixGvFZT8:dZVilm9GD8I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=rxTixGvFZT8:dZVilm9GD8I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=rxTixGvFZT8:dZVilm9GD8I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=rxTixGvFZT8:dZVilm9GD8I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/rxTixGvFZT8" height="1" width="1"/&gt;</description></item><item><title>SOA Manifesto</title><link>http://nplus1.org/tidbits/soa-manifesto/</link><pubDate>Mon, 26 Oct 2009 12:04:31 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/soa-manifesto/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&lt;a href="http://www.soa-manifesto.org/"&gt;http://www.soa-manifesto.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So it seems that some SOA folks got together and created a manifesto for SOA in a manner similar to the &lt;a href="http://www.agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;. What do you think?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=COmCKvayotw:oLluAGpbC0g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=COmCKvayotw:oLluAGpbC0g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=COmCKvayotw:oLluAGpbC0g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=COmCKvayotw:oLluAGpbC0g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=COmCKvayotw:oLluAGpbC0g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=COmCKvayotw:oLluAGpbC0g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/COmCKvayotw" height="1" width="1"/&gt;</description></item><item><title>To gain collaboration, lean on the common values</title><link>http://nplus1.org/tidbits/to-gain-collaboration-lean-on-the-common-values/</link><pubDate>Tue, 20 Oct 2009 17:06:57 GMT</pubDate><guid isPermaLink="true">http://nplus1.org/tidbits/to-gain-collaboration-lean-on-the-common-values/</guid><dc:creator>Michael Levy</dc:creator><slash:comments>0</slash:comments><category domain="http://nplus1.org/tidbits/">Tidbits</category><description>&lt;p&gt;&lt;em&gt;&amp;quot;It is not enough for an EA to &amp;ldquo;want&amp;rdquo; to collaborate, or even to be &amp;ldquo;open&amp;rdquo; to collaboration.&amp;nbsp; Other roles can make that claim.&amp;nbsp; The EA has no choice but to &amp;ldquo;drive&amp;rdquo; collaboration: to make collaboration happen in situations where your stakeholders may actually be incented to ignore you, disregard you, or outright oppose your very existence.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;And there&amp;rsquo;s the rub.&amp;nbsp; How does an EA create an environment of collaboration, and mutual interdependency, without wielding a large club?&amp;nbsp; There are many answers to this question, but the one I want to touch on, right now, is '&lt;strong&gt;the appeal to common values.' &lt;/strong&gt;&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="http://blogs.msdn.com/nickmalik/archive/2009/10/19/collaboration-without-common-values-is-fruitless.aspx"&gt;http://blogs.msdn.com/nickmalik/archive/2009/10/19/collaboration-without-common-values-is-fruitless.aspx&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=d8tXvTSkAFY:dl5Cr1tmhmY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=d8tXvTSkAFY:dl5Cr1tmhmY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=d8tXvTSkAFY:dl5Cr1tmhmY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=d8tXvTSkAFY:dl5Cr1tmhmY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Nplus1?a=d8tXvTSkAFY:dl5Cr1tmhmY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Nplus1?i=d8tXvTSkAFY:dl5Cr1tmhmY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Nplus1/~4/d8tXvTSkAFY" height="1" width="1"/&gt;</description></item></channel></rss>
