<?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/"
	>

<channel>
	<title>R. Kris Hardy</title>
	<atom:link href="http://www.rkrishardy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rkrishardy.com</link>
	<description>Software Development, Web Applications and Business Analytics</description>
	<lastBuildDate>Tue, 16 Feb 2010 15:27:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Upcoming Meetings for Agileists</title>
		<link>http://www.rkrishardy.com/2010/02/upcoming-meetings-for-agileists/</link>
		<comments>http://www.rkrishardy.com/2010/02/upcoming-meetings-for-agileists/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 15:06:13 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[eaia]]></category>
		<category><![CDATA[enterprise application integration]]></category>
		<category><![CDATA[techlife]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=238</guid>
		<description><![CDATA[We had a small, but very fun, knowledgeable and interesting group for the kickoff of the Enterprise Application Integration Alliance! We had some great discussions on the issues of integrating and improving legacy applications, scaling message busses, successes and failures in data architecture, and inheriting messaging systems that are being used in ways that were [...]]]></description>
			<content:encoded><![CDATA[<p>We had a small, but very fun, knowledgeable and interesting group for the kickoff of the Enterprise Application Integration Alliance! We had some great discussions on the issues of integrating and improving legacy applications, scaling message busses, successes and failures in data architecture, and inheriting messaging systems that are being used in ways that were never intended.</p>
<p>We&#8217;re working on our next meeting, so stay tuned.</p>
<p>In the mean time&#8230;</p>
<p>Make sure you check out these other two meetings that I&#8217;ll be at, and I thought might be interesting to you as well!</p>
<h2><strong>EVENT 1:<br />
The Agile Enterprise (A TechLife Columbus meetup)</strong></h2>
<p>February 11th, 2010<br />
4:00 PM &#8211; 7:00 PM<br />
(Sorry for the late notice.)</p>
<p>Price: FREE</p>
<p>Dublin Entrepreneurial Center<br />
7003 Post Rd.<br />
Dublin, OH 43016</p>
<p><a href="http://www.meetup.com/techlifecolumbus/calendar/12250588/">Click for more information &amp; to RSVP for The Agile Enterprise</a></p>
<p>Summary:<br />
This will be a recurring meetup series, oriented towards large organizations and growing organizations. Everyone is welcome.</p>
<p>These meetups will follow the OpenSpace/ Unconference format &#8211; meaning, come prepared to participate! There will be no presentations nor handing-down of platitudes! Participants will share their experiences, challenges and successes. Everyone&#8217;s input is valuable; Everyone has something to learn and something to teach.</p>
<p>Topics will rotate and be chosen by the participants, to discuss issues such as:</p>
<p>* How can a growing organization stay agile, yet implement the discipline necessary to scale and survive?<br />
* Innovation and agility of a startup, within a large enterprise<br />
* How much process?<br />
* Making cultural changes<br />
* Moving the needle when you&#8217;re in the trenches<br />
* Getting support from employees when you&#8217;re making changes from the top<br />
* Knowing what needles to move and knowing when you&#8217;ve made a difference</p>
<p>This month, we will attempt to focus on practicing agile development methodologies in a large organization. What methods do not scale and how do you adjust?</p>
<h2>EVENT 2:<br />
COHAA Day In The Life Tour: Progressive Medical</h2>
<p>February 25th, 2010<br />
7:30 AM &#8211; 9:00 AM</p>
<p>Price: FREE, but limited to 15 people. <a href="http://www.cohaa.org/content/?q=node/27">You must RSVP here.</a></p>
<p>Progressive Medical<br />
250 Progressive Way,<br />
Westerville, OH 43082</p>
<p><a href="http://www.cohaa.org/content/?q=node/27">Click for more information &amp; to RSVP for the COHAA Day In The Life Tour: Progressive Medical</a></p>
<p>Summary:<br />
Host: Ben Blanquera, VP Information Services</p>
<p>Due to limited space, RSVPs are limited to 15 people. Please only RSVP if you are attending.</p>
<p>Please join COHAA as we take a tour of Progressive Medical&#8217;s Agile space. Come learn &#8216;Why Progressive Chose Agile&#8217;.</p>
<p>Ben Blanquera is the Vice President of Information Services for Progressive Medical, Inc . In his role, Ben is responsible for project/portfolio management, application development, business intelligence, and business analysis.</p>
<p>Progressive Medical, Inc. is a nationwide, managed care and health care cost containment company. It coordinates care for workers&#8217; compensation, auto-no-fault and personal injury protection cases. Progressive Medical is a Inc. 500 Hall of Fame company.</p>
<p>I hope to see you there or at the next EAIA meeting!</p>
<p>Stay warm!</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2010/02/upcoming-meetings-for-agileists/';
digg_title = 'Upcoming Meetings for Agileists';
digg_bodytext = 'We had a small, but very fun, knowledgeable and interesting group for the kickoff of the Enterprise Application Integration Alliance! We had some great discussions on the issues of integrating and imp...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/agile+development' rel='tag' target='_self'>agile development</a>, <a class='technorati-link' href='http://technorati.com/tag/eaia' rel='tag' target='_self'>eaia</a>, <a class='technorati-link' href='http://technorati.com/tag/enterprise+application+integration' rel='tag' target='_self'>enterprise application integration</a>, <a class='technorati-link' href='http://technorati.com/tag/techlife' rel='tag' target='_self'>techlife</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2010/02/upcoming-meetings-for-agileists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Refactoring &#8211; A Haiku</title>
		<link>http://www.rkrishardy.com/2010/02/refactoring-a-haiku/</link>
		<comments>http://www.rkrishardy.com/2010/02/refactoring-a-haiku/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 15:31:45 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile development; haiku; code refactoring]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/2010/02/refactoring-a-haiku/</guid>
		<description><![CDATA[Refactor today
Write, test, run; Some fail, some pass
Mind gone to jelly


digg_url = 'http://www.rkrishardy.com/2010/02/refactoring-a-haiku/';
digg_title = 'Refactoring - A Haiku';
digg_bodytext = 'Refactor today\nWrite, test, run; Some fail, some pass\nMind gone to jelly...';
digg_skin = 'compact';
digg_window = 'new';


 


Technorati Tags: agile development; haiku; code refactoring


]]></description>
			<content:encoded><![CDATA[<p>Refactor today<br />
Write, test, run; Some fail, some pass<br />
Mind gone to jelly</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2010/02/refactoring-a-haiku/';
digg_title = 'Refactoring - A Haiku';
digg_bodytext = 'Refactor today\nWrite, test, run; Some fail, some pass\nMind gone to jelly...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/agile+development%3B+haiku%3B+code+refactoring' rel='tag' target='_self'>agile development; haiku; code refactoring</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2010/02/refactoring-a-haiku/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Terry Chay &#8211; 1500 Lines of Code</title>
		<link>http://www.rkrishardy.com/2010/01/terry-chay-1500-lines-of-code/</link>
		<comments>http://www.rkrishardy.com/2010/01/terry-chay-1500-lines-of-code/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 02:34:12 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software architecture]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=233</guid>
		<description><![CDATA[Here is an outstanding article on web development philosophy that really got me thinking today, written by Terry Chay of Wordpress.  It's long, but well worth the read.]]></description>
			<content:encoded><![CDATA[<p>Here is an outstanding article on web development philosophy that really got me thinking today, written by Terry Chay of Wordpress.  It&#8217;s long, but well worth the read.</p>
<p><a href="http://terrychay.com/article/1500-lines-of-code.shtml">1500 Lines of Code</a></p>
<p>This really got me thinking, and I&#8217;ll probably work on a comment to it this week.</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2010/01/terry-chay-1500-lines-of-code/';
digg_title = 'Terry Chay - 1500 Lines of Code';
digg_bodytext = 'Here is an outstanding article on web development philosophy that really got me thinking today, written by Terry Chay of Wordpress.  It\'s long, but well worth the read....';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/c%2B%2B' rel='tag' target='_self'>c++</a>, <a class='technorati-link' href='http://technorati.com/tag/java' rel='tag' target='_self'>java</a>, <a class='technorati-link' href='http://technorati.com/tag/php' rel='tag' target='_self'>php</a>, <a class='technorati-link' href='http://technorati.com/tag/software+architecture' rel='tag' target='_self'>software architecture</a>, <a class='technorati-link' href='http://technorati.com/tag/software+development' rel='tag' target='_self'>software development</a>, <a class='technorati-link' href='http://technorati.com/tag/web+development' rel='tag' target='_self'>web development</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2010/01/terry-chay-1500-lines-of-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Announcing the Columbus Enterprise Application Integration Alliance!</title>
		<link>http://www.rkrishardy.com/2009/12/announcing-the-columbus-enterprise-application-integration-alliance/</link>
		<comments>http://www.rkrishardy.com/2009/12/announcing-the-columbus-enterprise-application-integration-alliance/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 10:06:34 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[columbus]]></category>
		<category><![CDATA[enterprise application integration]]></category>
		<category><![CDATA[meetup]]></category>
		<category><![CDATA[message oriented middleware]]></category>
		<category><![CDATA[service oriented architecture]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=230</guid>
		<description><![CDATA[If you live in the Columbus, OH area, and are interested in Enterprise Application Integration (EAI), come join us at the Enterprise Application Integration Alliance.
We are currently looking for speakers and topics.  If you have EAI experience, successes, failures, or lessons-learned, please let me know!
Thanks!


digg_url = 'http://www.rkrishardy.com/2009/12/announcing-the-columbus-enterprise-application-integration-alliance/';
digg_title = 'Announcing the Columbus Enterprise Application Integration [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.meetup.com/Enterprise-Application-Integration/"><img class="alignright size-full wp-image-231" title="Enterprise Application Integration Alliance" src="http://www.rkrishardy.com/wp-content/uploads/2009/12/eaia.jpg" alt="" width="180" height="46" /></a>If you live in the Columbus, OH area, and are interested in Enterprise Application Integration (EAI), come join us at the <a href="http://www.meetup.com/Enterprise-Application-Integration/">Enterprise Application Integration Alliance</a>.</p>
<p>We are currently looking for speakers and topics.  If you have EAI experience, successes, failures, or lessons-learned, please let me know!</p>
<p>Thanks!</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/12/announcing-the-columbus-enterprise-application-integration-alliance/';
digg_title = 'Announcing the Columbus Enterprise Application Integration Alliance!';
digg_bodytext = '&lt;a href=&quot;http://www.meetup.com/Enterprise-Application-Integration/&quot;&gt;&lt;img class=&quot;alignright size-full wp-image-231&quot; title=&quot;Enterprise Application Integration Alliance&quot; src=&quot;http://www.rkrishardy.com/wp...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/columbus' rel='tag' target='_self'>columbus</a>, <a class='technorati-link' href='http://technorati.com/tag/enterprise+application+integration' rel='tag' target='_self'>enterprise application integration</a>, <a class='technorati-link' href='http://technorati.com/tag/meetup' rel='tag' target='_self'>meetup</a>, <a class='technorati-link' href='http://technorati.com/tag/message+oriented+middleware' rel='tag' target='_self'>message oriented middleware</a>, <a class='technorati-link' href='http://technorati.com/tag/service+oriented+architecture' rel='tag' target='_self'>service oriented architecture</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/12/announcing-the-columbus-enterprise-application-integration-alliance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve Been Featured by TechLife Columbus!</title>
		<link>http://www.rkrishardy.com/2009/12/featured-by-techlife-columbus/</link>
		<comments>http://www.rkrishardy.com/2009/12/featured-by-techlife-columbus/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 13:02:17 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[techcolumbus]]></category>
		<category><![CDATA[techlife]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=227</guid>
		<description><![CDATA[I want to give a quick thanks to Ben Blanquera and the guys at TechLife Columbus for featuring me in today&#8217;s update!
TechLife LinkedIn Profile &#8211; Kris Hardy &#8211; Software Evangelist


digg_url = 'http://www.rkrishardy.com/2009/12/featured-by-techlife-columbus/';
digg_title = 'I\'ve Been Featured by TechLife Columbus!';
digg_bodytext = 'I want to give a quick thanks to Ben Blanquera and the guys at &#60;a [...]]]></description>
			<content:encoded><![CDATA[<p>I want to give a quick thanks to Ben Blanquera and the guys at <a href="http://columbustech.blogspot.com/">TechLife Columbus</a> for featuring me in today&#8217;s update!</p>
<p><a href="http://columbustech.blogspot.com/2009/12/president-software-integration.html">TechLife LinkedIn Profile &#8211; Kris Hardy &#8211; Software Evangelist</a></p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/12/featured-by-techlife-columbus/';
digg_title = 'I\'ve Been Featured by TechLife Columbus!';
digg_bodytext = 'I want to give a quick thanks to Ben Blanquera and the guys at &lt;a href=&quot;http://columbustech.blogspot.com/&quot;&gt;TechLife Columbus&lt;/a&gt; for featuring me in today\'s update!\n\n&lt;a href=&quot;http://columbustech.blo...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/linkedin' rel='tag' target='_self'>linkedin</a>, <a class='technorati-link' href='http://technorati.com/tag/techcolumbus' rel='tag' target='_self'>techcolumbus</a>, <a class='technorati-link' href='http://technorati.com/tag/techlife' rel='tag' target='_self'>techlife</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/12/featured-by-techlife-columbus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion Fix: svn copy causes &#8220;Repository moved permanently to &#8216;&#8230;&#8217;; please relocate</title>
		<link>http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/</link>
		<comments>http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 17:54:52 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[repository moved permanently]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn copy]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=220</guid>
		<description><![CDATA[Background
Subversion is a version control system.  It can run as either it&#8217;s own server (svnserve), or as an Apache module (mod_dav_svn.so).
When using the mod_dav_svn module for Apache, and doing an svn copy operation on the repository itself can fail if the VirtualHost configuration for subversion is not correct.  Put simply, if Apache itself [...]]]></description>
			<content:encoded><![CDATA[<h1>Background</h1>
<p><a href="http://subversion.tigris.org/">Subversion</a> is a version control system.  It can run as either it&#8217;s own server (svnserve), or as an Apache module (mod_dav_svn.so).</p>
<p>When using the mod_dav_svn module for Apache, and doing an svn copy operation on the repository itself can fail if the VirtualHost configuration for subversion is not correct.  Put simply, if Apache itself and mod_dav_svn are serving content from the same path, then conflicts can occur.  Apache can get confused if it attempts to serve a physical file instead of routing the request through mod_dav_svn.</p>
<p>&#8220;svn copy &#8230;&#8221; operations will fail, while &#8220;svn update &#8230;&#8221;, &#8220;svn commit &#8230;&#8221;, and &#8220;svn checkout &#8230;&#8221; operations work fine.</p>
<p>Detail of the problem, diagnosing the problem, and the fix are below.</p>
<p><span id="more-220"></span></p>
<h1>Problem</h1>
<p>Repository checkouts (svn co &#8230;) and commits (svn ci &#8230;) work fine and throw no errors, but svn trunk copying operations fail &#8220;svn copy &#8230;/trunk &#8230;/tags/x.x&#8221; with &#8220;svn: Repository moved permanently to &#8216;&#8230;&#8217;; please relocate&#8221;.</p>
<p><code><br />
$ svn co https://svn.test.com/myproject/trunk myproject<br />
... (checkout progress)<br />
Checked out revision [x].<br />
$ svn ci myproject<br />
Committed revision [x].<br />
$ svn cp https://svn.test.com/myproject/trunk https://svn.test.com/myproject/tags/x.x<br />
svn: Repository moved permanently to 'https://svn.test.com/myproject/'; please relocate<br />
</code></p>
<h1>Diagnostics</h1>
<p>To diagnose the problem, first make sure the local checkout urls are correct.</p>
<p><code><br />
$ svn info myproject<br />
...<br />
URL: https://svn.test.com/myproject/trunk<br />
Repository Root: https://svn.test.com/myproject<br />
</code></p>
<p>The Repository Root should match the root url of the project repository that you are working with because the svn commit above worked.  However, if they don&#8217;t match, then use svn switch to move the url that your local checkout is linked to:</p>
<p><code><br />
$ svn switch --relocate [OLD URL] [NEW URL] myproject<br />
$ svn cp https://svn.test.com/myproject/trunk https://svn.test.com/myproject/tags/x.x<br />
</code></p>
<p>If relocating the base url of the checkout (svn switch &#8211;relocate &#8230;) does not fix the problem, but checkouts and commits work fine, the next step is to look at the virtual host configuration in Apache for the subversion module.  This is where I found my problem.</p>
<h1>Fix</h1>
<p>The file path of the subversion repository was within public_html, so it had a physical path that was identitical to it&#8217;s url path.</p>
<p><code><br />
$ ls public_html<br />
repos<br />
$ cat /etc/httpd/conf.d/subversion.conf<br />
&lt;VirtualHost 127.0.0.1:443&gt; #YOUR IP ADDRESS:PORT<br />
DocumentRoot /home/svn/public_html #YOUR WEBROOT PATH<br />
...<br />
&lt;Location /repos&gt;<br />
DAV svn<br />
SVNParentPath /home/svn/public_html/repos #YOUR REPOSITORY PATH<br />
...<br />
&lt;/Location&gt;<br />
&lt;/VirtualHost&gt;<br />
</code></p>
<p>The problem is that the Location is an actual physical filepath, not an alias.  So, Apache isn&#8217;t sure whether to attempt to serve the physical file itself, or to pass the request through to mod_dav_svn.  Most of the time mod_dav_svn wins and Apache forward the request through.  However, &#8220;svn copy&#8221; must work slighly differently, and Apache attempts to serve the request itself, rather than pass it through mod_dav_svn.  The request then fails and svn errors out with the &#8220;svn: Repository moved permanently to &#8216;&#8230;&#8217;; please relocate&#8221; message.</p>
<p>The fix is to 1) change the Apache configuration, and 2) change the physical path to the repository so that it does not match the url.  This way, Apache will never attempt to serve a physical file itself, and will instead forward the requests to mod_dav_svn.</p>
<h2>Edit /etc/httpd/conf.d/subversion.conf</h2>
<p><code><br />
&lt;VirtualHost svn.test.com:443&gt;<br />
DocumentRoot /home/svn/public_html<br />
...<br />
&lt;Location /repos&gt;<br />
DAV svn<br />
SVNParentPath /home/svn/repos #NOTE THAT repos IS NOW OUT OF THE PHYSICAL WEBROOT PATH<br />
...<br />
</code></p>
<h2>Move the repository directory out of the physical webroot path and restart Apache.</h2>
<p><code><br />
[svn /home/svn]$ mv public_html/repos .<br />
[svn /home/svn]$ sudo service httpd restart<br />
</code></p>
<p>All your &#8220;svn copy&#8221; operations should work now.</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/';
digg_title = 'Subversion Fix: svn copy causes &quot;Repository moved permanently to \'...\'; please relocate';
digg_bodytext = '&lt;h1&gt;Background&lt;/h1&gt;\n&lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; is a version control system.  It can run as either it\'s own server (svnserve), or as an Apache module (mod_dav_svn.so).\n\nW...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/apache' rel='tag' target='_self'>apache</a>, <a class='technorati-link' href='http://technorati.com/tag/repository+moved+permanently' rel='tag' target='_self'>repository moved permanently</a>, <a class='technorati-link' href='http://technorati.com/tag/subversion' rel='tag' target='_self'>subversion</a>, <a class='technorati-link' href='http://technorati.com/tag/svn+copy' rel='tag' target='_self'>svn copy</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Permission Denied (13) When Opening Socket in PHP &amp; Apache</title>
		<link>http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/</link>
		<comments>http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 14:56:53 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[permission denied]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[selinux]]></category>
		<category><![CDATA[stream_socket_client]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend_mail]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=212</guid>
		<description><![CDATA[I ran into this simple, but annoying, problem after I migrated my development workstation to Fedora 12.
Problem:
A large PHP application that I have developed at Submerged Solutions (SandPiper Accounting) began throwing Permission Denied (13) system exceptions when attempting to send mail through Zend Framework&#8217;s Zend_Mail library.
All the phpunit unit tests worked fine and could send [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into this simple, but annoying, problem after I migrated my development workstation to Fedora 12.</p>
<h2>Problem:</h2>
<p>A large PHP application that I have developed at <a href="http://www.submergedsolutions.com">Submerged Solutions</a> (<a href="http://www.submergedsolutions.com">SandPiper Accounting</a>) began throwing <strong>Permission Denied (13)</strong> system exceptions when attempting to send mail through<a href="http://www.zend.com"> Zend Framework&#8217;s</a> Zend_Mail library.</p>
<p>All the phpunit unit tests worked fine and could send e-mail, but would fail when the usability tests started and any HTTP requests that sent e-mail were handled through Apache.</p>
<p>The Apache instance was being run as user apache / group apache, and php (mod_php) is run as user apache / group apache.</p>
<p>The exception occurred in Zend_Mail_Protocol_Abstract-&gt;_connect(), immediately following the socket opening call &#8220;stream_socket_client(&#8230;)&#8221;.</p>
<h3>File: Zend/Mail/Protocol/Abstract.php; Line 224</h3>
<p><code> 50:    abstract class Zend_Mail_Protocol_Abstract<br />
51:    {<br />
...<br />
218:       protected function _connect($remote)<br />
219:       {<br />
220:           $errorNum = 0;<br />
221:           $errorStr = '';<br />
222:<br />
223:           // open connection<br />
224:           $this-&gt;_socket = @<strong>stream_socket_client</strong>($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION);<br />
225:           ...<br />
</code></p>
<p>fopen() calls using http and ftp protocols also failed:</p>
<p style="padding-left: 30px;"><em>Warning</em>: fopen(&#8230;) [function.fopen]: failed to open stream: Permission denied in &#8230;</p>
<ul></ul>
<h2>The fix:</h2>
<p>The problem turned out to be the &#8220;<strong>httpd_can_network_connect</strong>&#8221; SELinux setting that is on by default in Fedora 12.</p>
<p>In a shell console, run as <strong>root</strong>:</p>
<p><code># /usr/sbin/setsebool httpd_can_network_connect=1<br />
</code></p>
<p><a href="http://www.php.net/manual/en/function.fopen.php#56551">Thanks to durwood, who pointed this out on PHP.net.</a></p>
<p><a href="http://bugzilla.redhat.com/show_bug.cgi?id=164700">&#8220;Bug&#8221; Report at RedHat.com.</a></p>
<p><a href="http://fedoraproject.org/wiki/SELinux">More info on SELinux.</a></p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/';
digg_title = 'Permission Denied (13) When Opening Socket in PHP &amp; Apache';
digg_bodytext = 'I ran into this simple, but annoying, problem after I migrated my development workstation to Fedora 12.\n&lt;h2&gt;Problem:&lt;/h2&gt;\nA large PHP application that I have developed at &lt;a href=&quot;http://www.submerg...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/apache' rel='tag' target='_self'>apache</a>, <a class='technorati-link' href='http://technorati.com/tag/Debugging' rel='tag' target='_self'>Debugging</a>, <a class='technorati-link' href='http://technorati.com/tag/permission+denied' rel='tag' target='_self'>permission denied</a>, <a class='technorati-link' href='http://technorati.com/tag/php' rel='tag' target='_self'>php</a>, <a class='technorati-link' href='http://technorati.com/tag/selinux' rel='tag' target='_self'>selinux</a>, <a class='technorati-link' href='http://technorati.com/tag/stream_socket_client' rel='tag' target='_self'>stream_socket_client</a>, <a class='technorati-link' href='http://technorati.com/tag/zend+framework' rel='tag' target='_self'>zend framework</a>, <a class='technorati-link' href='http://technorati.com/tag/zend_mail' rel='tag' target='_self'>zend_mail</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confessions of a Researcher-turned-Engineer</title>
		<link>http://www.rkrishardy.com/2009/11/confessions-of-a-researcher-turned-engineer/</link>
		<comments>http://www.rkrishardy.com/2009/11/confessions-of-a-researcher-turned-engineer/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 18:59:55 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[einstein]]></category>
		<category><![CDATA[feynman]]></category>
		<category><![CDATA[newton]]></category>
		<category><![CDATA[problem solving]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=210</guid>
		<description><![CDATA[I wasn&#8217;t always a software engineer&#8230;
Before I began developing software for a living, I used to be in chemical research &#38; development as a biochemist.  For some reason, I always found myself gravitating back towards software and informatics, so I eventually gave in and started a software company.  But I&#8217;ve learned a lot of lessons [...]]]></description>
			<content:encoded><![CDATA[<p>I wasn&#8217;t always a software engineer&#8230;</p>
<p>Before I began developing software for a living, I used to be in chemical research &amp; development as a biochemist.  For some reason, I always found myself gravitating back towards software and informatics, so I eventually gave in and started a software company.  But I&#8217;ve learned a lot of lessons during my time as a scientist.</p>
<h3>When solving a difficult problem and you know 25% of the solution, you can figure out 70% through hard work, patience and trial-and-error.  The last 5% may never come, and if it does, is rarely when you&#8217;re looking for it.</h3>
<p>&#8220;I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world.&#8221;  &#8211; <a href="http://en.wikiquote.org/wiki/Albert_Einstein">Albert Einstein</a></p>
<p>Just because you don&#8217;t know the answer right now, doesn&#8217;t mean that you can made headway and figure it out as you go.  I&#8217;ve learned the most when I&#8217;ve tried things that haven&#8217;t worked, but figured out what went wrong and then tried again.</p>
<h3>If you&#8217;re not continually learning and improving yourself, your working days are numbered.</h3>
<p><span>&#8220;Genius without education is like silver in the mine.&#8221; &#8211; <a href="http://brainyquote.com/quotes/keywords/education.html">Benjamin Franklin</a><br />
</span></p>
<p>Don&#8217;t be afraid of challenging yourself and learning new languages, technologies or skills.  Each one of them expands your experience and perspective, and can give you an opportunity to take a look at the status quo.  Unfortunately, self-motivated learners are in short supply but in constant demand because they can adapt to any situation.</p>
<h3>If you want to succeed, you have to train for it.</h3>
<p>&#8220;You can know the name of a bird in all the languages of the world, but when you&#8217;re finished, you&#8217;ll know absolutely nothing whatever about the bird&#8230; So let&#8217;s look at the bird and see what it&#8217;s doing — that&#8217;s what counts. <strong>I learned very early the difference between knowing the name of something and knowing something.</strong>&#8221; &#8211; <a href="http://en.wikiquote.org/wiki/Richard_Feynman">Richard Feynman</a></p>
<p>Let&#8217;s face it&#8230;  The likelihood that you&#8217;re going to &#8220;knock one out of the park&#8221; your first time up to bat is pretty low.  Whether it&#8217;s business or baseball, the odds are against you.  It takes grit, determination, exercising yourself both physically and mentally, and lots of disappointment as you fail again and again.  But each day, train yourself a little more, a little harder, and each day you get a little stronger.  It&#8217;s cumulative, and it takes a lot of time.</p>
<h3>Give credit to those who came before you.</h3>
<p><span>“</span>If I have seen further it is by standing on the shoulders of Giants.<span>” &#8211; <a href="http://en.wikipedia.org/wiki/Isaac_Newton">Sir Isaac Newton</a><br />
</span></p>
<p>In science, recognition is incredibly important and one of the first lessons that you learn.  When you&#8217;re making a presentation, writing an article, or doing your homework, you have to cite any sources of information that when into your work.  This is partly because scientists are focusing on sharing knowledge, and in order for the community to work together, there has to be trust between researchers that their information will not be stolen by one-another.</p>
<p>Even more so, no inventions are made in complete isolation.  They are incremental improvements based on our understanding of our world and everything that has come before.  The iPhone wouldn&#8217;t exist without the much earlier inventions of silicon wafers, transistors, plastics, aluminum, and light.  And the next wave of inventions will be no different.</p>
<p>Take advantage of the information and knowledge that we have, but show respect to the community that this knowledge came from.  You probably will need more help from it in the future.</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/11/confessions-of-a-researcher-turned-engineer/';
digg_title = 'Confessions of a Researcher-turned-Engineer';
digg_bodytext = 'I wasn\'t always a software engineer...\n\nBefore I began developing software for a living, I used to be in chemical research &amp; development as a biochemist.  For some reason, I always found myself...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/education' rel='tag' target='_self'>education</a>, <a class='technorati-link' href='http://technorati.com/tag/einstein' rel='tag' target='_self'>einstein</a>, <a class='technorati-link' href='http://technorati.com/tag/feynman' rel='tag' target='_self'>feynman</a>, <a class='technorati-link' href='http://technorati.com/tag/newton' rel='tag' target='_self'>newton</a>, <a class='technorati-link' href='http://technorati.com/tag/problem+solving' rel='tag' target='_self'>problem solving</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/11/confessions-of-a-researcher-turned-engineer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Micro-Scrum: Agile Development for the 1-Man Army</title>
		<link>http://www.rkrishardy.com/2009/11/micro-scrum-agile-development-for-the-1-man-army/</link>
		<comments>http://www.rkrishardy.com/2009/11/micro-scrum-agile-development-for-the-1-man-army/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 15:32:18 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[microscrum]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[submerged solutions]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=206</guid>
		<description><![CDATA[I&#8217;ve found that Scrum, and Agile methods in general, are incredibly valuable in single-man &#8220;teams&#8221; if done properly.  In my experience though, there are some sticking points that need to be worked through with how you work with your clients and manage communications.  These will have a significant impact on your projects and how successful [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve found that <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">Scrum</a>, and Agile methods in general, are incredibly valuable in single-man &#8220;teams&#8221; if done properly.  In my experience though, there are some sticking points that need to be worked through with how you work with your clients and manage communications.  These will have a significant impact on your projects and how successful Scrum can be for you.</p>
<p>Before I get too far, let me give a quick overview of Scrum:</p>
<p><a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">Scrum development</a> is a business process that seeks to speed up development, decrease bugs, and increase the quality of products that are delivered.  It doesn&#8217;t have to be focused on software development, but that&#8217;s where it has the greatest pull right now, and the use that I am going to focus on.</p>
<p>Scrum, at least how we use it (mixed with <a href="http://www.extremeprogramming.org/">Extreme Programming</a>), uses several key components:</p>
<ul>
<li><strong>Iterative and Incremental Development</strong> &#8211; A product is released after each &#8220;Sprint&#8221; (typically 1-4 weeks).</li>
<li><strong>Test Driven Development</strong> &#8211; Automated unit tests are created to test the code, databases, and user interface.  For PHP, we use <a href="http://www.phpunit.de/">PHPUnit</a> and some in-house database testing tools.  For Java and integration endpoint API tests (regardless of language), we use <a href="http://junit.org/">JUnit</a>.</li>
<li><strong>One-Touch Build, Document &amp; Deploy</strong> &#8211; Automated build and deployment sequences are developed to reduce variables, problems and time.  <a href="http://ant.apache.org/">Ant</a> is a great tool for this.</li>
<li><strong>Continual Integration</strong> &#8211; The software is compiled and thoroughly tested nightly (and as needed) throughout the sprint.  <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> is useful for this, although you can also do something as easy as schedule a nightly cron job to execute an ant build file.</li>
<li><strong>Source Version Control</strong> &#8211; We use a central version control system (<a href="http://subversion.tigris.org/">Subversion</a>), to manage our code.  This allows me to work from multiple computers on the same code (such as when I&#8217;m traveling), and it also allows me to work with other developers when I&#8217;m partnering or outsourcing work.</li>
<li><strong>Product Backlog</strong> &#8211; Stories and feature sets that our customers want in the software that haven&#8217;t been completed yet.  Prioritized by business necessity.  I&#8217;ve heard good things about XPlanner and Pivotal Tracker, but we&#8217;re using simple index cards.</li>
<li><strong>Sprint Backlog</strong> &#8211; Stories &amp; feature sets that we will complete during a sprint.  Negotiated between us and our client.  Here, we feed the index card stories plus any information from our client into (<a href="http://www.dotproject.net/">dotProject</a>).  It&#8217;s not fancy, but it&#8217;s working for us today.</li>
<li><strong>Sprint Review</strong> &#8211; Lessons learned, what went well, and what didn&#8217;t go well.  Also, client&#8217;s likes/dislikes of the last product release are included.  We use a wiki for this, such as <a href="http://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a> or <a href="http://www.dokuwiki.org/dokuwiki">dokuWiki</a>.</li>
</ul>
<p>A typical Scrum team consists of:</p>
<ul>
<li><strong>Product owner</strong> &#8211; Your point-of-contact, who is responsible for the project.  Usually a Business Analyst or Project Manager.</li>
<li><strong>Users </strong>- The end-users, commonly the client&#8217;s staff.</li>
<li><strong>Stakeholders </strong>- Typically, these people are the client-side Project Managers and are the ones that are paying for the product.</li>
<li><strong>Scrum Master</strong> &#8211; The member of the consulting or development team that is responsible for delivery of the product.</li>
<li><strong>Team members</strong> &#8211; The actual development team</li>
</ul>
<p>Things get really interesting when you start looking at roles for <strong>Micro-Scrums</strong>.  When you are running a Micro-Scrum (such as if you are a lone consultant), the scrum master, team members and product owner are consolidated to a single person (you).  And when your client is a small business, your contact ends up filling multiple roles, so your actual Scrum roles look more like this:</p>
<ul>
<li>Scrum Master/Team/Product Owner (Consultant)</li>
<li>Stakeholder/User (President, CEO, or General Manager, etc.)</li>
<li>User (Client&#8217;s Staff)</li>
</ul>
<p>Consolidating those roles makes things both easier and harder at the same time.  It&#8217;s a bit easier because there are fewer people that you need to communicate with.  It also makes things more difficult because I, as the Product Owner, now don&#8217;t just need to make sure that the product is developed and delivered.  I also need to fill the roll of a Business Analyst, so I need to understand the business case, consolidate all the user&#8217;s needs and prioritize their importance.</p>
<p>I also have to avoid focusing on my own &#8220;pet features&#8221;, which developers can sometimes do, and instead have to focus on what will bring my client the greatest value in the shortest amount of time.</p>
<p>Now that I&#8217;ve mapped out the landscape and I&#8217;ve distilled all those roles down to 2-3 people, let&#8217;s get into some details&#8230;</p>
<p>Starting a small-business development project as a Micro-Scrum involves a lot of communication.  In my experience, clear communication will make the greatest impact on the success or failure of a project.  There needs to be a very clear understanding from both the client and the consultant on what is going to happen and how the product is going to be developed and delivered.  If you are on the same page and can negotiate the priorities, things work well.  When your client can&#8217;t understand the iterative mindset and he wants it all done right now without prioritizing, it&#8217;s a lot more difficult.</p>
<p>Here are some lessons that I&#8217;ve learned the hard way:</p>
<h2>Lessons Learned</h2>
<h3>In Micro-Scrum, the focus needs to be on quality, NOT on cost.</h3>
<p>All too often, small Agile studios like mine are compared to freelancers or overseas developers on sites like Elance and Guru.  The bottom line is that we cannot complete with their hourly cost, so we don&#8217;t even try.  What we focus on is Quality, above all else.  Unit-tested code, usability &amp; acceptance tests, code reviews, security audits, and active communication with our clients throughout the entire process.</p>
<p>It has worked well for us, and we&#8217;ve kept our current clients for nearly 2 years at full workload.  The past year has been our best year ever, despite the recession.</p>
<h3>Micro-Scrum development usually costs more, initially, than methodology-less development (aka cowboy coding).</h3>
<p>This goes along with the previous lesson.  The up-front costs are usually higher, however the bug rate is much lower and the documentation is better.  Also, the risk and time involved when refactoring and modifying the code is MUCH lower.  Software changes are anticipated, so we develop with that in mind.</p>
<h3>When working with a new client, deliver early and often.</h3>
<p>When working with non-tech-savy businesses, keep the sprints short.  We like to do 2-3 day sprints at the beginning to get them accustomed to the process.  Even if that means just delivering them a framework, some raw code, a library or sketches, it pays off dividends over the course of the project.  It opens up communication and makes sure that our direction matches their vision.</p>
<p>In addition, you get to run through a deployment dry run each time.  If you notice problems in the process, you can fix them early on rather than waiting until the end and being surprised that their server doesn&#8217;t support a dependency that you built into your software.  (It may sound silly, but it happens.)</p>
<p>The risk with this rapid iteration is that if you don&#8217;t explain why you&#8217;re doing this, your client may feel like you just don&#8217;t understand what they want.  And they&#8217;d be right.  The entire purpose of these short sprints at the beginning is to learn what your client wants by giving them something tangible that they can critique and use as a reference.  That tangible prototype can help you understand what they <em>really</em> want.</p>
<h3>Keep the up-front requirements gathering as short as possible.</h3>
<p>Feel free to post flame-comments below.  <img src='http://www.rkrishardy.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>What I&#8217;ve run into many times is that clients don&#8217;t always know how to explain their vision and be clear with what they want.  For about 1 full month back in 2008, I beat my head against a wall because one of my clients seemed to contradict their needs on a weekly basis with an accounting system I was developing for them.</p>
<p>I decided, out of desperation, to cut the requirements gathering short and push forward with what I had at that point.  Amazingly, I was pretty much right.  After Sprint 1, there were some modifications and changes, of course, but I was able to hit the target with only about 30% of the requirements being known up-front.  In addition, it forced us to build a very flexible architecture so that we could easily adapt to the unknowns and changes when we hit them.</p>
<p>What we do now is start with a very quick Sprint 0, maybe a week at most, and build the user stories, initial specifications and product backlog.  There will be lots of unknowns and changes later on.  Managing and working around those is just part of software development, especially when you&#8217;re working with companies that don&#8217;t understand software development.</p>
<h3>Failure is GOOD!</h3>
<p>This may seem counter-intuitive, but failure is a good thing.  It opens the lines of communication for constructive feedback.</p>
<p>Our goals with all our projects is to &#8220;fail fast.&#8221;  What that means is that we deliver a product in an early iteration (ideally Sprint 1) that our client will see lots of problems with.  Maybe the interface doesn&#8217;t meet their needs, or the work flow isn&#8217;t intuitive.  Whatever it is, I actually want my client to come back to me and say &#8220;I don&#8217;t like this.&#8221;  I then ask them &#8220;What specifically don&#8217;t you like?&#8221;  Or my favorite: &#8220;Let&#8217;s do a screencast and you can show me what&#8217;s happening.&#8221;</p>
<p>Take each failure as an opportunity to open the lines of communication even further.  Learn exactly what your client wants by watching him or her use your application.  Developing a Micro-Scrum team takes time, and building the relationship and trust through open communication is essential.</p>
<p>I&#8217;m sure you&#8217;ve noticed that communication is a common theme in Micro-Scrum.  Actually, it&#8217;s really the primary driver behind Scrum and any other Project Management methodology.  In order to deliver what a client wants, you need to have clear communication to truly understand their needs.  In my eyes, there is no other way to deliver a successful product.</p>
<p>Scrum formalizes the communications and works to get everyone, from the users and stakeholders to the developers, engaged in the success of the product.  When you are Micro-Scrumming, this communication becomes even more vital since there are fewer people involved and more responsibility on each person.  Harnessed wisely, it can lead to very successful projects that have good short-term value and outstanding long-term value.</p>
<p>If you&#8217;re in the Columbus, OH area and want to learn more about Agile Software Development, I highly suggest going to the <a href="http://www.cohaa.org/content/">Columbus Ohio Agile Alliance (COHAA)</a> meetings and getting involved in <a href="http://www.meetup.com/techlifecolumbus/">TechLife Columbus</a> meetup group.</p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/11/micro-scrum-agile-development-for-the-1-man-army/';
digg_title = 'Micro-Scrum: Agile Development for the 1-Man Army';
digg_bodytext = 'I\'ve found that &lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_%28development%29&quot;&gt;Scrum&lt;/a&gt;, and Agile methods in general, are incredibly valuable in single-man &quot;teams&quot; if done properly.  In my experien...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/agile' rel='tag' target='_self'>agile</a>, <a class='technorati-link' href='http://technorati.com/tag/junit' rel='tag' target='_self'>junit</a>, <a class='technorati-link' href='http://technorati.com/tag/microscrum' rel='tag' target='_self'>microscrum</a>, <a class='technorati-link' href='http://technorati.com/tag/phpunit' rel='tag' target='_self'>phpunit</a>, <a class='technorati-link' href='http://technorati.com/tag/scrum' rel='tag' target='_self'>scrum</a>, <a class='technorati-link' href='http://technorati.com/tag/submerged+solutions' rel='tag' target='_self'>submerged solutions</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/11/micro-scrum-agile-development-for-the-1-man-army/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Bootstrapping a Business</title>
		<link>http://www.rkrishardy.com/2009/11/the-art-of-bootstrapping-a-business/</link>
		<comments>http://www.rkrishardy.com/2009/11/the-art-of-bootstrapping-a-business/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 22:14:51 +0000</pubDate>
		<dc:creator>Kris</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[bootstrapping]]></category>
		<category><![CDATA[business development]]></category>
		<category><![CDATA[columbus ohio]]></category>

		<guid isPermaLink="false">http://www.rkrishardy.com/?p=204</guid>
		<description><![CDATA[I was sent this great article that Guy Kawasaki wrote way back in 2006 about bootstrapping that I just have to share.
At it&#8217;s essence, Bootstrappers are business owners that start and grow their business without any outside funding.  That means no angel investors and no VC deals.  You don&#8217;t hear about it much [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.guykawasaki.com/2006/01/the_art_of_boot.html#axzz0X9fPlbLZ">I was sent this great article that Guy Kawasaki wrote way back in 2006 about bootstrapping</a> that I just have to share.</p>
<p>At it&#8217;s essence, Bootstrappers are business owners that start and grow their business without any outside funding.  That means no angel investors and no VC deals.  You don&#8217;t hear about it much because it&#8217;s not glamorous, but it&#8217;s the way that most businesses are started.</p>
<p>I am a hard-core believer in bootstrapping, and I know for a fact that I have learned a lot of lessons the hard way that I wouldn&#8217;t have learned as easily if I had not been a bootstrapper.  (Mo&#8217; money, mo&#8217; problems anyone?)</p>
<p>Especially when you start your first business (and if you&#8217;re like me, your second as well), you WILL make mistakes, and lot of them.  I still make mistakes, but I like to think that my hard-fought experience has saved me several times.  Sometimes I can get out of the way in time, and sometimes I still get run over.  But I&#8217;ve become better and better at keeping the damages small and keeping the business agile.</p>
<p>If you&#8217;re in the Columbus, OH area, come out to a meeting of the <a href="http://www.bootstrappingassociation.org">International Bootstrapping Association</a> and say hi!  Our next meeting is Dec 9th, 2009 at TechColumbus hear Ohio State University.  RSVP at the link below:</p>
<p><a href="http://www.bootstrappingassociation.org">http://www.bootstrappingassociation.org</a></p>
<div class="diggthis_container">
<script type="text/javascript">
digg_url = 'http://www.rkrishardy.com/2009/11/the-art-of-bootstrapping-a-business/';
digg_title = 'The Art of Bootstrapping a Business';
digg_bodytext = '&lt;a href=&quot;http://blog.guykawasaki.com/2006/01/the_art_of_boot.html#axzz0X9fPlbLZ&quot;&gt;I was sent this great article that Guy Kawasaki wrote way back in 2006 about bootstrapping&lt;/a&gt; that I just have to shar...';
digg_skin = 'compact';
digg_window = 'new';
</script>
<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script>
</div> 
<!-- start wp-tags-to-technorati 1.01 -->

<p class='technorati-tags'>Technorati Tags: <a class='technorati-link' href='http://technorati.com/tag/bootstrapping' rel='tag' target='_self'>bootstrapping</a>, <a class='technorati-link' href='http://technorati.com/tag/business+development' rel='tag' target='_self'>business development</a>, <a class='technorati-link' href='http://technorati.com/tag/columbus+ohio' rel='tag' target='_self'>columbus ohio</a></p>

<!-- end wp-tags-to-technorati -->
]]></content:encoded>
			<wfw:commentRss>http://www.rkrishardy.com/2009/11/the-art-of-bootstrapping-a-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
