<?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>Aditya Purwa Wibawa's Blog</title>
	<atom:link href="http://adityapurwa.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://adityapurwa.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 11 Apr 2009 13:41:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='adityapurwa.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Aditya Purwa Wibawa's Blog</title>
		<link>http://adityapurwa.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://adityapurwa.wordpress.com/osd.xml" title="Aditya Purwa Wibawa&#039;s Blog" />
	<atom:link rel='hub' href='http://adityapurwa.wordpress.com/?pushpress=hub'/>
		<item>
		<title>More than One Frameworks Are Exist in One Product</title>
		<link>http://adityapurwa.wordpress.com/2009/04/11/more-than-one-frameworks-are-exist-in-one-product/</link>
		<comments>http://adityapurwa.wordpress.com/2009/04/11/more-than-one-frameworks-are-exist-in-one-product/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 13:40:01 +0000</pubDate>
		<dc:creator>adityapurwa</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://adityapurwa.wordpress.com/?p=244</guid>
		<description><![CDATA[What&#8217;s that? Plenty of applications are exist in more than one era, chances are these kind of applications would have more than one frameworks in their application. For example, Data Access Layer pattern has significant changes over the years. When I was writing my first .Net application in college, we were using SqlConnection directly in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=244&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>What&#8217;s that?</h3>
<p>Plenty of applications are exist in more than one era, chances are these kind of applications would have more than one frameworks in their application.</p>
<p>For example, Data Access Layer pattern has significant changes over the years. When I was writing my first .Net application in college, we were using SqlConnection directly in our UI <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , then on my first time in my professional career, I was introduced to Active Record pattern. Few years later, Data Mapper seems the make sense way to build Data Access Layer.</p>
<p>There! I have been introduced to more than three style of architectures in the relatively short period of time, how about if a product survives more than two or three years? than we are going to see a plenty of frameworks in there.</p>
<p>Obviously this leads to major confuse in maintenance. When developers need to fix or enhance in the old modules, they would see a different set of frameworks in there, which one to follow?<br />
<span id="more-244"></span><br />
This condition usually happen when in maintenance phase, architects and/or developers see another very good framework which solves their day to day or (even their future) problems, or it is feature rich than theirs. </p>
<p>In DAL, plenty of us have used Custom DAL in years, but with the availability of 3rd party ORM, such as NHibernate and SubSonic, another question has arised, why we need to maintenance our own DAL? why not using the existing solution in the market? especially since these ORMs already matured and have a very good community/vendor supports available.</p>
<h3>Which One to Follow?</h3>
<p>This is tricky one, if we need to fix/enhance a legacy module which contains multiple framework, then choosing the newest framework would make that particular module much even harder to maintain in the future.</p>
<p>I would prefer to continue using the legacy framework, since that would sit nicely in the picture, or at least in that legacy module.</p>
<h3>How to Solve Permanently?</h3>
<p>Of course, the very thing to solve this is to avoid it in the first place <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  </p>
<p>I would think this is a <a href="http://www.martinfowler.com/bliki/TechnicalDebt.html">Technical Debt</a>, as the architects or the stakeholders choose to incorporate new framework without upgrading the existing one and leaving the problem to be fixed in the future.</p>
<p>Why? Plenty of reasons surely, a favourite reason is no budget.</p>
<p>How to fix this? Well, I think these three would do, however, none of them would reduce cost to zero, just to minimize the cost:</p>
<ul>
<li>I think this is where the big decision should has been taken in the first place, when the time has come to choose whether to incorporate or not a new framework, the stakeholders should calculate about the upgrade cost too &#8230; To avoid more cost in the future: maintenance that is.
<li>Or, choose to upgrade all of legacy frameworks gradually. This is more make sense in the real world, since stakeholders can have their new framework up and running first, see if everything is working out okay, then incorporate it in everything.
<li>And of course, the another option is to not upgrade legacy framework at all. This is can be acceptable and in line with the magic mantra: &#8220;If it&#8217;s not broken, don&#8217;t fix it&#8221; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  As long as the legacy module working out just fine, than leave it there as it is, don&#8217;t put an effort to fix it.
</ul>
<p>The last effort then again would cause a Technical Debt, however, if one&#8217;s company is certain that a particular module doesn&#8217;t need a maintainance or enhancement in the future, then perhaps leave it behind is the cheapest option.</p>
<br />Posted in Software Engineering  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityapurwa.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityapurwa.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityapurwa.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityapurwa.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityapurwa.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityapurwa.wordpress.com/244/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityapurwa.wordpress.com/244/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityapurwa.wordpress.com/244/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=244&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityapurwa.wordpress.com/2009/04/11/more-than-one-frameworks-are-exist-in-one-product/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">adityapurwa</media:title>
		</media:content>
	</item>
		<item>
		<title>Reducing Integration Conflict by Check in and Get Latest Often</title>
		<link>http://adityapurwa.wordpress.com/2009/04/07/reducing-integration-conflict-by-check-in-and-get-latest-often/</link>
		<comments>http://adityapurwa.wordpress.com/2009/04/07/reducing-integration-conflict-by-check-in-and-get-latest-often/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 22:46:44 +0000</pubDate>
		<dc:creator>adityapurwa</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://adityapurwa.wordpress.com/?p=228</guid>
		<description><![CDATA[Interesting enough, for few recent years, I always see few people just refused to get latest often. They always complain about: &#8220;This is not get latest new code, this is get latest new problem&#8221; That&#8217;s happen because they felt that something just went broken everytime they get latest from source control, natural I thought. But, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=228&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Interesting enough, for few recent years, I always see few people just refused to get latest often. They always complain about: &#8220;This is not get latest new code, this is get latest new problem&#8221; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  That&#8217;s happen because they felt that something just went broken everytime they get latest from source control, natural I thought.</p>
<p>But, that mindset would bring another set of problem itself. One of them is increasing integration conflict in the end of the development iteration.</p>
<p>Let say there is a changes in Data Access API, or Domain Model. These changes would have plenty effects in upper layers above them: facade, service, presentation, etc. If developers not get latest these changes early, they will continue to develop by the wrong code base for plenty of items, when finally developers decided to get latest, the error would be massive.</p>
<p>That can be avoided by get latest often, let say every morning, so that developers can detect early what are newer integration conflicts this time.<br />
<span id="more-228"></span></p>
<h3>Compile Error</h3>
<p>This kind of problem is quite easy, compiler would point which line is causing the error. How to fix it would also (usually) straightforward, although no one would disagree that this is annoying, especially since previously your code is working out okay.</p>
<p>Lucky for us, we can use Continuous Integration tools for early detection to this kind of error, one of them is <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">Cruise Control .Net</a>. Unless, the error is intended, so that developers can follow the new API rather than the old one.</p>
<h3>Runtime Error</h3>
<p>This is the real problem, since we should test our modules before we can see what wrong with them. Regression testing obviously need to be done too, if the changes happen in the middle of development &#8230; headache.</p>
<p>The one way out is to assign tester to do the regression testing, while the current developed module can be tested by developers themselves.</p>
<h3>Conclusion</h3>
<p>Although there is no easy way out, I still believe that changes can occur any time, even in the middle or in the end of development iteration. And I believe we should check in and get latest often to get the earliest possible any integration conflict, leaving us with enough time to fix any error found.</p>
<br />Posted in Software Engineering  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityapurwa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityapurwa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityapurwa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityapurwa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityapurwa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityapurwa.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityapurwa.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityapurwa.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=228&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityapurwa.wordpress.com/2009/04/07/reducing-integration-conflict-by-check-in-and-get-latest-often/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">adityapurwa</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Using Dependency Injection</title>
		<link>http://adityapurwa.wordpress.com/2009/04/04/why-using-dependency-injection/</link>
		<comments>http://adityapurwa.wordpress.com/2009/04/04/why-using-dependency-injection/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 22:57:12 +0000</pubDate>
		<dc:creator>adityapurwa</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://adityapurwa.wordpress.com/?p=204</guid>
		<description><![CDATA[Basically I would use Dependency Injection to seperate between infrastructure and logic concern in my business logic class (or anything else). Example: class TaxService { private ILogger _logger = null; public TaxService() { _logger = LoggerFactory.CreateLogger(this); } public void LogicA(object A, object B) { // Do important stuff here _logger.InspectStates(A); } } At above code, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=204&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Basically I would use Dependency Injection to seperate between infrastructure and logic concern in my business logic class (or anything else). Example:</p>
<p>class TaxService<br />
{<br />
private ILogger _logger = null;<br />
public TaxService()<br />
{<br />
_logger = LoggerFactory.CreateLogger(this);<br />
}</p>
<p>public void LogicA(object A, object B)<br />
{<br />
// Do important stuff here<br />
_logger.InspectStates(A);<br />
}<br />
}</p>
<p>At above code, I initialised _logger in the TaxService&#8217;s constructor. Although this is quite good enough rather than creating concrete ILogger implementation class, however, I found this inisialisation is somewhat distracting users from TaxService main intention.</p>
<p>Then, I can rewrite my above code to use Dependency Injection, so that TaxService shouldn&#8217;t have to know how to create _logger explicitly:<br />
<span id="more-204"></span></p>
<p>class TaxService<br />
{<br />
private ILogger _logger = null;</p>
<p>[Inject]<br />
public ILogger Logger<br />
{<br />
get { return _logger; };<br />
set { _logger = value; };<br />
}</p>
<p>public TaxService()<br />
{<br />
}</p>
<p>public void LogicA(object A, object B)<br />
{<br />
// Do important stuff here<br />
_logger.InspectStates(A);<br />
}<br />
}</p>
<p>Boom! suddenly TaxService class doesn&#8217;t care how _logger is inisialised, by this, developers who develop and use this class can consentrate on how TaxService should work and ignore all of the infrastructure issues.</p>
<p>Usually there are two ways for DI containers to do the type bindings, by XML or by binding on code. <a href="http://ninject.org/">Ninject</a> uses binding on code, which is basically it&#8217;s a fluent interface pattern to declare type bindings policy:</p>
<p>Bind<ILogger>.To<DatabaseLogger>();</p>
<p>I&#8217;m not sure which one is better. However, I usually thought that by having type binding policy written in XML, we can put it away from our general code, which then the code will look much more cleaner. Once it is established, I don&#8217;t have to see it again for a long long time.</p>
<p>When I use binding on code, somehow I found that the declaration is quite verbose and may distract me from my real problem. Anyway, it is just the matter of taste in the end.</p>
<br />Posted in .Net, Software Engineering  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityapurwa.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityapurwa.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityapurwa.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityapurwa.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityapurwa.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityapurwa.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityapurwa.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityapurwa.wordpress.com/204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=204&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityapurwa.wordpress.com/2009/04/04/why-using-dependency-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">adityapurwa</media:title>
		</media:content>
	</item>
		<item>
		<title>My Introduction with Automatic Unit Test</title>
		<link>http://adityapurwa.wordpress.com/2009/03/25/my-introduction-with-automatic-unit-test/</link>
		<comments>http://adityapurwa.wordpress.com/2009/03/25/my-introduction-with-automatic-unit-test/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 01:37:47 +0000</pubDate>
		<dc:creator>adityapurwa</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://adityapurwa.wordpress.com/?p=194</guid>
		<description><![CDATA[It was crossed my mind before, that creating automatic unit test is just wasting time activity because we need to create a test first, make sure our code is failing, before we can build up a code that should pass that test. Like my friend always told me:  &#8220;asking people to use automatic unit testing, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=194&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It was crossed my mind before, that creating automatic unit test is just wasting time activity <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  because we need to create a test first, make sure our code is failing, before we can build up a code that should pass that test.</p>
<p>Like my friend always told me:  &#8220;asking people to use automatic unit testing, instead of manual testing, is just like to ask them to change their mindset of development&#8221;. Yap, it is in my mindset that I can do mental unit test toward my code <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> , which is speedier rather than I need to write a unit test first.</p>
<p>But, after reading up Jimmy Nilsson&#8217;s <a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202">Applying Domain-Drive Design and Patterns</a>, I realized that I need unit test to make sure my code satisfied the requirement that it need to fulfill, and survive across refactoring processes.</p>
<p>Not to mention refactoring is just way too common thing to do in development phase (and maintenance), how can we be sure that our code is as good as it was?</p>
<p>Without Unit Test, we should test the refactored code manually, that&#8217;s hard.</p>
<p>Obviously unit test need to be built with very attention to detail, to make sure all requirements are there to test.</p>
<p>There &#8230; I change my mind again, I&#8217;ll use automatic unit testing from now on.</p>
<p>Tools are also widely available for this practice, my favourites are NUnit and Visual Studio Unit Testing.</p>
<br />Posted in Software Engineering  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityapurwa.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityapurwa.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityapurwa.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityapurwa.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityapurwa.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityapurwa.wordpress.com/194/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityapurwa.wordpress.com/194/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityapurwa.wordpress.com/194/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=194&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityapurwa.wordpress.com/2009/03/25/my-introduction-with-automatic-unit-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">adityapurwa</media:title>
		</media:content>
	</item>
		<item>
		<title>Converted to Agile</title>
		<link>http://adityapurwa.wordpress.com/2009/03/01/converted-to-agile/</link>
		<comments>http://adityapurwa.wordpress.com/2009/03/01/converted-to-agile/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 05:02:37 +0000</pubDate>
		<dc:creator>adityapurwa</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://adityapurwa.wordpress.com/?p=187</guid>
		<description><![CDATA[I always a big fan of Big Upfront Design approach, whether that is RUP, MDA or even Waterfall methodology. I thought that is the most &#8216;make-sense&#8217; approach, ever. However, my last project shows the biggest problem with them: inflexibility to handle changes, not natural and too frigid. Although they are, obviously, still useful in many [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=187&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I always a big fan of Big Upfront Design approach, whether that is RUP, MDA or even Waterfall methodology. I thought that is the most &#8216;make-sense&#8217; approach, ever.</p>
<p>However, my last project shows the biggest problem with them: inflexibility to handle changes, not natural and too frigid. Although they are, obviously, still useful in many projects.</p>
<p>Now, in the next project, we are going to adopt Scrum methodology, since changes may be often to happen and we have luxury for having our client working with us in almost entire project duration.</p>
<p>I take my time to read Agile book, and I think this methodology is great in term of flexibility to handle changes. Can&#8217;t wait to practice it in the real world. (start on Monday, March 2, 2009 anyway <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<br />Posted in Software Engineering  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/adityapurwa.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/adityapurwa.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/adityapurwa.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/adityapurwa.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/adityapurwa.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/adityapurwa.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/adityapurwa.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/adityapurwa.wordpress.com/187/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=adityapurwa.wordpress.com&amp;blog=4298882&amp;post=187&amp;subd=adityapurwa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://adityapurwa.wordpress.com/2009/03/01/converted-to-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">adityapurwa</media:title>
		</media:content>
	</item>
	</channel>
</rss>
