<?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>Learning, Thinking and Coding...</title>
	<atom:link href="http://brianrepko.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://brianrepko.wordpress.com</link>
	<description>Brian&#039;s thoughts on agile, architecture and software</description>
	<lastBuildDate>Wed, 22 Sep 2010 12:31:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='brianrepko.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/0d692fde4041e7adf7ffb7c2a0d6e23a?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Learning, Thinking and Coding...</title>
		<link>http://brianrepko.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://brianrepko.wordpress.com/osd.xml" title="Learning, Thinking and Coding..." />
	<atom:link rel='hub' href='http://brianrepko.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Slides from Practical Agility &#8211; JBehave and FIT &#8211; Good/Bad/Ugly</title>
		<link>http://brianrepko.wordpress.com/2010/09/22/slides-from-practical-agility-jbehave-and-fit-goodbadugly/</link>
		<comments>http://brianrepko.wordpress.com/2010/09/22/slides-from-practical-agility-jbehave-and-fit-goodbadugly/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 12:31:47 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=93</guid>
		<description><![CDATA[I presented a &#8220;Lightning Talk&#8221; (6 minutes) at the last Practical Agility meeting on &#8220;JBehave and FIT &#8211; the Good, the Bad and the Ugly&#8221;. For the talk everything was on NEON cards (neon-green, neon-yellow and neon-red! &#8211; its all I could find at Walgreens) and before throwing them out thought that I would put [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=93&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I presented a &#8220;Lightning Talk&#8221; (6 minutes) at the last Practical Agility meeting on &#8220;JBehave and FIT &#8211; the Good, the Bad and the Ugly&#8221;.  For the talk everything was on NEON cards (neon-green, neon-yellow and neon-red! &#8211; its all I could find at Walgreens) and before throwing them out thought that I would put them into powerpoint (minus the neon) and share.  Slides are up on <a href="http://www.slideshare.net/brianrepko/fit-and-j-behave">SlideShare</a> &#8211; but you might want to download as all the notes are in the notes section. Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=93&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/09/22/slides-from-practical-agility-jbehave-and-fit-goodbadugly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>
	</item>
		<item>
		<title>JBehave 3.0 released!!</title>
		<link>http://brianrepko.wordpress.com/2010/09/02/jbehave-3-0-released/</link>
		<comments>http://brianrepko.wordpress.com/2010/09/02/jbehave-3-0-released/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 01:52:57 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=86</guid>
		<description><![CDATA[JBehave 3.0 was released yesterday (finally!!). I&#8217;m thrilled to have donated the Multi-tennant Spring Security example (which has been updated to JBehave 3). That example is now part of the many examples that are included in JBehave. Looking to update the presentation on my website to explain some of the new features that make up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=86&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://brianrepko.files.wordpress.com/2010/09/jbehave-logo.png"><img src="http://brianrepko.files.wordpress.com/2010/09/jbehave-logo.png?w=300&#038;h=120" alt="jbehave logo" title="jbehave-logo" width="300" height="120" class="alignleft size-medium wp-image-87" /></a>JBehave 3.0 was <a href="http://jbehave.org/2010/08/31/jbehave-3-0-released/">released</a> yesterday (finally!!).  I&#8217;m thrilled to have donated the Multi-tennant Spring Security example (which has been updated to JBehave 3).  That example is now part of the many examples that are included in JBehave.  Looking to update the presentation on my website to explain some of the new features that make up JBehave 3.0.  Congrats to Mauro and Paul on all their hard work!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=86&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/09/02/jbehave-3-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>

		<media:content url="http://brianrepko.files.wordpress.com/2010/09/jbehave-logo.png?w=300" medium="image">
			<media:title type="html">jbehave-logo</media:title>
		</media:content>
	</item>
		<item>
		<title>Extending Jasypt &#8211; AES and Blowfish support</title>
		<link>http://brianrepko.wordpress.com/2010/07/21/extending-jasypt-aes-and-blowfish-support/</link>
		<comments>http://brianrepko.wordpress.com/2010/07/21/extending-jasypt-aes-and-blowfish-support/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 22:56:34 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=77</guid>
		<description><![CDATA[I recently had to code Java / Perl interoperable encryption &#8211; in Perl it was using the Crypt::CBC and Crypt::Blowfish modules. The perl code was meant to be as simple as possible: $cipher = Crypt::CBC-&#62;new( -cipher =&#62; 'Blowfish', -key =&#62; 'password' ); $ciphertext = $cipher-&#62;encrypt_hex("This data is super secret hush hush"); The key is really [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=77&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently had to code Java / Perl interoperable encryption &#8211; in Perl it was using the Crypt::CBC and Crypt::Blowfish modules. The perl code was meant to be as simple as possible:<br />
<code><br />
$cipher = Crypt::CBC-&gt;new( -cipher =&gt; 'Blowfish', -key =&gt; 'password' );<br />
$ciphertext = $cipher-&gt;encrypt_hex("This data is super secret hush hush");<br />
</code></p>
<p>The key is really a passphrase that is then generated into a key and IV for use with the underlying CBC/cipher.  These modules are by default compatible with OpenSSL.  I thought that since this is password-based encryption, that I could use Jasypt, one of my favorite libraries.  Unfortunately, Jasypt only supports the PBE* cipher algorithms and none of them are the OpenSSL standards.  So then I thought that I could at least get Jasypt to support Blowfish.  No luck&#8230;the algorithm is just hard-coded to PBE-based encryption.  Even the IV work would be impossible.</p>
<p>So for the project, I created my own mini-framework that includes converters (hex/base64 string to byte[] or String to byte[] based on a character-set) and ciphers defined via generics with the ability to create a string-to-string &#8220;encryptor&#8221; by combining a String-to-byte[] (utf-8) converter with a byte[]-to-byte[] cipher with a byte[]-to-String (hex) converter.  This is sort of what Jasypt does but its not very pluggable in that fashion.  </p>
<p>Then to write the byte[]-to-byte[] cipher, I started with a generalized algorithm that works for both the PBE* algorithms but also for AES and Blowfish with the key and IV generation handled in the process.  Plug in BouncyCastle&#8217;s OpenSSLPBEParametersGenerator for key/IV generation and write my own decorator for dealing with sharing the salt as &#8220;Salted__XXXXXXXX&#8221; in front of the ciphertext and voila! perl-java encryption interoperability based on passwords and random salts!!</p>
<p>That project has ended and I&#8217;m now in-between gigs so I worked that code into Jasypt &#8211; just added a feature request (with a patch) to Jasypt.  Not specifically the perl stuff but the generalized algorithm.  That allows users to finally extend Jasypt &#8211; still for password-based encryption but not limited to the PBE* algorithms.  Support is finally in there for AES and Blowfish with key and IV generation based on PBKDF2 or whatever else you want to add.  Changes to Jasypt to support the configuration of the whole &#8220;pipeline&#8221; is not in there &#8211; that would require some serious changes to Jasypt.</p>
<p>As for the algorithms &#8211; they look like this:</p>
<p>For encryption,<br />
<code><br />
EncryptionData data = buildEncryptionData();<br />
data.setMethodInput(message);<br />
dataProcessor.preProcess(Cipher.ENCRYPT_MODE, data);<br />
SecretKey key = keyGenerator.generateSecretKey(data);<br />
AlgorithmParameterSpec parameterSpec = paramGenerator.generateParameterSpec(data);<br />
synchronized (encryptCipher) {<br />
    encryptCipher.init(Cipher.ENCRYPT_MODE, key, parameterSpec);<br />
    data.setCipherOutput(encryptCipher.doFinal(data.getCipherInput()));<br />
}<br />
dataProcessor.postProcess(Cipher.ENCRYPT_MODE, data);<br />
return data.getMethodOutput();<br />
</code></p>
<p>For decryption,<br />
<code><br />
EncryptionData data = buildEncryptionData();<br />
data.setMethodInput(encryptedMessage);<br />
dataProcessor.preProcess(Cipher.DECRYPT_MODE, data);<br />
SecretKey key = keyGenerator.generateSecretKey(data);<br />
AlgorithmParameterSpec parameterSpec = paramGenerator.generateParameterSpec(data);<br />
synchronized (decryptCipher) {<br />
    this.decryptCipher.init(Cipher.DECRYPT_MODE, key, parameterSpec);<br />
    data.setCipherOutput(decryptCipher.doFinal(data.getCipherInput()));<br />
}<br />
dataProcessor.postProcess(Cipher.DECRYPT_MODE, data);<br />
return data.getMethodOutput();<br />
</code></p>
<p>And all the real work is done in the SecretKeyGenerator (which actually generates more than just the key &#8211; it just returns the key), the AlgorithmParamsGenerator and the EncryptionDataProcessor &#8211; all of which are just interfaces.  All the transient data for the method is kept in the EncryptionData class or subclass.  So that is the patch just submitted.</p>
<p>And perl interoperability could be added with an OpenSSLSecretKeyGenerator and an OpenSSLEncryptionDataProcessor to handle the &#8220;Salted__XXXXXXX&#8221; format &#8211; the rest is all in there (once the patch is approved, committed and released).  The OpenSSLSecretKeyGenerator would work like the PBKDF2SecretKeyGenerator in that it would produce the key and IV based on a password and fixed or random salt.  Its just that OpenSSL does a funky key and IV generation mechanism that I&#8217;m not sure is in the default JCE providers.  And the OpenSSLEncryptionDataProcessor is just an extension of the existing one with the hardcoded &#8220;Salted__&#8221; thrown in for good measure.</p>
<p>Here&#8217;s hoping that gets added by the next project.  Jasypt team &#8211; I&#8217;m more than willing to help!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=77&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/07/21/extending-jasypt-aes-and-blowfish-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>
	</item>
		<item>
		<title>JBehave presentation for Twin Cities Java Users Group</title>
		<link>http://brianrepko.wordpress.com/2010/04/12/jbehave-presentation-for-twin-cities-java-users-group/</link>
		<comments>http://brianrepko.wordpress.com/2010/04/12/jbehave-presentation-for-twin-cities-java-users-group/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 19:13:08 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=72</guid>
		<description><![CDATA[Finally finished the JBehave presentation for tonight&#8217;s Twin Cities Java Users Group. You can find the PPT and source code at the LearnThinkCode website. Any and all feedback is welcome. In the end, I really think that this is the year that Agile testing via executable requirements will take off and I do think that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=72&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally finished the JBehave presentation for tonight&#8217;s Twin Cities Java Users Group.  You can find the PPT and source code at the LearnThinkCode <a href="http://www.learnthinkcode.com">website</a>.  Any and all feedback is welcome.</p>
<p>In the end, I really think that this is the year that Agile testing via executable requirements will take off and I do think that JBehave can be a part of that.  There are some key things to work out however (library bundling issues, integration with JUnit for Spring) that need to be looked at before its really ready for prime time.  And getting the Pico Ajax Email / Selenium example working was painful.  Please don&#8217;t release versioned software that depends on snapshot releases of other code!</p>
<p>So, it would be useable on projects if you are willing to spend some time on getting your base class / infrastructure stuff setup.  Personally, I like it more than FIT/Fitnesse.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=72&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/04/12/jbehave-presentation-for-twin-cities-java-users-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>
	</item>
		<item>
		<title>extreme distributed scrum &#8211; daily standup</title>
		<link>http://brianrepko.wordpress.com/2010/02/26/extreme-distributed-scrum-daily-standup/</link>
		<comments>http://brianrepko.wordpress.com/2010/02/26/extreme-distributed-scrum-daily-standup/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 20:21:16 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=64</guid>
		<description><![CDATA[I&#8217;ve worked on Scrum teams where 1/2 the team is in one location and 1/2 in another (both offshore and onshore) and every now and then we would use an IM conference in order to have a &#8220;standup&#8221; (except that we are sitting and on IM). We tried video and phone conferencing as well but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=64&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve worked on Scrum teams where 1/2 the team is in one location and 1/2 in another (both offshore and onshore) and every now and then we would use an IM conference in order to have a &#8220;standup&#8221; (except that we are sitting and on IM).  We tried video and phone conferencing as well but given the lag in the network as well as lack of  equipment and network availability, IM seemed to just work better. IM allowed for give-and-take (with some lag <em>but a lag we were familiar with</em>) and was always available. In addition, IM allowed the conversation to be sent via email for later reading and sharing (to the 1/2 of the team that wasn&#8217;t in yet).  Since then, I&#8217;ve wondered about what technology tools one would need if the team was completely separated (think rock stars all working from home).</p>
<p>If all the team members were located in their own location &#8211; how would I set this up?  The kicker here is the mess of timezones that might be in the mix. Obviously, I&#8217;d have a wiki and perhaps an agile PM (kanban/scrum) web app running somewhere that we could all access in our timezone.  When folks are distributed and have an overlapping time, then can use VNC (or other free solutions like that) to &#8220;pair-up&#8221; as needed.  Likewise, VoIP/IM conferences or just VoIP/IM for issues and/or questions.</p>
<p>But how to do &#8220;standups&#8221; when there isn&#8217;t a time that everyone can standup?  How to let someone know you are stuck on something and how to hand off a potential solution to someone that will get it hours later.  My insight was that a team could host an <strong>internal blog/Twitter</strong> to share what they did yesterday, what they are doing today and what issues are blocking them.  Status updates (&#8220;working on X&#8221; or &#8220;can&#8217;t figure out Y&#8221;) can then really be done at anytime and those folks that are online can help step in.  Some IM systems have a status but I&#8217;m not sure that that is very visible.  <strong>Add an RSS feed on top</strong> of the teams blogs (like twitter) a<a href="http://brianrepko.files.wordpress.com/2010/02/twitterrssfeed1-main_full.jpg"><img src="http://brianrepko.files.wordpress.com/2010/02/twitterrssfeed1-main_full.jpg?w=300&#038;h=125" alt="" title="TwitterRSSFeed1-main_Full" width="300" height="125" class="alignleft size-medium wp-image-69" /></a>nd you&#8217;ll start to see team collaboration.  Start your day by reading all the updates from folks since you were last on. The whole project life could be read if you really wanted too &#8211; like emailing the IM discussion.  Still doesn&#8217;t help with the I have an issue with X and what a potential solution might be (hours later).  I could see the wiki or issue tracking system kind of work in that space.  In this scenario, the world of &#8220;standup&#8221; starts to look like &#8220;status&#8221; &#8211; but that might be ok just given the realities of multiple people in multiple timezones. I thought that it would be an interesting way to run a project without standups.</p>
<p>Iteration and release planning would be difficult in this situation &#8211; that might just have to be done together.</p>
<p>I&#8217;ve not had this situation &#8211; have you?  What worked or didn&#8217;t work?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=64&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/02/26/extreme-distributed-scrum-daily-standup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>

		<media:content url="http://brianrepko.files.wordpress.com/2010/02/twitterrssfeed1-main_full.jpg?w=300" medium="image">
			<media:title type="html">TwitterRSSFeed1-main_Full</media:title>
		</media:content>
	</item>
		<item>
		<title>Making Ant 1.8 work like Maven &#8211; not so much</title>
		<link>http://brianrepko.wordpress.com/2010/02/19/making-ant-1-8-work-like-maven-not-so-much/</link>
		<comments>http://brianrepko.wordpress.com/2010/02/19/making-ant-1-8-work-like-maven-not-so-much/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 19:55:16 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=59</guid>
		<description><![CDATA[I&#8217;ve done Ant build files in the past that ended up working like Maven2. Mostly since it was a non-Maven shop but also because it was a way to get folks into Maven-think but by using Ant. Now, Ant 1.8 has been released and with it some new features that could potentially make it possible [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=59&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve done Ant build files in the past that ended up working like Maven2.  Mostly since it was a non-Maven shop but also because it was a way to get folks into Maven-think but by using Ant.</p>
<p>Now, <a href="http://ant.apache.org/">Ant 1.8</a> has been released and with it some new features that could potentially make it possible to have very modular Ant builds that would be even better than Maven2.  One of the main concepts within Maven2 is the various <a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html">lifecycles</a> (clean, build/default and site) and that build tasks from plugins are bound to various parts of the lifecycle.  Ant 1.8 introduced the notion of <a href="http://ant.apache.org/manual/targets.html">extension-points and extensionOf</a> as well as <a href="http://ant.apache.org/manual/CoreTasks/import.html">imports</a> and local properties &#8211; these could all be used to both create plugins (macrodefs) and our own lifecycles (sets of extension-points) and then bind them all up together in a build.xml and just import what you need &#8211; potentially from an http URL.</p>
<p>Well, that was the thought&#8230;</p>
<p>Turns out that imports are processed after the build.xml is parsed.  That&#8217;s all well and good, but when an extensionOf attribute is parsed, Ant looks for the target(s) named in the extensionOf value in order to add the current target as a dependency.  That requires that the target has to exist in the project and if that target is part of an import (as the documentation seems to suggest), then the target doesn&#8217;t exist (yet) at the time of parsing and you get a nice error message to that effect.</p>
<p>I think that this is a design flaw in how extension-point / extensionOf is supposed to work and contradicts the example cited in the documentation &#8211; which doesn&#8217;t work.</p>
<p>Its too bad because with these features, I could define my own lifecycles or even change/modify the existing ones from Maven2 to do things related to database SQL modules (create the database from all the SQL scripts and some data files) or be able to mix the SQL and java files together in the same module and add phases to the lifecycle related to database setup.  This has always been something that I have to hack up the pom for anyway &#8211; which is part of why I like going back to Ant &#8211; I can change it easier when I need to.</p>
<p>Work-arounds?  Change the ProjectHelper/TargetHelper to deal with extensionOf attributes after the import stack is popped (and all the targets are resolved) or import the extensionOfs (the bindings or which macros get called for each step) after the extension-points are imported.  I&#8217;m not a fan of the latter as I really think that the bindings are the build &#8211; execute these steps for these lifecycle stages &#8211; but if my build is just a bunch of imports, that&#8217;s not the worst of it.  Or screw the use of extension-points/extensionOf and just use imports with empty targets (which is kind of what extension-points are &#8211; except that I could then create a target that gets bound to multiple extension-points with extensionOf=&#8221;target1,target2&#8243;).</p>
<p>It does sadden me that the example cited doesn&#8217;t even work however.  If I get this working, I&#8217;ll post the example.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=59&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/02/19/making-ant-1-8-work-like-maven-not-so-much/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>
	</item>
		<item>
		<title>Scrum and Kanban together</title>
		<link>http://brianrepko.wordpress.com/2010/01/27/scrum-and-kanban-together/</link>
		<comments>http://brianrepko.wordpress.com/2010/01/27/scrum-and-kanban-together/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 17:21:40 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=36</guid>
		<description><![CDATA[One of my favorite links is Henrik Kniberg&#8217;s &#8220;mini-book&#8221; on Kanban and Scrum and how they work (and how they are similar and different).&#160; Given that description of Kanban and my thoughts on story prep and story release work, I would really love to try a Kanban board for story prep and release work with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=36&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of my favorite links is Henrik Kniberg&#8217;s &#8220;<a href="http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf" target="_blank">mini-book</a>&#8221; on Kanban and Scrum and how they work (and how they are similar and different).&nbsp; Given that  description of Kanban and <a href="http://brianrepko.wordpress.com/2010/01/25/when-is-a-story-prepared/" target="_blank">my thoughts on story prep and story release work</a>, I  would really love to try a Kanban board for story prep and release work  with a Scrum board for implemenation work.&nbsp; Definately for prep and implementation &#8211; release probably depends how that process looks &#8211; perhaps one release board for a program (multiple projects but one solution).</p>
<p><a href="http://brianrepko.files.wordpress.com/2010/01/blog-kanban-scrum.jpg"><img class="aligncenter size-full  wp-image-51" title="blog-kanban-scrum" src="http://brianrepko.files.wordpress.com/2010/01/blog-kanban-scrum.jpg?w=529&#038;h=161" alt="" height="161" width="529"></a></p>
<p>Backlog grooming would actively work the story prep board.&nbsp; The team could see what stories are getting ready for planning as well as a release team (or management team) seeing what is getting ready for release to production.&nbsp; I think that it would actually engage those team members that are at the daily standup but are not developers or testers &#8211; they can point to what they are working on &#8211; its just on the story prep kanban board.&nbsp; I think that it could make for a good information radiator for a wider &#8220;team&#8221;.&nbsp; </p>
<p>The other way to look at this, from a metrics standpoint, is to see that the whole Scrum board is just one column of a larger Kanban board and that you could measure and reduce the throughput time of a story from backlog to released to production on that larger Kanban board.</p>
<p>Has anyone ever done anything like this?&nbsp; Did it work? Things to improve about it?</p>
<p>Putting this post together, I just noticed Henrik&#8217;s <a href="http://blog.crisp.se/henrikkniberg/2009/12/21/1261410240000.html" target="_blank">Kanban and Scrum &#8211; Making the Most of Both</a> &#8211; something new to read!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=36&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/01/27/scrum-and-kanban-together/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>

		<media:content url="http://brianrepko.files.wordpress.com/2010/01/blog-kanban-scrum.jpg" medium="image">
			<media:title type="html">blog-kanban-scrum</media:title>
		</media:content>
	</item>
		<item>
		<title>Connecting Agile Teams &#8211; one pink post-it at a time</title>
		<link>http://brianrepko.wordpress.com/2010/01/27/connecting-agile-teams-one-pink-post-it-at-a-time/</link>
		<comments>http://brianrepko.wordpress.com/2010/01/27/connecting-agile-teams-one-pink-post-it-at-a-time/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 17:03:22 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=40</guid>
		<description><![CDATA[I&#8217;ve used color coded cards on Scrum boards &#8211; green for user story, blue for system story, yellow task cards for design or review work, blue task card for &#8220;technical architecture work&#8221;, etc. &#8211; lots of variations.  Sometimes I suggest it, sometimes I don&#8217;t.  Just part of the box of tools.  The one thing that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=40&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://brianrepko.files.wordpress.com/2010/01/pink-post-it.jpg"><img class="alignleft size-full wp-image-42" title="pink-post-it" src="http://brianrepko.files.wordpress.com/2010/01/pink-post-it.jpg?w=150&#038;h=150" alt="" width="150" height="150" /></a>I&#8217;ve used color coded cards on Scrum boards &#8211; green for user story, blue for system story, yellow task cards for design or review work, blue task card for &#8220;technical architecture work&#8221;, etc. &#8211; lots of variations.  Sometimes I suggest it, sometimes I don&#8217;t.  Just part of the box of tools.  The one thing that I&#8217;ve noticed with this however was the use of pink cards and post-its and how they can be used to connect agile teams and help build an agile enterprise.</p>
<p>My original use of pink cards was for a Scrum board for developers to fix a critical or blocker bug.  This was for a team that was just developers &#8211; the testers were a completely different team.  And the pink card was basically a request for the development team to help un-block the testing team (and dev team would estimate it and decide if they would need to take something else off the board).</p>
<p>I&#8217;ve also used pink post-its on Scrum boards to report a blocking issue on a task &#8211; just as a way to remind people working on the issue that it is important and to bring it up in standup until the issue is resolved.</p>
<p>On another team that I worked on we sort-of had a Kanban board for release or operations tasks related to the program (multiple projects &#8211; one operations team) and if the implementation team had a request to make of them (e.g. database to setup), then we would create a pink card for their board.  Basically a pink card is a Please Do This ASAP request.  Maybe pink should stand for Please Implement Now, Kind (Sir/Madam).</p>
<p>What I realized is that one way to connect these teams, with their own boards and tasks and stories is that <strong>the issue (post-it) is tied to request(s) to resolve the issue (cards) and you could track and connect those issues/tasks that way</strong>. So basically, for that first scenario (separate dev and test teams), if the test team had had a board, their pink post-it (the blocking issue) was tied to the pink card for the development team (the issue resolvers).  And a board with a lot of pink is a conversation waiting to happen.</p>
<p>Simple and easy way to handle and track issues that need to get done now that I think helps build an agile enterprise.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=40&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/01/27/connecting-agile-teams-one-pink-post-it-at-a-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>

		<media:content url="http://brianrepko.files.wordpress.com/2010/01/pink-post-it.jpg" medium="image">
			<media:title type="html">pink-post-it</media:title>
		</media:content>
	</item>
		<item>
		<title>When is a story prepared?</title>
		<link>http://brianrepko.wordpress.com/2010/01/25/when-is-a-story-prepared/</link>
		<comments>http://brianrepko.wordpress.com/2010/01/25/when-is-a-story-prepared/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 21:27:05 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=26</guid>
		<description><![CDATA[This is another drawing that I use alot while coaching agile projects and actually is part of multiple discussions around agile methods.  Most agile methods talk about stories being created by the customer and put on a backlog.  For some iteration, at iteration planning, the story gets explained to developers and testers.  They work on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=26&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://brianrepko.files.wordpress.com/2010/01/blog-circles.jpg"><img class="alignright size-full wp-image-27" title="blog-circles" src="http://brianrepko.files.wordpress.com/2010/01/blog-circles.jpg?w=480&#038;h=480" alt="" width="480" height="480" /></a>This is another drawing that I use alot while coaching agile projects and actually is part of multiple discussions around agile methods.  Most agile methods talk about stories being created by the customer and put on a backlog.  For some iteration, at iteration planning, the story gets explained to developers and testers.  They work on the story until it is complete.  And we have lots of conversations, as agile coaches and teams, about &#8220;when is a story complete&#8221;.</p>
<p>This misses alot of the work that needs to be done in order to make teams effective. I like to have regular backlog grooming meetings with part of the team and ask the question &#8211; <em><strong>is this story prepared?</strong></em>.  <em><strong>What is needed in order to bring this story to iteration planning? </strong></em> That needed work might involve QA (quality assurance) for acceptance tests or functional tests.  That might involve UX (user experience) for wireframes or drawings.  That might involve some TA (technical architecture) work or IA (information architecture, or domain modeling) work depending on the story.  It might require a BA to work out the business value of this story or how to break it up into what needs to done now versus later (breaking up stories into smaller, potentially optional pieces).  Its only when a story is prepared that it should be brought to iteration planning.</p>
<p>I also use this picture to help explain why some work is &#8220;on the board&#8221; for the iteration (meaning we are tracking velocity and burndown charts &#8211; its the developer/tester circle) vs work that needs to get done but we aren&#8217;t measuring velocity for it.  The first is working towards completing the story.  The latter is working towards getting the story prepared.</p>
<p>It also helps explain the roles of the non-customer, non-developer and non-tester folks&#8230;though I&#8217;m pretty careful to explain that that 2nd circle is optional work (story by story) and that that work can be done by anyone with those skills.  Its really about what would make the communication of this story effective and doing that in as lightweight of a fashion as you need.</p>
<p>The last part of this drawing is that the story doesn&#8217;t stop because development is done.  Its really done when its deployed (some would say deployed to production) and supported.  This means that the story needs to be shared with operations and support teams.  I&#8217;ve seen this done as part of a release process and actually made it the responsibility of the whole team to figure how to to communicate the stories that are being released.  Really each circle needs to figure out when its done with the story and how to communicate to the next circle (and then there are feedback loops!).</p>
<p>Its really about effective communication and community.  I didn&#8217;t get this last part until attending a session with <a href="http://www.devjam.com/presentations/" target="_blank">David Hussman</a> who talks about building community around a story.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=26&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/01/25/when-is-a-story-prepared/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>

		<media:content url="http://brianrepko.files.wordpress.com/2010/01/blog-circles.jpg" medium="image">
			<media:title type="html">blog-circles</media:title>
		</media:content>
	</item>
		<item>
		<title>Discovering software architecture</title>
		<link>http://brianrepko.wordpress.com/2010/01/25/discovering-software-architecture/</link>
		<comments>http://brianrepko.wordpress.com/2010/01/25/discovering-software-architecture/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 20:41:25 +0000</pubDate>
		<dc:creator>Brian Repko</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://brianrepko.wordpress.com/?p=20</guid>
		<description><![CDATA[I draw this picture alot on projects that I&#8217;ve been on so I figured that I should put it up here on the blog.  The idea behind it is that on agile projects, one discovers the architectural requirements in conjunction with discovering the functional requirements.  You learn a bit about the functionality, you make some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=20&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://brianrepko.files.wordpress.com/2010/01/blog-arch-func.jpg"><img class="alignleft size-full wp-image-21" title="blog-arch-func" src="http://brianrepko.files.wordpress.com/2010/01/blog-arch-func.jpg?w=256&#038;h=217" alt="" width="256" height="217" /></a>I draw this picture alot on projects that I&#8217;ve been on so I figured that I should put it up here on the blog.  The idea behind it is that on agile projects, <strong>one discovers the architectural requirements in conjunction with discovering the functional requirements</strong>.  You learn a bit about the functionality, you make some choices on architecture, you learn a bit more about functionality, you make some more choices about architecture, etc. until the full solution is complete.</p>
<p>There is a skill to chosing which architectural requirements need to be addressed when.  On one project that I was on, I put off deciding on how to handle exceptions through the various layers of theh architecture.  We eventually tackled the issue (with ingenious input from the team) but by then we had lots of code to change and refactor.  That lesson painfully showed the cost of &#8220;technical debt&#8221; &#8211; we borrowed that time from the future of the project and had to pay it back with interest.  Lesson learned &#8211; I would not put that concern/requirement off that late again.</p>
<p>I think that html style guides (what css classes are we using and for what purpose) on web-based projects are another common concern that gets put off and the price is paid later with interest.  I&#8217;ve done whole iterations of nothing but styling.</p>
<p>The trick is to make those architectural choices at the <strong>last responsible moment</strong> &#8211; but you never really know when that is.  Its like knowing how to play an instrument &#8211; practice, practice, practice.</p>
<p>Are there other that you like to see addressed earlier than when you&#8217;ve actually done them?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/brianrepko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/brianrepko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/brianrepko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/brianrepko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/brianrepko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/brianrepko.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/brianrepko.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/brianrepko.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=brianrepko.wordpress.com&amp;blog=5861420&amp;post=20&amp;subd=brianrepko&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://brianrepko.wordpress.com/2010/01/25/discovering-software-architecture/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/567e89a323811f4c089c8b075b391467?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">brianrepko</media:title>
		</media:content>

		<media:content url="http://brianrepko.files.wordpress.com/2010/01/blog-arch-func.jpg" medium="image">
			<media:title type="html">blog-arch-func</media:title>
		</media:content>
	</item>
	</channel>
</rss>
