<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://commons.oreilly.com/wiki/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Contribution 59 - Revision history</title>
		<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.11.0</generator>
		<lastBuildDate>Sun, 19 May 2013 11:39:57 GMT</lastBuildDate>
		<item>
			<title>Wmr513: /* Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11413&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 13:51, 3 July 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As with any profession, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;there is a &lt;/del&gt;jargon used so that individuals within that profession can effectively communicate with one another. Lawyers talk to one another about habes, voir dire, and benire; &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;airline pilots talk to one another about cherubs, flight levels, and FASO; carpenters &lt;/del&gt;talk to one another about butt joints, lap joints, and flux&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;. The same holds true in the software architecture profession. &lt;/del&gt;Software &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;architects &lt;/del&gt;talk to one another about ROA, Two Step View, and Layer Supertype. Wait, what was that? &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As with any profession, jargon &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;is &lt;/ins&gt;used so that individuals within that profession can effectively communicate with one another. Lawyers talk to one another about habes, voir dire, and benire; &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Carpenters &lt;/ins&gt;talk to one another about butt joints, lap joints, and flux&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;; &lt;/ins&gt;Software &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Architects &lt;/ins&gt;talk to one another about ROA, Two Step View, and Layer Supertype. Wait, what was that? &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;There are &lt;/del&gt;four basic categories &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;of architecture and design patterns&lt;/del&gt;: Enterprise Architecture &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns&lt;/del&gt;, Application Architecture &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns&lt;/del&gt;, Integration &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns&lt;/del&gt;, and Design &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns&lt;/del&gt;. These categories are generally based on the level of scope within the overall architecture. Enterprise architecture patterns deal with the high-level architecture, whereas design patterns deal with how individual components within the architecture are structured and behave. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Architecture and design patterns can be classified into &lt;/ins&gt;four basic categories: Enterprise Architecture &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Patterns&lt;/ins&gt;, Application Architecture &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Patterns&lt;/ins&gt;, Integration &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Patterns&lt;/ins&gt;, and Design &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Patterns&lt;/ins&gt;. These categories are generally based on the level of scope within the overall architecture. Enterprise architecture patterns deal with the high-level architecture, whereas design patterns deal with how individual components within the architecture are structured and behave. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Enterprise Architecture Patterns define the framework for the high-level architecture. Some of the more common architecture patterns include Event Driven Architecture (EDA), Service Oriented Architecture (SOA), Resource Oriented Architecture (ROA), and Pipeline Architecture.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Enterprise Architecture Patterns define the framework for the high-level architecture. Some of the more common architecture patterns include Event Driven Architecture (EDA), Service Oriented Architecture (SOA), Resource Oriented Architecture (ROA), and Pipeline Architecture.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Application Architecture Patterns specify how applications or subsystems within the scope of a larger enterprise architecture should be designed. Some common pattern catalogs in this category include the well-known J2EE design patterns (&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;such as &lt;/del&gt;Session &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;façade &lt;/del&gt;and &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Service To Worker&lt;/del&gt;) and the application architecture patterns described in Martin Fowler’s book “Patterns of Enterprise Application Architecture”. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Application Architecture Patterns specify how applications or subsystems within the scope of a larger enterprise architecture should be designed. Some common pattern catalogs in this category include the well-known J2EE design patterns (&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;e.g., &lt;/ins&gt;Session &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Façade &lt;/ins&gt;and &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Transfer Object&lt;/ins&gt;) and the application architecture patterns described in Martin Fowler’s book “Patterns of Enterprise Application Architecture”. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Integration Patterns are important for designing and communicating concepts surrounding the sharing of information and functionality between components, applications, and subsystems. Some examples of Integration Patterns include file sharing, remote procedure calls, and numerous messaging patterns. &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Most of &lt;/del&gt;these patterns &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;can be found in the excellent book “Enterprise Integration Patterns” by Hohpe and Woolf or via the web &lt;/del&gt;at http://www.enterpriseintegrationpatterns.com/eaipatterns.html.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Integration Patterns are important for designing and communicating concepts surrounding the sharing of information and functionality between components, applications, and subsystems. Some examples of Integration Patterns include file sharing, remote procedure calls, and numerous messaging patterns. &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;You can find &lt;/ins&gt;these patterns at http://www.enterpriseintegrationpatterns.com/eaipatterns.html.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowledge and familiarity of &lt;/del&gt;the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowing &lt;/ins&gt;the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;In addition to understanding and knowing the basic architecture and design patterns, it &lt;/del&gt;is also important to be aware of and understand the various anti-patterns as well. Anti-patterns, a term coined by Andrew Koenig, are repeatable processes that produce ineffective results. Some of the more well-known anti-patterns include Analysis Paralysis, Design By Committee, Mushroom Management, and Death March. &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowledge and awareness of anti-&lt;/del&gt;patterns &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;is just as important as knowing &lt;/del&gt;the &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;basic architecture and design patterns&lt;/del&gt;. &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The book “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis” is &lt;/del&gt;a &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;great source &lt;/del&gt;of &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;information on &lt;/del&gt;anti-patterns&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;, as is the website &lt;/del&gt;http://en.wikipedia.org/wiki/Anti-patterns.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;It &lt;/ins&gt;is also important to be aware of and understand the various anti-patterns as well. Anti-patterns, a term coined by Andrew Koenig, are repeatable processes that produce ineffective results. Some of the more well-known anti-patterns include Analysis Paralysis, Design By Committee, Mushroom Management, and Death March. &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowing these &lt;/ins&gt;patterns &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;will help you avoid &lt;/ins&gt;the &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;many pitfalls you will most likely experience&lt;/ins&gt;. &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;You can find &lt;/ins&gt;a &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;list &lt;/ins&gt;of &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;the common &lt;/ins&gt;anti-patterns &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;at &lt;/ins&gt;http://en.wikipedia.org/wiki/Anti-patterns.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowledge of architecture and design patterns is crucial for the success of any software project undertaking. As with other professions, software &lt;/del&gt;architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Software &lt;/ins&gt;architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11277:newid:11413 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 03 Jul 2008 13:51:46 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: /* Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11277&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 18:30, 26 June 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As with any profession, there is a jargon used so that individuals within that profession can effectively communicate with one another. Lawyers talk to one another about habes, voir dire, and benire; airline pilots talk to one another about cherubs, flight levels, and FASO; carpenters talk to one another about butt joints, lap joints, and flux. The same holds true in the software architecture profession. Software architects talk to one another about &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;EDA, &lt;/del&gt;ROA, and &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Pipeline Architecture&lt;/del&gt;. Wait, what was that? &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;As with any profession, there is a jargon used so that individuals within that profession can effectively communicate with one another. Lawyers talk to one another about habes, voir dire, and benire; airline pilots talk to one another about cherubs, flight levels, and FASO; carpenters talk to one another about butt joints, lap joints, and flux. The same holds true in the software architecture profession. Software architects talk to one another about ROA&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;, Two Step View&lt;/ins&gt;, and &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Layer Supertype&lt;/ins&gt;. Wait, what was that? &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11276:newid:11277 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 26 Jun 2008 18:30:26 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: /* Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11276&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 18:26, 26 June 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Application Architecture Patterns specify how applications or subsystems within the scope of a larger enterprise architecture should be designed. Some common pattern catalogs in this category include the well-known J2EE design patterns (such as Session façade and Service To Worker) and the application architecture patterns described in Martin Fowler’s book “Patterns of Enterprise Application Architecture”. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Application Architecture Patterns specify how applications or subsystems within the scope of a larger enterprise architecture should be designed. Some common pattern catalogs in this category include the well-known J2EE design patterns (such as Session façade and Service To Worker) and the application architecture patterns described in Martin Fowler’s book “Patterns of Enterprise Application Architecture”. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Integration Patterns are important for designing and communicating concepts surrounding the sharing of information and functionality between components, applications, and subsystems. Some examples of Integration Patterns include file sharing, remote procedure calls, and numerous messaging patterns. Most of these patterns can be found in the excellent book “Enterprise Integration Patterns” by &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Holpe &lt;/del&gt;and Woolf or via the web at http://www.enterpriseintegrationpatterns.com/eaipatterns.html.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Integration Patterns are important for designing and communicating concepts surrounding the sharing of information and functionality between components, applications, and subsystems. Some examples of Integration Patterns include file sharing, remote procedure calls, and numerous messaging patterns. Most of these patterns can be found in the excellent book “Enterprise Integration Patterns” by &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Hohpe &lt;/ins&gt;and Woolf or via the web at http://www.enterpriseintegrationpatterns.com/eaipatterns.html.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge and familiarity of the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge and familiarity of the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11269:newid:11276 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 26 Jun 2008 18:26:35 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: /* Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11269&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:47, 26 June 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge of architecture and design patterns is crucial for the success of any software project undertaking. As with other professions, software architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge of architecture and design patterns is crucial for the success of any software project undertaking. As with other professions, software architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Mark Richards]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Mark Richards]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11266:newid:11269 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 26 Jun 2008 15:47:12 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: /* Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11266&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:33, 26 June 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;There are &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;several &lt;/del&gt;categories of &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns available to a software architect. Some of these categories include enterprise &lt;/del&gt;architecture patterns, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;application architecture &lt;/del&gt;patterns, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;integration &lt;/del&gt;patterns, and &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;design &lt;/del&gt;patterns. These categories are generally based on the level of scope within the architecture. Enterprise architecture patterns deal with the high-level architecture, whereas design patterns deal with how individual components within the architecture are structured and behave. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;There are &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;four basic &lt;/ins&gt;categories of architecture &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;and design patterns: Enterprise Architecture &lt;/ins&gt;patterns, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Application Architecture &lt;/ins&gt;patterns, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Integration &lt;/ins&gt;patterns, and &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Design &lt;/ins&gt;patterns. These categories are generally based on the level of scope within the &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;overall &lt;/ins&gt;architecture. Enterprise architecture patterns deal with the high-level architecture, whereas design patterns deal with how individual components within the architecture are structured and behave. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Enterprise Architecture Patterns define the framework for the high-level architecture. Some of the more common architecture patterns include Event Driven Architecture (EDA), Service Oriented Architecture (SOA), Resource Oriented Architecture (ROA), and Pipeline Architecture.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Enterprise Architecture Patterns define the framework for the high-level architecture. Some of the more common architecture patterns include Event Driven Architecture (EDA), Service Oriented Architecture (SOA), Resource Oriented Architecture (ROA), and Pipeline Architecture.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge and familiarity of the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge and familiarity of the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In addition to understanding and knowing the basic architecture and design patterns, it is also important to be aware of and understand the various anti-patterns as well. Anti-patterns, a term coined by Andrew Koenig, are repeatable processes that produce ineffective results. Some of the more well-known anti-patterns include Analysis Paralysis, Design By Committee, Mushroom Management, and Death March. Knowledge and awareness of anti-patterns is as important as knowing the &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;good &lt;/del&gt;patterns. The book “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis” is a great source of information on anti-patterns, as is the website http://en.wikipedia.org/wiki/Anti-patterns.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In addition to understanding and knowing the basic architecture and design patterns, it is also important to be aware of and understand the various anti-patterns as well. Anti-patterns, a term coined by Andrew Koenig, are repeatable processes that produce ineffective results. Some of the more well-known anti-patterns include Analysis Paralysis, Design By Committee, Mushroom Management, and Death March. Knowledge and awareness of anti-patterns is &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;just &lt;/ins&gt;as important as knowing the &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;basic architecture and design &lt;/ins&gt;patterns. The book “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis” is a great source of information on anti-patterns, as is the website http://en.wikipedia.org/wiki/Anti-patterns.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge of architecture and design patterns is crucial for the success of any software project undertaking. As with other professions, software architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Knowledge of architecture and design patterns is crucial for the success of any software project undertaking. As with other professions, software architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11265:newid:11266 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 26 Jun 2008 15:33:06 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: /* Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11265&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:27, 26 June 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Rant &lt;/del&gt;about &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;knowing &lt;/del&gt;the common architecture and design patterns&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;As with any profession, there is a jargon used so that individuals within that profession can effectively communicate with one another. Lawyers talk to one another &lt;/ins&gt;about &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;habes, voir dire, and benire; airline pilots talk to one another about cherubs, flight levels, and FASO; carpenters talk to one another about butt joints, lap joints, and flux. The same holds true in &lt;/ins&gt;the &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;software architecture profession. Software architects talk to one another about EDA, ROA, and Pipeline Architecture. Wait, what was that? &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;It is imperative that software architects, regardless of the platform they are working in, have an effective means of communication between one another. One of those means of communication is through architecture and design patterns. To be an effective software architect you must understand the basic architecture and design patterns, recognize when those patterns are being used, know when to apply the patterns, and be able to communicate to other architects and developers using them.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;There are several categories of patterns available to a software architect. Some of these categories include enterprise architecture patterns, application architecture patterns, integration patterns, and design patterns. These categories are generally based on the level of scope within the architecture. Enterprise architecture patterns deal with the high-level architecture, whereas design patterns deal with how individual components within the architecture are structured and behave. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Enterprise Architecture Patterns define the framework for the high-level architecture. Some of the more &lt;/ins&gt;common architecture &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns include Event Driven Architecture (EDA), Service Oriented Architecture (SOA), Resource Oriented Architecture (ROA), &lt;/ins&gt;and &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Pipeline Architecture.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Application Architecture Patterns specify how applications or subsystems within the scope of a larger enterprise architecture should be designed. Some common pattern catalogs in this category include the well-known J2EE &lt;/ins&gt;design patterns &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;(such as Session façade and Service To Worker) and the application architecture patterns described in Martin Fowler’s book “Patterns of Enterprise Application Architecture”. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Integration Patterns are important for designing and communicating concepts surrounding the sharing of information and functionality between components, applications, and subsystems. Some examples of Integration Patterns include file sharing, remote procedure calls, and numerous messaging patterns. Most of these patterns can be found in the excellent book “Enterprise Integration Patterns” by Holpe and Woolf or via the web at http://www.enterpriseintegrationpatterns.com/eaipatterns.html.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowledge and familiarity of the basic design patterns as described by the Gang of Four book “Design Patterns: Elements of Reusable Object-Oriented Software” is a must for any software architect. Although these patterns may appear to be too low-level for a software architect, they are part of a standard vocabulary that makes for effective communication between architects and developers. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;In addition to understanding and knowing the basic architecture and design patterns, it is also important to be aware of and understand the various anti-patterns as well. Anti-patterns, a term coined by Andrew Koenig, are repeatable processes that produce ineffective results. Some of the more well-known anti-patterns include Analysis Paralysis, Design By Committee, Mushroom Management, and Death March. Knowledge and awareness of anti-patterns is as important as knowing the good patterns. The book “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis” is a great source of information on anti-patterns, as is the website http://en.wikipedia.org/wiki/Anti-patterns.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Knowledge of architecture and design patterns is crucial for the success of any software project undertaking. As with other professions, software architects need the ability to effectively communicate with one another in a clear, concise, and effective way. The patterns are there; it is up to us as software architects to learn and understand these patterns so we can “walk the walk and talk the talk”. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Mark Richards]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Mark Richards]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11263:newid:11265 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 26 Jun 2008 15:27:03 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: /* Walk the Walk and Talk the Talk */</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11263&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Walk the Walk and Talk the Talk&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:53, 25 June 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Walk the Walk and &lt;/del&gt;Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Talk the Talk ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Rant about knowing the common architecture and design patterns&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Rant about knowing the common architecture and design patterns&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:11262:newid:11263 --&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 25 Jun 2008 19:53:24 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
		<item>
			<title>Wmr513: New page: == Walk the Walk and Talk the Talk ==  Rant about knowing the common architecture and design patterns  By Mark Richards  This work is licensed under a [http://creativecommons.org/licen...</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=Contribution_59&amp;diff=11262&amp;oldid=prev</link>
			<description>&lt;p&gt;New page: == Walk the Walk and Talk the Talk ==  Rant about knowing the common architecture and design patterns  By &lt;a href=&quot;/wiki/index.php/Mark_Richards&quot; title=&quot;Mark Richards&quot;&gt;Mark Richards&lt;/a&gt;  This work is licensed under a [http://creativecommons.org/licen...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Walk the Walk and Talk the Talk ==&lt;br /&gt;
&lt;br /&gt;
Rant about knowing the common architecture and design patterns&lt;br /&gt;
&lt;br /&gt;
By [[Mark Richards]]&lt;br /&gt;
&lt;br /&gt;
This work is licensed under a&lt;br /&gt;
[http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3] &lt;br /&gt;
&lt;br /&gt;
Back to [[97 Things Every Software Architect Should Know]] home page&lt;/div&gt;</description>
			<pubDate>Wed, 25 Jun 2008 19:52:45 GMT</pubDate>			<dc:creator>Wmr513</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:Contribution_59</comments>		</item>
	</channel>
</rss>