<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Avantica Technologies Blog &#187; patterns</title>
	<atom:link href="http://blog.avantica.net/tag/patterns/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.avantica.net</link>
	<description>Expert advice on software development, technology and nearshore outsourcing</description>
	<lastBuildDate>Wed, 01 Sep 2010 22:22:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.avantica.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/fc49ac3235b3a5ddc8ddb5b866939397?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Avantica Technologies Blog &#187; patterns</title>
		<link>http://blog.avantica.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.avantica.net/osd.xml" title="Avantica Technologies Blog" />
	<atom:link rel='hub' href='http://blog.avantica.net/?pushpress=hub'/>
		<item>
		<title>Developing on a Platform Creates a Dependency</title>
		<link>http://blog.avantica.net/2009/11/02/platform-dependency/</link>
		<comments>http://blog.avantica.net/2009/11/02/platform-dependency/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 19:41:57 +0000</pubDate>
		<dc:creator>bbenedict</dc:creator>
				<category><![CDATA[Development Management]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[product launch]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://blog.openmountain.com/?p=835</guid>
		<description><![CDATA[Companies are finding real benefit from starting on a platform that provides functionality and existing customers.  More and more developers are launching products on the iPhone, facebook and SalesForce.  We definitely encourage our customers to use existing technologies and services to expedite time-to-market. A few months back, we were proposing to build a facebook application [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.avantica.net&amp;blog=3624702&amp;post=835&amp;subd=openmountain&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Companies are finding real benefit from starting on a platform that provides functionality and existing customers.  More and more developers are launching products on the iPhone, facebook and SalesForce.  We definitely encourage our customers to use existing technologies and services to expedite time-to-market.</p>
<p>A few months back, we were proposing to build a facebook application using some other technologies as well.  In our proposals, we like to think ahead to point out issues that could arise and we stated that any changes to these technologies could impact the schedule.  At this point, the customer emailed me an interesting question.</p>
<p><strong>How do we mitigate the risk if facebook or the other technologies change? </strong></p>
<p>Our customer was asking a pretty good question.  If facebook changes their API or markup language, we may have to re-factor significant amounts of code.  Don&#8217;t think this could happen?  It already <a href="http://developers.facebook.com/news.php?blog=1&amp;story=29" target="_blank">did</a>.  Here&#8217;s how it <a href="http://www.allfacebook.com/2007/08/changes-to-the-facebook-platform/" target="_blank">impacted some developers</a>.</p>
<p>At first I was tempted to say that is the nature of the beast.  If you are building a house and it starts to rain, construction will be impacted.  Materials will get wet.  You might have a major disaster if you just poured the foundation and the cement hasn&#8217;t cured.  We can&#8217;t stop the rain.</p>
<p>I then realized this is a profound question and that I needed to give it some thought.  We develop for start-ups all the time and a significant delay from outside influences could prove disastrous.  I started thinking through the possibilities.</p>
<p>First, we need to consider if companies we are depending on actually appreciate this risk.  How often does the facebook API change?  How does SalesForce improve their platform without breaking existing applications?  It&#8217;s reasonable to conclude that if Apple, facebook and SalesForce care about their business they wouldn&#8217;t adversely impact people making a living off their technology.</p>
<p>I did a little investigation to see how well these companies keep their developers informed of changes.  Everything I discovered was as of the writing of this post and may have changed before publishing.  I certainly welcome anyone from facebook, Apple or SalesForce to comment on this post and provide information I may have missed.</p>
<p>facebook clearly embraces developers as a community.  Their WIKI is comprehensive and includes a link to view the latest changes to the platform.  A proactive developer could sense changes were in the air for sure.  I was hoping to find a way to subscribe to emailed changes.  I&#8217;ll keep looking for that.</p>
<p>Apple&#8217;s developer site feels very polished.  They clearly focus on information presentment making it easy to find documentation.  That said, the site seemed to offer less insight into what is happening with the platform.  By way of contrast, WIKI community sites are easy to edit and therefore updated more frequently, but often contain posts that are not completely accurate or have become out of date.  A good editor solves this problem of course.</p>
<p>SalesForce.com is definitely going the community route.  The developer site includes documentation, news, events, updates and discussions.  An active developer can stay abreast of changes for the most part.  After looking at the site, you can see that the company is making a good effort to keep the developer community informed.</p>
<p><strong>Back to the question, how can we mitigate the risks of a key technology or platform changing mid-cycle?</strong></p>
<p>Here are some the techniques we recommend for staying informed and managing the risk from developing on existing technologies and platforms:</p>
<p>1) Subscribe to all change lists &#8211; The best way to find out if an API or technology is changing is to have the company tell you in advance.  Trust me, you don&#8217;t want to find out from users your site is broken.</p>
<p>2) Avoid developing functionality that has a shelf life &#8211; Some times, it is clear an API or functionality may have limited long-term viability.  Certainly privacy and security issues won&#8217;t stand over time on any site with significant usage.  Developers love to exploit a loophole or over reaching function.  Your business might be doomed if this loophole is core to your success and it gets closed.</p>
<p>3) Plan for scenarios in the business &#8211; The corollary to point 2 is plan for the unfortunate or unexpected.  You should certainly utilize any advantage you reasonably uncover.  Just don&#8217;t bet the farm on anything that may pose a long-term issue for the platform without a backup plan.  Spend time thinking about how your business would need to adapt.</p>
<p>4) Create a business that is truly platform independent &#8211; Try to see each technology used by your product as a component instead of a necessity.  facebook could be swapped out for MySpace or Twitter for example.  If you use an open source product for your shopping cart or CMS, consider having a backup choice in case you find a bug that can&#8217;t be fixed.  Ask your architect to present an alternative technology stack that changes all third-party technologies just to prove it can be done.</p>
<p>Experienced teams use existing platforms and technologies to enhance products, speed up development and create forward-looking solutions.  You should too!  Just don&#8217;t get caught depending on something that would hobble your business if it changed.  Have a plan to get back up if the rug is pulled out from underneath you.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openmountain.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openmountain.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openmountain.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openmountain.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openmountain.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openmountain.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/openmountain.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openmountain.wordpress.com/835/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.avantica.net&amp;blog=3624702&amp;post=835&amp;subd=openmountain&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.avantica.net/2009/11/02/platform-dependency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a42b5ac0c85d7fbb30f8e7ebe78aaa8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bob Benedict</media:title>
		</media:content>
	</item>
		<item>
		<title>Development Patterns for Technology &#8482;</title>
		<link>http://blog.avantica.net/2008/10/02/development-patterns-for-technology-tm/</link>
		<comments>http://blog.avantica.net/2008/10/02/development-patterns-for-technology-tm/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 16:59:30 +0000</pubDate>
		<dc:creator>bbenedict</dc:creator>
				<category><![CDATA[Development Management]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://openmountain.wordpress.com/?p=56</guid>
		<description><![CDATA[People in technology use patterns for everything from coding strategies to development strategies to interface design. We follow patterns because patterns a pattern represents a safe plan to a result that generally someone else has done before and validated. But patterns can also lead us into a false sense of security by turning innovators into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.avantica.net&amp;blog=3624702&amp;post=56&amp;subd=openmountain&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>People in technology use patterns for everything from coding strategies to development strategies to interface design.  We follow patterns because patterns a pattern represents a safe plan to a result that generally someone else has done before and validated.  But patterns can also lead us into a false sense of security by turning innovators into followers and turning our products into another version of what has been done before.  I thought I would offer my own thoughts on the benefits and pitfalls for following <span style="font-weight:bold;">development patterns for technology &#8482;.</span></p>
<p>I was reading an interesting<br />
<a href="http://www.techcrunch.com/">TechCrunch</a> post about public relations titled <a href="http://www.techcrunch.com/2008/05/25/pr-secrets-for-startups/">PR Secrets for Startups</a> by Brian Solis.  This caught my eye because, as many of you know, <a href="http://www.openmountain.com/">Open Mountain</a> targets startups as our primary customer. What was interesting in this post was the comment on PR &#8220;patterns&#8221;. PR firms had, over time, become less about relations to the public and more about following a certain pattern of information dissemination.</p>
<p><span style="font-style:italic;">Something we should share begets a press release to the Roladex and PR wire. Why do anything different?<br />
</span></p>
<p>His point was that PR had fallen into the above pattern of action and that Web 2.0 may have finally shocked the PR industry out of this rut. Truth is, pattern behavior is all around us, which in turn leads to automated decision making and that is bad news.</p>
<p>Take open source as an example. A few years back, Linux finally established that open source software works as good if not better than commercial software. Suddenly, CFO&#8217;s were slashing IT budgets and demanding that their teams go open source full throttle because it was free. Does anyone still think open source means free? No. Once the CFO&#8217;s got over this pattern, we settled into the process we have today for evaluating open source right along side commercial software.</p>
<p>As another example, during the height of the boom, many investors were pushing Java running on BEA servers on top of an Oracle database because that was a pattern they knew worked. Of course now we know that the pattern of <a href="http://jboss.com/">JBoss</a> with <a href="http://mysql.com/">MySQL</a> is equally viable and less expensive for startups.</p>
<p>Patterns at the end of the day are neither good nor bad. The best companies and thinkers see the pattern as another data point. Following <span>established </span><span style="font-weight:bold;">development patterns for technology &#8482;</span> has some nice benefits, but in the end this is just another decision along with what language to use, when to launch, how to host your solutions, etc.</p>
<p>Here are five benefits to consider when selecting or following  a pattern:</p>
<ol>
<li><span style="font-weight:bold;">Communities form around patterns</span>. People doing similar things are likely to share their experiences, and the resulting knowledge base is definitely beneficial to the community.</li>
<li><span style="font-weight:bold;">Patterns create stability through consistency</span>.  Solutions are more stable if the underpinnings are based on technologies and methodologies that are tried and proven.</li>
<li>Once you decide to use a pattern, the set of new decisions you need to make shrinks more rapidly than without a pattern.  <span style="font-weight:bold;">Teams can move faster</span> by focusing on decisions outside the pattern.</li>
<li>It&#8217;s <span style="font-weight:bold;">less risky to follow than lead</span> when it comes to everything but your core competency. You want to be leading edge with your core competency and the soul of your business. Patterns allow you to use the experience of others to solve everything else.</li>
<li><span style="font-weight:bold;">Patterns are easier to communicate</span> to non-experts. Once something becomes a pattern, it is often synthesized down to a key set of principals and benefits that are easy to share with the world.</li>
</ol>
<p>But if you follow a pattern, here are some things to watch for:</p>
<ul>
<li>Be wary of patterns that are not driven by experts. Having an investor tell you to use Java is not the same thing as reading it on <a href="http://theserverside.com/">TheServerSide </a>or hearing it from <a href="http://en.wikipedia.org/wiki/James_Gosling">James Gosling</a>.</li>
</ul>
<ul>
<li>New patterns do not have the same benefits as established patterns. A great example of this is the scalability of Ruby on Rails, which is a hot issue right now. Some industry experts have expressed a concern over the scalability of the RoR pattern based on the experience of a few companies. I have no doubt the scalability issues will be solved as they were with Java and enterprise beans. Established patterns are less likely have these types of fundamental issues.</li>
</ul>
<ul>
<li>Patterns can lower your decision making capability. At the end of the day, a pattern is a tool not a solution. People following patterns can forget that and start to make their decisions based on what others have already done. If you follow that trend for your core competency, then you might as well move on to something new because you are already doing something that has already been done.</li>
</ul>
<p>For us at Open Mountain, we often suggest patterns for development, right after we make sure we understand what your business is about. Patterns have nice benefits that we like to use to take the risk out of development.</p>
<p>(I posted this originally on May 25, 2008 and decided to re-post)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/openmountain.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/openmountain.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/openmountain.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/openmountain.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/openmountain.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/openmountain.wordpress.com/56/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/openmountain.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/openmountain.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.avantica.net&amp;blog=3624702&amp;post=56&amp;subd=openmountain&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.avantica.net/2008/10/02/development-patterns-for-technology-tm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a42b5ac0c85d7fbb30f8e7ebe78aaa8a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bob Benedict</media:title>
		</media:content>
	</item>
	</channel>
</rss>