<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Adaptive Object Model</title>
	
	<link>http://adaptiveobjectmodel.com</link>
	<description>Anything you can do, I can do Meta...</description>
	<lastBuildDate>Wed, 11 Jan 2012 19:58:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AdaptiveObjectModel" /><feedburner:info uri="adaptiveobjectmodel" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>AdaptiveObjectModel</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>What is Pragmatic TDD?</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/dwCpBEofTfU/</link>
		<comments>http://adaptiveobjectmodel.com/2012/01/what-is-pragmatic-tdd/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 19:32:58 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=243</guid>
		<description><![CDATA[by Joseph Yoder &#38; Rebecca Wirfs-Brock What do we mean by Pragmatic TDD? Pragmatic Test Driven Development (TDD) is a practical approach to testing that focuses on the bigger picture of how testing best fits into and enhances your team’s software development practices. Rather than insisting that developers only write a lot of unit tests, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>by Joseph Yoder &amp; Rebecca Wirfs-Brock</p>
<h2>What do we mean by Pragmatic TDD?</h2>
<p style="text-align: justify;"><a href="http://learningforleverage.com/events/pragmatic-test-driven-development/" class="liexternal">Pragmatic Test Driven Development</a> (TDD) is a practical approach to testing that focuses on the bigger picture of how testing best fits into and enhances your team’s software development practices. Rather than insisting that developers only write a lot of unit tests, you need to find a testing strategy that gives you higher quality software. You need to determine how testing best fits into your development context with your developers for your kind of software.</p>
<p style="text-align: justify;">The typical approach to TDD usually focuses on having developers write many unit tests that may or may not add value. Instead, we recommend you adopt a testing strategy that gives you the most leverage. So, for example, rather than merely writing many unit tests, you can often get more value by defining the appropriate user-level acceptance tests. Testing should drive your development (but not at the expense of every other coding and design practice). One size or one approach for testing does not fit every organization or team.</p>
<p style="text-align: justify;">One thing that has discouraged people from incorporating TDD into their organization is the common misperceptions that tests should always be written first, before writing any production code, and, that tests and code should be developed in many tiny increments. We believe that TDD is more about thinking carefully about how best to validate that your software meets your requirements. Testing and validation should drive your development process (that’s why we are fans of being Test Driven), but we think there is so much more to testing than writing lots of unit tests.</p>
<h2>What do we mean by different testing rhythms?</h2>
<p style="text-align: justify;">We believe that you should pay attention to testing and that it should be an integral part of your daily programming practice. But we don’t insist that you always evolve tests along with your code in many short cycles. Some find it more natural to outline some tests first, and use those test scenarios to guide them as they write code. Once they’ve completed a “good enough” implementation that supports the test scenarios, they then write those tests and incrementally fix any bugs as they go. As long as you don’t write hundreds of lines of code without any testing, we think this style is OK too (and we don’t insist on one style over the other).</p>
<h2>What are the testing practices you should consider?</h2>
<p style="text-align: justify;">There’s a lot to becoming proficient at TDD. Developing automated test suites, refactoring and reworking tests to eliminate duplication, and testing for exceptional conditions, are just a few. Additionally, acceptance tests, smoke tests, integration, performance and load tests support incremental development as well. If all this testing sounds like too much work, well…let’s get practical. Testing shouldn’t be done just for testing’s sake. Instead, the tests you write should give you leverage to confidently change and evolve your code base and validate the requirements of the system. That’s why it is important to know what to test, what not to test, and when to stop testing.</p>
<h2>So, where should you start?</h2>
<p style="text-align: justify;">It is important to establish a team testing culture. Get the team on board using similar techniques and tools. Try some different approaches and then as a group reflect on what you’ve learned (have a retrospective). If you are starting a new project you might take a quite different approach than you would with an existing code base. It’s important to not get overwhelmed. Pick an area you want to focus on. For example, it’s much easier to write unit tests for new functionality. But sometimes you want to focus on writing tests for existing code that is buggy or needs to be modified. This can be more difficult. Maybe you want to concentrate on developing integration tests and automating them first (so that you can streamline your build and deploy process). It all depends on where you want to invest first. Just start modestly, grow your testing practices, and measure the impacts of your testing effort and benefits as you go. Of course the most important thing is to start somewhere and have testing become an important part of your development process.</p>
<p style="text-align: justify;">The <a href="http://www.refactory.com" class="liexternal">Refactory, Inc.</a> principal Joseph Yoder &amp; The <a href="http://www.refactory.com" class="liexternal">Refactory, Inc.</a> associate Rebecca Wirfs-Brock will be hosting a <a href="http://learningforleverage.com/events/pragmatic-test-driven-development/" target="_self" class="liexternal">Pragmatic Test-driven Development course</a> January 25-27, 2012 in the Portland Metro area.     <a href="http://test-driven-development-jy.eventbrite.com/" class="liexternal">Register Now!</a></p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/dwCpBEofTfU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2012/01/what-is-pragmatic-tdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2012/01/what-is-pragmatic-tdd/</feedburner:origLink></item>
		<item>
		<title>Sign Up for Pragmatic TDD Public Course!</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/eB4_OgzrvGg/</link>
		<comments>http://adaptiveobjectmodel.com/2011/09/sign-up-for-pragmatic-tdd-public-course/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 17:36:59 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=236</guid>
		<description><![CDATA[Joseph Yoder and Rebecca Wirfs-Brock will teach a Pragmatic TDD public course in Tigard, Oregon. Course Info: Courtyard Marriott &#8211; Tigard 15686 SW Sequoia Parkway Tigard, OR 97224 First quarter of 2012 Test-driven development (TDD) means writing unit tests along with production code. It leads to modular, flexible and extensible code. Many aspire to follow [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://learningforleverage.com/events/pragmatic-test-driven-development/" title="Meta Guy" class="liexternal">Joseph Yoder</a> and Rebecca Wirfs-Brock will teach a <a href="http://learningforleverage.com/events/pragmatic-test-driven-development/" title="Pragmatic Test-driven Development" class="liexternal">Pragmatic TDD public course</a> in Tigard, Oregon.</p>
<h3>Course Info:</h3>
<p>Courtyard Marriott &#8211; Tigard<br />
15686 SW Sequoia Parkway<br />
Tigard, OR 97224</p>
<p>First quarter of 2012</p>
<blockquote><p>Test-driven development (TDD) means writing unit tests along with production code. It leads to modular, flexible and extensible code. Many aspire to follow TDD practices however few know how to do so effectively. Join Joseph Yoder, founder of the Refactory and Rebecca Wirfs-Brock, inventor of Responsibility-Driven Design as you learn Pragmatic TDD. In this 3 day intensive course you’ll learn several natural rhythms of testing, design and programming, uncover how refactoring affects tests, and see how acceptance and system quality tests support and enhance core TDD practices.</p></blockquote>
<p class="alert">Limited space. <a href="http://test-driven-development-jy.eventbrite.com/" title="TDD Public Course" class="liexternal">Register for the Course Today!</a></p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/eB4_OgzrvGg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/09/sign-up-for-pragmatic-tdd-public-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/09/sign-up-for-pragmatic-tdd-public-course/</feedburner:origLink></item>
		<item>
		<title>Agile and Test Driven Design Training in South Korea</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/F-SMhZZYsIQ/</link>
		<comments>http://adaptiveobjectmodel.com/2011/07/agile-and-test-driven-design-training-in-south-korea/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 21:23:52 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=233</guid>
		<description><![CDATA[As I finish this last day in South Korea, I&#8217;m reminded of the entire trip. It started a few months ago, with talks held in the balmy Florida heat. Today they&#8217;re fnished and I&#8217;m grateful to have been a part of such an exciting trip that took me literally halfway across the world to teach [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>As I finish this last day in South Korea, I&#8217;m reminded of the entire trip. It started a few months ago, with talks held in the balmy Florida heat. Today they&#8217;re fnished and I&#8217;m grateful to have been a part of such an exciting trip that took me literally halfway across the world to teach the principles that I support and have such passion for.</p>
<p>I traveled to South Korea on the Fourth of July. I went knowing that I would be teaching a TDD course to a talented group of developers. The TDD course was tailored to the medical domain. I have worked within the medical domain on several projects throughout the years. The course went well and a few surprises happened as well.</p>
<p>I got invited to a software architecture conference. I gave a keynote address at the conference. The entire talk was translated for the largely Korean speaking audience. The talk was using &#8220;Meta to Scale the Cloud.&#8221; The conference was called <a href="http://www.swarchitect.org/" class="liexternal">Korea Software Architecture Summit (KSAS)</a>.</p>
<p>It&#8217;s good to see the Agile movement taking root in South Korea. I met with the Seoul Agile Users Group and gave a talk on &#8220;Test Driven Development, Refactorinng, Patterns and Adaptive Object Models.&#8221; The enthusiasm was clearly visible at the conference. People were engaged. I look forward to making my way back to South Korea someday.</p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/F-SMhZZYsIQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/07/agile-and-test-driven-design-training-in-south-korea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/07/agile-and-test-driven-design-training-in-south-korea/</feedburner:origLink></item>
		<item>
		<title>MetaPLoP is Underway!</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/ikqwAHH1VSI/</link>
		<comments>http://adaptiveobjectmodel.com/2011/06/metaplop-is-underway/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 17:24:55 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=230</guid>
		<description><![CDATA[I&#8217;m in Douro Valley, Portugal for the MetaPLoP conference. I&#8217;m excited to see the results of this weekend&#8217;s efforts. The conference will be mining patterns for the best of the lot. We&#8217;ll be talking, discussing, and reviewing patterns related to Meta-Architectures, Adaptive Object Models, and Reflective Systems. The best patterns should stand out from the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://adaptiveobjectmodel.com/wp-content/uploads/2011/06/douro_cnt_9nov09_istock_b.jpg" class="liimagelink"><img class="alignright size-medium wp-image-232" title="douro_cnt_9nov09_istock_b" src="http://adaptiveobjectmodel.com/wp-content/uploads/2011/06/douro_cnt_9nov09_istock_b-300x199.jpg" alt="" width="300" height="199" /></a>I&#8217;m in Douro Valley, Portugal for the MetaPLoP conference. I&#8217;m excited to see the results of this weekend&#8217;s efforts. The conference will be mining patterns for the best of the lot. We&#8217;ll be talking, discussing, and reviewing patterns related to Meta-Architectures, Adaptive Object Models, and Reflective Systems. The best patterns should stand out from the rest, being set apart by their merits.</p>
<p>I&#8217;m excited to be here with Hugo Sereno Ferreira, Filipe Correia, Eduardo Guerra, Ademar Aguiar, Lior Schachter, Rebecca Wirfs-Brock, and Allen Wirfs-Brock. I&#8217;m looking forward to a great event. I will update with any news that comes out of the talks.</p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/ikqwAHH1VSI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/06/metaplop-is-underway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/06/metaplop-is-underway/</feedburner:origLink></item>
		<item>
		<title>Agile Portugal Tutorial and Talk</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/VWc655fP9e4/</link>
		<comments>http://adaptiveobjectmodel.com/2011/06/agile-portugal-tutorial-and-talk/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 20:57:24 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=225</guid>
		<description><![CDATA[I&#8217;m currently at Agile Portugal. The conference will be over soon and then it&#8217;ll be time for MetaPLoP in Douro Valley. I was excited today to give my &#8220;Rulemakers and Toolmakers: Adaptive Object Models as Agile Division of Labor&#8221; tutorial. Rebecca Wirfs-Brock and I have worked hard to refine and enliven this tutorial. You can [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://adaptiveobjectmodel.com/wp-content/uploads/2011/06/agile-pt.jpg" class="liimagelink"><img class="alignright size-full wp-image-227" title="agile-pt" src="http://adaptiveobjectmodel.com/wp-content/uploads/2011/06/agile-pt.jpg" alt="" width="243" height="156" /></a>I&#8217;m currently at Agile Portugal. The conference will be over soon and then it&#8217;ll be time for MetaPLoP in Douro Valley. I was excited today to give my &#8220;Rulemakers and Toolmakers: Adaptive Object Models as Agile Division of Labor&#8221; tutorial. Rebecca Wirfs-Brock and I have worked hard to refine and enliven this tutorial. You can read more about it on the <a href="http://2011.agilept.org/program/tutorial-yoder-rebecca" class="liexternal">Agile PT page</a>. We think it was a total success.</p>
<p>The big surprise of the day happened when I was asked to speak in place of Dave Thomas who couldn&#8217;t make the conference.  The talk was titled, &#8220;<a href="http://2011.agilept.org/program/talk-dave-thomas" class="liexternal">Lean – The Foundation for Agility Increase Value, Reduce Waste, Improve Flow</a>.&#8221; I think it went well too. The focus on Agile methods speaks to a lot of my own experience. If you were at the talk, I would love to hear your comments.</p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/VWc655fP9e4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/06/agile-portugal-tutorial-and-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/06/agile-portugal-tutorial-and-talk/</feedburner:origLink></item>
		<item>
		<title>Meta PLoP – June 24th – 26th, 2011</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/Y3KFsiWcIZI/</link>
		<comments>http://adaptiveobjectmodel.com/2011/06/meta-plop-june-24th-26th-2011/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 19:21:43 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=222</guid>
		<description><![CDATA[The first Meta PLoP is scheduled for June 24th to 26th, 2011 in Portugal. Here&#8217;s the description of the conference from the MetaPLoP.org website: MetaPLoP is a PLoP-like gathering focused on the specific topic of meta-architectures, adaptive object-models, and reflective systems. The main goal of MetaPLoP is to “mine” the best patterns that have been [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The first Meta PLoP is scheduled for June 24th to 26th, 2011 in Portugal. Here&#8217;s the description of the conference from the <a href="http://metaplop.org" class="liexternal">MetaPLoP.org website</a>:</p>
<blockquote><p>MetaPLoP is a PLoP-like gathering focused on the specific topic of meta-architectures, adaptive object-models, and reflective systems. The main goal of MetaPLoP is to “mine” the best patterns that have been written about these topics and organize them into a common theme that can tell a great story that we can publish in a focused issue of the TPLoP Journal.</p></blockquote>
<p>The conference will have attendees from all over, including Joseph Yoder, Hugo Sereno Ferreira, Filipe Correia, Ademar Aguiar, Rebecca Wirfs-Brock, and Allen Wirfs-Brock. Other notable guests may be in attendance as well. Will you be?</p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/Y3KFsiWcIZI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/06/meta-plop-june-24th-26th-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/06/meta-plop-june-24th-26th-2011/</feedburner:origLink></item>
		<item>
		<title>An AOM Dissertation</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/OQUoJtk5rAU/</link>
		<comments>http://adaptiveobjectmodel.com/2011/06/an-aom-dissertation/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 19:59:08 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=219</guid>
		<description><![CDATA[Hugo Ferreira is a fellow AOM enthusiast. He and I have collaborated throughout the years, so when he asked me to write a forward for his thesis I did so with honor. I recently traveled to Portugal to sit on the jury of Hugo&#8217;s dissertation defense. The experience was a great one and I thought [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Hugo Ferreira is a fellow AOM enthusiast. He and I have collaborated throughout the years, so when he asked me to write a forward for his thesis I did so with honor. I recently traveled to Portugal to sit on the jury of Hugo&#8217;s dissertation defense. The experience was a great one and I thought I would share the forward I wrote for his dissertation. He defended his dissertation elegantly and passed with distinction. </p>
<h2>Hugo Ferreira&#8217;s Dissertation Forward</h2>
<blockquote><p>Over the last decade it has become extremely important for systems to be able to more quickly adapt to changing business requirements.  Because of this there has been an evolution of the way we develop and think about building systems.  For example, Agile processes have evolved as a means to try to build systems more quickly. But when working on Agile projects, developers can become overwhelmed with the rate of requirements change.  The ease with which requirements can change encourages users to overwhelm us with requests for features. The result: Featuritis, which can promotes hasty construction of poorly designed software to support those features. The design of an expressive domain model might get lost in the rush to write working code.  Adaptive Object-Models (AOMs) support changeable domain modules by casting business rules as interpreted data and representing objects, properties and relationships in external declarations. At first glance, AOM systems seem to contradict Agile values. Yet we find that under the right conditions, an AOM architecture has made our users happier and has given them the ability to control the pace of change. It can be the ultimate in agility!</p>
<p>This thesis entitled &#8220;Adaptive Object-Modeling: Patterns, Tools, and Applications&#8221; by Hugo José Sereno Lopes Ferreira has taken the next step in state of art research on best practices on building these types of dynamic systems.  This work illustrates the necessity of software to adapt and change at sometimes rapid speeds. Hugo’s addition of seven key patterns brings together years of study and produce formalized patterns as an important contribution to the AOM community. The thesis also brings real world problems to light and centers much of the discussion on the inherent flaws of much of today&#8217;s software design practices. </p>
<p>The work reveals much about the current state of Adaptive Object Model practices in industry. I found the thesis to be a quality entry into the current AOM research and very enlightening for in the software community building these types of architectures. The review of AOM architectural style, the patterns catalogue, the outline of the reference architecture for AOMs along with an example implementation makes the work very relevant and informative, as well as a pleasure to read.  Additionally the case studies highlight the common issues and problems addressed by AOMs along with proving AOMs exist as a common solution for these types of systems. </p>
<p>I look forward to future collaboration with Hugo on this topic area and it my pleasure to strongly recommend this work to architects and developers that are building these types of dynamic architectures.</p></blockquote>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/OQUoJtk5rAU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/06/an-aom-dissertation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/06/an-aom-dissertation/</feedburner:origLink></item>
		<item>
		<title>SATURN 2011 Plenary Talk</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/XE79O_QnRIE/</link>
		<comments>http://adaptiveobjectmodel.com/2011/05/saturn-2011-plenary-talk/#comments</comments>
		<pubDate>Thu, 26 May 2011 19:40:17 +0000</pubDate>
		<dc:creator>Joseph Yoder</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=214</guid>
		<description><![CDATA[I recently traveled to the SATURN 2011 conference in San Francisco. The Software Engineering Institute hosted the conference. Rebecca gave a talk entitled &#8220;Agile Adoption, Does It Have To Be All in Or Fold?&#8221; In her SATURN 2011 IEEE Software plenary talk, Rebecca Wirfs-Brock presented case studies of experience reports from the Agile Conference to illustrate [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://adaptiveobjectmodel.com/wp-content/uploads/2011/05/saturn.jpg" class="liimagelink"><img class="alignright size-full wp-image-216" title="saturn" src="http://adaptiveobjectmodel.com/wp-content/uploads/2011/05/saturn.jpg" alt="" width="250" height="145" /></a>I recently traveled to the <a href="http://www.sei.cmu.edu/saturn/2011/" class="liexternal">SATURN 2011 conference</a> in San Francisco. The Software Engineering Institute hosted the conference. Rebecca gave a talk entitled &#8220;<a href="https://saturnnetwork.wordpress.com/2011/05/19/saturn-2011-rebecca-wirfs-brock-agile-adoption-does-it-have-to-be-all-in-or-fold/" class="liexternal">Agile Adoption, Does It Have To Be All in Or Fold?</a>&#8221;</p>
<blockquote><p>In her SATURN 2011 <em>IEEE Software</em> plenary talk, Rebecca Wirfs-Brock presented case studies of experience reports from the Agile Conference to illustrate various ways in which people perceive what it means to be Agile.</p></blockquote>
<p>I also gave a Plenary talk entitled, &#8220;<a href="https://saturnnetwork.wordpress.com/2011/05/19/saturn-2011-keynote-joe-yoder-big-ball-of-mud-is-this-the-best-that-agile-can-do/" class="liexternal">Big Ball of Mud: Is This the Best that Agile Can Do?</a>&#8221;</p>
<blockquote><p>It’s a myth that Agile doesn’t support design–it’s ok to have good design. Good proven practices and patterns can help. Imitate or use proven quality techniques. You can escape from the spaghetti-code jungle. Have to commit to architecture. “SEI has done more for keeping mud out of our lives than Agile ever has.”</p>
<p>&nbsp;</p></blockquote>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/XE79O_QnRIE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/05/saturn-2011-plenary-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/05/saturn-2011-plenary-talk/</feedburner:origLink></item>
		<item>
		<title>A New Web-Enabled AOM Platform for Pull Service Delivery</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/Xd1RzpW5wy0/</link>
		<comments>http://adaptiveobjectmodel.com/2011/01/a-new-web-enabled-aom-platform-for-pull-service-delivery/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 19:10:58 +0000</pubDate>
		<dc:creator>reza</dc:creator>
				<category><![CDATA[AOM Application]]></category>
		<category><![CDATA[AOM News]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=207</guid>
		<description><![CDATA[Hello! Since this is my first post, let me introduce myself. My name is Reza Razavi. I’m currently heading the research and innovation efforts of AAS that I co-founded in 2007. I’ve been involved in developing industrial AOMs since 1993. In particular, I implemented a software system for calibrating bore gauges that allows domain experts [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Hello! Since this is my first post, let me introduce myself. My name is <a href="http://rezarazavi.com" title="Reza Razavi" class="liexternal">Reza Razavi</a>. I’m currently heading the research and innovation efforts of <a href="http://urfid.biz" title="Ambient Activity Systems" class="liexternal">AAS</a> that I co-founded in 2007. I’ve been involved in developing industrial AOMs since 1993. In particular, I implemented a software system for calibrating bore gauges that allows domain experts defining new gage types, their attributes and calibration procedure themselves, and make them readily (without compilation) available for use by calibration operators. Calibration procedures are defined as a composition of atomic measurement and calculation services.  This allowed our customer to reduce the cost of their maintenance by at least a factor of ten, while being able to easily adapt their gauge calibration procedures to specific customer needs.   Then, I switched to academic research and have been collaborating with <a href="http://cs.illinois.edu/people/faculty/ralph-johnson" title="Ralph Johnson" class="liexternal">Ralph Johnson</a> and <a href="http://joeyoder.com" title="Joe Yoder" class="liexternal">Joe Yoder</a> since the <a href="http://adaptiveobjectmodel.com/OOPSLA99" title="Metadata and Dynamic Object-Model Pattern Mining Workshop" class="liinternal">early days</a> they initiated research on AOMs.</p>
<p>Now, as an early adopter of AOMs for both industrial and academic software projects, I would like to react to the <a href="http://adaptiveobjectmodel.com/2010/11/meta-data-and-scaling-software-projects/" title="Meta-Data and Scaling Software Projects" class="liinternal">Rebecca</a>’s tweet/retort to Michael Feathers (<a href="http://twitter.com/mfeathers" class="liexternal">@mfeathers</a>) where she stresses “Meta-architectures aren&#8217;t &#8220;old&#8221; technology&#8230;they&#8217;re &#8220;proven&#8221; technology&#8230;”.</p>
<p>For example, here at AAS we have developed a novel <a href="http://aas-platform.com" title="AAS-Platform" class="liexternal">software platform</a> that allows developing <a href="http://www.rezarazavi.com/about/cv/publications/pppo-2011/" title="Paper on creating AOMs by reuse and extension" class="liexternal">web-enabled AOMs by reuse and extension</a>. We are currently working on large scale development of such AOMs to address the need for individualized and adaptive web-based solutions to populations like the elderly. The elderly need customized care.  Imagine that each person had a computer in the cloud that watched over him or her. We propose adaptive web servers to empower end-users and their communities, like caregivers, to give themselves an active part in the design and customization of their web-based services. So, once more, meta-architectures and AOMs have proven powerful in supporting business applications with highly-demanding dynamic adaptivity requirements.</p>
<p>It should also be emphasized that with AAS-Platform, AOMs figure today at the very heart of a unique solution to the latest approaches to service delivery and business development as explained in <a href="http://edgeperspectives.typepad.com/edge_perspectives/2010/04/the-power-of-pull-has-finally-arrived.html" title="The Power of Pull" class="liexternal">The Power of Pull </a>, where end-users and their communities are perceived themselves as valuable actors of service innovation and personalization, and empowered to assume their responsibilities.</p>
<p>Furthermore, as it is emphasized by <a href="http://thepowerofpull.com/pull" title="David Siegel" class="liexternal">David Siegel</a> in his Open Letters to <a href="http://thepowerofpull.com/pull/open-letter-to-apple-board-members-on-steve-jobs-leadership" title="David Siegel’s Open Letter to Apple Board Members on Steve Jobs’ Leadership" class="liexternal">Apple Board Members</a>, and <a href="http://thepowerofpull.com/pull/an-open-letter-to-sergey-brin-larry-page-and-eric-schmidt" title="David Siegel’s Open Letter to Sergey Brin, Larry Page, and Eric Schmidt" class="liexternal">Sergey Brin, Larry Page, and Eric Schmidt (Google)</a>, “the future of media, entertainment, productivity, and business tools is in the cloud”. However, “<strong>the power shift of the 21st century is not to use the cloud to re-create our desktop tools but to build data-driven ecosystems that take us far beyond what we could have done without the power of the cloud.</strong>”. David Siegel, urges that to build “data-driven ecosystems”, and to “empower people to collect and use their own data for themselves” (in alignment with the &#8220;pull&#8221; model), web technologies shall start by “getting the data out of the apps”.</p>
<p>AAS-Platform has been designed and implemented with these requirements and service delivery model as primary considerations. It enables the large-scale development of websites like <a href="http://pipes.yahoo.com/pipes/" title="Yahoo! Pipes" class="liexternal">Yahoo! Pipes</a> by regular application developers, where the active and collaborative participation of end-users (even non-technical people) as partners in the service innovation and delivery processes is supported by design.</p>
<p>Specifically, AAS-Platform allows Web-based AOMs that maintain an “open user activity flow model”, and allow end-users to interact with and modify that model (which is otherwise “hard-coded” by programmers). Every piece of meta-data and data that end-users care about may be accessed via dedicated atomic services and reused when assembling new services, thereby contributing to the concept of “data-driven ecosystems”. <a href="http://www.rezarazavi.com/about/cv/publications/pppo-2011/" title="Paper on creating AOMs by reuse and extension" class="liexternal">Read more …</a></p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/Xd1RzpW5wy0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2011/01/a-new-web-enabled-aom-platform-for-pull-service-delivery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2011/01/a-new-web-enabled-aom-platform-for-pull-service-delivery/</feedburner:origLink></item>
		<item>
		<title>AOM – A Practitioner Report</title>
		<link>http://feedproxy.google.com/~r/AdaptiveObjectModel/~3/2bcong8tnfI/</link>
		<comments>http://adaptiveobjectmodel.com/2010/12/aom-practitioner-report/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 18:08:55 +0000</pubDate>
		<dc:creator>atzmon</dc:creator>
				<category><![CDATA[AOM Application]]></category>

		<guid isPermaLink="false">http://adaptiveobjectmodel.com/?p=201</guid>
		<description><![CDATA[My name is Atzmon Hen-tov and I am the Chief Software Architect at Pontis (www.pontis.com).  I would like to share with you my experience with AOM and the business benefits Pontis gains from using AOM. Pontis was lately nominated as the fastest growing company in the Telecommunication sector in Europe (see Deloitte Technology Fast 500 [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>My name is Atzmon Hen-tov and I am the Chief Software Architect at Pontis (<a href="http://www.pontis.com/" class="liexternal">www.pontis.com</a>).  I would like to share with you my experience with AOM and the business benefits Pontis gains from using AOM. Pontis was lately nominated as the fastest growing company in the Telecommunication sector in Europe (see <a href="http://www.deloitte.co.uk/fast500emea/fast-500-winners/winners-2010/default.asp" class="liexternal">Deloitte Technology Fast 500 EMEA</a>).</p>
<p>First, some background about Pontis. Pontis provides Targeted Marketing in the Telecommunications and Cable-TV domains.  Targeted Marketing means that end-users get only offers and promotions that are relevant to them and they get them at the right time.  For example, just before you load money to your pre-paid phone, we’ll offer you to extend the amount and get a special bonus (e.g., 100 free short messages).  We deploy our systems at the customer premises and typically integrate with 10-15 customer systems.  Each customer has a distinct set of systems we need to integrate with and a lot of other differences from other customers.</p>
<p>In Pontis, we follow the rule – “if it changes a lot, move it to the GUI”.  The motivation behind this rule is to reduce changes in Java/Scripting/Technical code and allow our system users to define, configure, tune and operate the system without needing to get help from technical people.  Getting help from technical people often means a new, full blown software delivery.  Although many companies practice Continuous-Delivery these days (See <a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912/ref=sr_1_1?ie=UTF8&amp;qid=1293529024&amp;sr=8-1" class="liexternal">this</a> book for a great reading on the subject), it is better to avoid code changes and the consequent risks and project overheads.</p>
<p>We discovered that “what changes a lot” is the customer domain model.  That is, each customer has different attributes for the subscriber (“Subscriber” is “customer” in Telco slang), different types of price-plans, and different structure of events (e.g., for voice-call, money charge, short-message send).   At first, we developed the generic part of the system (the part that is used by all customers) in Java and then defined the customer specific parts in DSLs (Domain Specific Languages) from which we generated Java code.  When the model grew to more than 1000 classes, this proved to be a poor choice.  After every change in a DSL you had to wait 20+ minutes for code-generation, compilation, packaging, deployment, etc.  In other words, the Edit-Execute Cycle became really bad.</p>
<p><strong>Enter AOM.</strong></p>
<p>AOM is an interpretive approach; the model (meta-data) is interpreted and executed at runtime.  No code generation, no more “let’s make a coffee or two and come back to see if the build is done”.  This doesn’t come out easily.  You need to write sophisticated code that accounts for all the variability you give the end-users in defining the domain model.  Luckily the <a href="http://adaptiveobjectmodel.com/" class="liinternal">Adaptive Object Model</a> site provides you with handful of patterns to do just that.</p>
<p>We started with a few variability points, that is, model classes that can be extended in the AOM GUI and added more as needs were identified.  Today we have a rich AOM application with 50+ variability points that allow non developers to fully customize the application model for each new customer.</p>
<p>AOM is so critical to our business model that we have an official <em>AOM Engineer</em> role in Pontis whose responsibilities are to customize the generic product and to maintain the customer’s AOM metadata in configuration management.  By having non-developer AOM engineers we gain better communication between the stakeholders; AOM engineers are not occupied with technical stuff (Java, Patterns, Performance, third-party libraries, etc.) and talk the language of the business.  But since they are the actual implementer they close things up with the developers to the very last detail (e.g. when a new generic feature is required to implement a business use-case).</p>
<p>Looking back at the last year or so, I can confidently say that AOM made a big difference in Pontis. A difference in the way we work, in the way we deliver software, and in the way we think; most notably in the frequency and quality of our deliveries.   Whenever a new requirement arises, the first thing we do is try to figure out how it can be satisfied by AOM-only changes. If it&#8217;s indeed possible (and an impressive amount of times it is; I actually have some numbers on this, but it&#8217;s a story for another day), the AOM engineer can implement the change via the GUI and spare the cycle of Java delivery.</p>
<p>We&#8217;re still learning as we go. There are many challenges, not all of them technical – in particular, we haven&#8217;t worked out the kinks of merging changes between different environments. I invite you to learn together with us – come back here for more!</p>
<img src="http://feeds.feedburner.com/~r/AdaptiveObjectModel/~4/2bcong8tnfI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://adaptiveobjectmodel.com/2010/12/aom-practitioner-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adaptiveobjectmodel.com/2010/12/aom-practitioner-report/</feedburner:origLink></item>
	</channel>
</rss>

