<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>jbrains</title>
	
	<link>http://www.jbrains.ca</link>
	<description>Do you feel stuck? When most people want to improve, they try doing more, and before long, even the smallest tasks drag on forever. Do you remember when you could just get things done? I can help you recapture those days.</description>
	<lastBuildDate>Thu, 23 May 2013 18:40:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/jbrains" /><feedburner:info uri="jbrains" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>jbrains</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Recommended Event: Agile Coach Camp, Toronto</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/6WTxYdI-SLQ/recommended-event-agile-coach-camp-toronto</link>
		<comments>http://www.jbrains.ca/permalink/recommended-event-agile-coach-camp-toronto#comments</comments>
		<pubDate>Thu, 23 May 2013 18:40:18 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1318</guid>
		<description><![CDATA[If you can travel to Toronto for June 14-16, 2013, then I recommend that you check out Agile Coach Camp. If you&#8217;re a coach, then you&#8217;ll refine your craft with others. If you&#8217;re not, then you&#8217;ll have your pick of enthusiastic and experienced coaches whose brains you can pick at will. Unfortunately, I won&#8217;t attend,... <a href="http://www.jbrains.ca/permalink/recommended-event-agile-coach-camp-toronto">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>If you can travel to Toronto for June 14-16, 2013, then I recommend that you check out Agile Coach Camp. If you&#8217;re a coach, then you&#8217;ll refine your craft with others. If you&#8217;re not, then you&#8217;ll have your pick of enthusiastic and experienced coaches whose brains you can pick at will. Unfortunately, I won&#8217;t attend, but I believe in the event and wanted to make sure that you knew about it.</p>

<p>Read more about the event at <a href="http://agilecoachcampcanada.wordpress.com">http://agilecoachcampcanada.wordpress.com</a> and register today!</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/6WTxYdI-SLQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/recommended-event-agile-coach-camp-toronto/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/recommended-event-agile-coach-camp-toronto</feedburner:origLink></item>
		<item>
		<title>Don’t Waste Your Golden Learning Opportunity!</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/wkp8XOOvrdQ/dont-waste-your-golden-learning-opportunity</link>
		<comments>http://www.jbrains.ca/permalink/dont-waste-your-golden-learning-opportunity#comments</comments>
		<pubDate>Fri, 10 May 2013 16:26:21 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1295</guid>
		<description><![CDATA[Problems start when we turn any learning method into a ritual. Learning stops, then dogma, arrogance and intolerance begin. &#8212; Stephen Parry (@LeanVoices) May 7, 2013 Very true. I&#39;ve watch dozens of organisations adopt practices in order to have new rules to follow, but these organisations have tended not to make any lasting change nor... <a href="http://www.jbrains.ca/permalink/dont-waste-your-golden-learning-opportunity">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p><style type="text/css">
.post { font-size: 120% }
</style></p>

<blockquote class="twitter-tweet">
<p> Problems start when we turn any learning method into a ritual. Learning stops, then dogma, arrogance and intolerance begin.</p>
&mdash; Stephen Parry (@LeanVoices) <a href="https://twitter.com/LeanVoices/status/331634313277886464">May 7, 2013</a>
</blockquote>

<p>
Very true. I&#39;ve watch dozens of organisations adopt practices in order to have new rules to follow, but these organisations have tended not to make any lasting change nor realise significant improvements. At the risk of oversimplifying the situation, we all know from direct personal experience that merely following rules leads merely to <strong><em>accurately-projectable mediocrity</em></strong>. We see it in poor customer service and mediocre product quality. &quot;The system won&#39;t let me do that&quot; or &quot;That goes against our policy&quot; reflect this follow-the-rules approach. Sadly, many people interpret my emphasis on strict, diligent, fundamental practice as a new set of rules to follow blindly and forever. In the best case, they merely see me as a hypocrite and ignore me, but in the worst case, they follow my advice and it leads them mostly nowhere. I think they simply forget to use the rules most effectively: to learn.</p>

<p><figure style="float: right; margin-before: 0px; margin-after: 0px; margin-start: 0px; margin-end: 0px; margin-left: 2em; margin-bottom: 2ex; margin-top: 0px; margin-right: 0px">
<a href="http://c2.com/cgi/wiki"><img alt="Ward Cunningham's Wiki" height="76" src="https://d2q0qd5iz04n9u.cloudfront.net/_ssl/proxy.php/http/c2.com/sig/wiki.gif" style="margin: 0px; width: 79px; height: 76px;" width="79" /></a><figcaption>The Original Wiki</figcaption></figure>
Here I have to resurrect an idea from our &quot;distant&quot; past &#8212; &quot;distant&quot; by internet standards &#8212; practices as &quot;&eacute;tudes&quot; or &quot;finger exercises&quot; or, to choose the more modern simile, &quot;kata&quot;. You can read about this idea from the Dead Sea Scrolls themselves, starting at&nbsp;<a href="http://c2.com/cgi/wiki?PracticesVersusEtudes" target="_self">http://c2.com/cgi/wiki?PracticesVersusEtudes</a>. This short article (2-minute read) reminds us <strong>to distinguish &eacute;tudes from practices</strong>: we practise &eacute;tudes to learn something specific, and perhaps we practise them regularly-but-infrequently even after we feel like we&#39;ve mastered them, simply to keep up our strength; we adopt practices when we see value in doing something all, or at least most of, the time. We therefore start practising test-driven development as an &eacute;tude, but perhaps decide later to adopt it as a practice (or not). Even if we don&#39;t adopt it as a practice, we might test-drive something a few days per month to see what the technique has next to teach us about design or about testing. When I teach my <a href="http://www.jbrains.ca/training/the-worlds-best-introduction-to-test-driven-development" target="_self">World&#39;s Best Intro to TDD</a>, I ask the attendees to treat TDD as an &eacute;tude while working through the course, with an eye towards deciding by the end of the course whether to continue to practise it as an &eacute;tude, adopt it (on an experimental basis) as a practice, or ignore it entirely. I don&#39;t want you to learn TDD so that you have a new set of rules to follow blindly for the rest of your programming career.</p>

<p>
I encourage you to treat all practices this way. <strong>Don&#39;t adopt a practice until you&#39;ve treated it as an &eacute;tude.</strong> This means choosing a timebox during which to practise. It means taking time to reflect on what happened when you practised. It means talking to other people about what you&#39;ve experienced when you practised. It means documenting what you&#39;ve learned. It means focusing on the technique while keeping an open mind about the results. It means using what you&#39;ve learned from the practice to inform other aspects of your work. I think you&#39;d do will to treat any practice this way, whether from Scrum, XP, FDD, DSDM, Kanban, or whatever method. Mostly importantly, <strong>it means focusing on what you can learn from a practice, rather than expecting it to function as a foolproof set of rules to follow indefinitely and inattentively</strong>. While I don&#39;t believe for a second that this guarantees continuous growth and improvement, not doing this will absolutely guarantee a ceiling on your results, no matter which well-meaning rules you choose to follow. Even the ones I promote!</p>

<p>
So, if you plan to adopt practices as new rules to follow, rather than as techniques from which to learn, then save yourself some energy and just keep following the rules you already have. You probably won&#39;t notice the difference.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/wkp8XOOvrdQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/dont-waste-your-golden-learning-opportunity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/dont-waste-your-golden-learning-opportunity</feedburner:origLink></item>
		<item>
		<title>The World’s Best Intro to TDD (demo video)</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/SZYKeGGxfCI/the-worlds-best-intro-to-tdd-demo-video</link>
		<comments>http://www.jbrains.ca/permalink/the-worlds-best-intro-to-tdd-demo-video#comments</comments>
		<pubDate>Fri, 19 Apr 2013 09:00:14 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1256</guid>
		<description><![CDATA[You deserve the World&#8217;s Best Intro to Test-Driven Development, and here it is. This demonstration video chronicles delivering the first feature of a point of sale terminal using real-life technologies include Heroku and a UPC (price code) barcode reader. Unfortunately, I couldn&#8217;t figure out how to connect the application to a portable LCD, so I... <a href="http://www.jbrains.ca/permalink/the-worlds-best-intro-to-tdd-demo-video">Read more...</a>]]></description>
			<content:encoded><![CDATA[<div><style type="text/css">
.tdd-logo { background-image: url(/wp-content/uploads/2010/10/rectangle-grey.jpg); display: block; float: right; margin-left: 5mm; margin-bottom: 5mm; width: 200px } 
.tdd-logo:hover { background-image: url(/wp-content/uploads/2010/10/rectangle-mouseover.jpg); display: block; float: right; margin-left: 5mm; margin-bottom: 5mm; width: 200px}
</style>
<img style="display: block; float: right; margin-left: 5mm; margin-bottom: 5mm; width: 200px" src="/wp-content/uploads/2010/10/rectangle-grey.jpg" onmouseover="this.src='/wp-content/uploads/2010/10/rectangle-mouseover.jpg'" onmouseout="this.src='/wp-content/uploads/2010/10/rectangle-grey.jpg'"></div>

<p>You deserve the World&#8217;s Best Intro to Test-Driven Development, and here it is.</p>

<p>This demonstration video chronicles delivering the first feature of a point of sale terminal using real-life technologies include Heroku and a UPC (price code) barcode reader. Unfortunately, I couldn&#8217;t figure out how to connect the application to a portable LCD, so I had to settle on the browser as my display.</p>

<p>In this one-hour-long video I deliver a single feature from end to end using Presenter-First Design with Mock Objects in Java. (No integrated tests here!) If you&#8217;d like to download this video, you can do so directly from Vimeo.</p>

<iframe style="width: 480px; height: 360px" src="http://player.vimeo.com/video/37595051" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

<p><a href="http://vimeo.com/37595051">J.B. Rainsberger</a> from <a href="http://vimeo.com/devtraining">devtraining.ee</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>If you liked this demonstration, then you&#8217;ll just love the <strong>new project</strong> I have in the works. I&#8217;ve delivered the World&#8217;s Best Intro to TDD as live training to hundreds of programmers across North America and Europe. I&#8217;ve had a lot of fun traveling the world, but it really limits the number of people I can help. I&#8217;d love to help people whose employers can&#8217;t justify training for the whole company. I&#8217;d love to help companies that can&#8217;t afford to have their key programmers absorbed in training for five straight days. I think I&#8217;ve found a way to help.</p>

<p>I&#8217;ve started developing an <strong>online edition of my world-class training</strong> that combines self-paced study and <strong>real-time pairing with me</strong>. You get all the benefits of live on-site training and you don&#8217;t have to leave your home or office. Individuals will love the <strong>unparalleled personal attention</strong>, while companies can train their employees without having them disappear for a week, and <strong>without having to give thousands of dollars</strong> to airlines, hotels, restaurants and taxi companies.</p>

<p>While this program remains in development, I need adventurous people <strong>willing to experiment</strong>. I have already started negotiating with a few companies to be the first to participate in this training, but I&#8217;m happy to talk to one or two more particularly eager groups. In exchange for your willingness to experiment, I offer you maximum flexibility and responsiveness, pay-for-what-you-use pricing and priority (even exclusive!) scheduling.</p>

<p>Intrigued? Fantastic! Fill in this form and as soon as I can find a spot for you, I will let you know.</p>

<div id="wufoo-q7p6s9">
Fill out my <a href="http://jbrains.wufoo.com/forms/q7p6s9">online form</a>.
</div>

<script type="text/javascript">var q7p6s9;(function(d, t) {
var s = d.createElement(t), options = {
'userName':'jbrains', 
'formHash':'q7p6s9', 
'autoResize':true,
'height':'1259',
'async':true,
'header':'show', 
'ssl':true};
s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'wufoo.com/scripts/embed/form.js';
s.onload = s.onreadystatechange = function() {
var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
try { q7p6s9 = new WufooForm();q7p6s9.initialize(options);q7p6s9.display(); } catch (e) {}};
var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
})(document, 'script');</script>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/SZYKeGGxfCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/the-worlds-best-intro-to-tdd-demo-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/the-worlds-best-intro-to-tdd-demo-video</feedburner:origLink></item>
		<item>
		<title>Getting Unstuck: Unleashing the Expert Within!</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/72SnpiuHhD8/getting-unstuck-unleashing-the-expert-within</link>
		<comments>http://www.jbrains.ca/permalink/getting-unstuck-unleashing-the-expert-within#comments</comments>
		<pubDate>Thu, 11 Apr 2013 17:07:11 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Free Your Mind to Do Great Work]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1231</guid>
		<description><![CDATA[Some of you know about Jerry Weinberg&#8217;s &#8220;fieldstones&#8221; approach to writing. You build a system for easily capturing thoughts of various lengths: a phrase, an idea, a paragraph, whatever. Periodically you review these fieldstones, look for themes, then collect them into a larger piece, fit for publication. This sounds a lot like &#8220;Getting Things Written&#8221;.... <a href="http://www.jbrains.ca/permalink/getting-unstuck-unleashing-the-expert-within">Read more...</a>]]></description>
			<content:encoded><![CDATA[<a href="http://www.freeyourmind-dogreatwork.com"><img style="float: right; position: relative; width: 220px; margin: 0px 0px 2ex 2em" src="http://www.jbrains.ca/wp-content/images/courses/free-your-mind-small-gauge-black-220w.png"</img></a>

<p>Some of you know about Jerry Weinberg&#8217;s &#8220;fieldstones&#8221; approach to writing. You build a system for easily capturing thoughts of various lengths: a phrase, an idea, a paragraph, whatever. Periodically you review these fieldstones, look for themes, then collect them into a larger piece, fit for publication. This sounds a lot like <a href="http://astore.amazon.com/jbrains.ca-20/detail/B000WH7PKY" title="Getting Things Done">&#8220;Getting Things Written&#8221;</a>. It occurs to me that you can use this technique to develop training material. It occurs to me that that&#8217;s exactly how I did it, myself.</p>

<p>Let me back up a little.</p>

<p>When people find out that I retired at 34, they ask me how. The conversation steers itself after a while to how I got started working independently. Looking back, building my training skill and experience helped me a lot. People buy training, in part because they want someone to tell them what to do next. You can probably remember a few instances of this yourself, when you needed to figure something out and lamented not having someone to just show you what to do. People also buy training because they understand how to buy training. Some people&#8217;s <em>job</em> consists of buying training! This gives you an established way in: your market knows how to buy your services, and they want your services. Now you need at least two ingredients: a training course to sell them, and for them to learn your name and banking information.</p>

<h3>You&#8217;re a trainer, but you don&#8217;t know it!</h3>

<p>Isn&#8217;t that supposed to rhyme? Anyway.</p>

<p>You probably have some useful information that you convey to others, either by talking face-to-face, through blog posts, or possibly even through a self-published book. If you offered training, then companies will buy it, if they know you and like you. This article focuses on developing the material; we can talk about getting people to like you another time.</p>

<p>Before I delivered my first training course, I had absolutely no idea how to develop course material. None. I had all this information, I regularly answered questions on mailing lists, but I didn&#8217;t know how to package it into a class. Then I started working for a technology training company, where I learned not only how to write course material, but how to teach. Or perhaps, I learned how not to do both of those things. If you want to find a job with a training company, then go for it. I didn&#8217;t love the experience, but I value what I learned from it. I can think of another path.</p>

<p>Fieldstones.</p>

<p>Don&#8217;t feel like you have enough content for a 3-day course? How about 2 hours? Do you think that you have enough information to keep a group of technicians (programmers, testers, business analysts, whoever you want to train) busy for 2 hours and give them the vague feeling that they&#8217;ve learned something? Great! You can start there. Do you have a 1-hour presentation in which you describe how to do something specific (as opposed to ranting about varied things)? Great! You can start there, too. Add a 1-hour exercise to a 1-hour presentation and you have a 2-hour training mini-course.</p>

<p>Now ask every user group that could possibly be interested to let you present your mini-course to their audience. The first few times you do this, you will probably suck. Don&#8217;t lose hope; but rather, get those experiences out of the way, so that you can start kicking ass, or at least not sucking. You&#8217;ll get better with practice. Not only will you improve your teaching technique, but you will adjust your course content based on your audience&#8217;s feedback.</p>

<p>Is your audience falling asleep during your presentation, but engaged during the exercise? Less talking, more doing.</p>

<p>Is your audience asking you really tough questions? Great! More fieldstones! These questions become future &#8220;modules&#8221; in your training course. If you listen to your audience, they&#8217;ll tell you what to teach next.</p>

<p>After you teach a handful of these fieldstone mini-courses, you&#8217;ll almost certainly have a common theme that you can turn into a 3-day course. Just stitch the fieldstones together, just the way Jerry teaches to stitch fieldstones into articles, or chapters, or books.</p>

<h3>From Fieldstones to Cash Money</h3>

<p>I developed my World&#8217;s Best Introduction to Test-Driven Development training course this way, and now I&#8217;m looking into offering it as remote training. (If you or your company is adventurous enough to experiment with remote TDD training, then <a href="http://link.jbrains.ca/14K70Vy"><strong>click here</strong></a> and let&#8217;s talk about it. This is still in the early stages, and the early birds tend to get the biggest discounts.) Every training course I offer started out as a handful of 30-minute talks and 2-hour mini-courses. This stuff really works!</p>

<p>After you&#8217;ve run your fieldstone courses at user groups and people get to know and trust you, submit them to conferences to run either as workshops during the main conference or as pre-conference tutorials. Many conferences offer tutorials for an extra fee and will split the revenue with you. This gives you some of the best feedback of all: will people pay for this? When you see that people love your mini-courses, then you know which fieldstones to flesh out into full-fledged courses. You can stitch 2 or 3 fieldstone mini-courses together, add a few more exercises, and sell it as 3 days of world class training&#8230; and <strong>people will buy it</strong>. (I mean that in the good way, not in the &#8220;sucker born every minute&#8221; way.)</p>

<p>So there you have it: the Fieldstones method for developing training material and taking a giant step towards becoming a consulting megastar. It just works.</p>

<h3>It&#8217;s Your Turn</h3>

<p>To start, take 5 minutes right now and write down every idea you have for a training session, big or small. Pick the ones for which you feel the most energy right now. (Thank you, <a href="http://www.twitter.com/DianaOfPortland">Diana Larsen</a>, for teaching me to follow my energy and not necessarily what I think other people expect me to do.) Now pick one and write down which user groups might be interested in letting you present on that topic. Schedule it. Great! Now you have no choice but to follow through.</p>

<p>Remember that thing about getting people to like you? Don&#8217;t worry about that. Your enthusiasm for the topic you&#8217;ve just selected will carry you through. Just get yourself in front of an audience and they&#8217;ll love you.</p>

<p>If you get stuck, just come back here and ask your questions, or if you&#8217;d rather ask me in private, click <a href="http://link.jbrains.ca/14K70Vy">here</a> and ask away. I&#8217;ll see what I can do to help.</p>

<p>Go get &#8216;em!</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/72SnpiuHhD8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/getting-unstuck-unleashing-the-expert-within/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/getting-unstuck-unleashing-the-expert-within</feedburner:origLink></item>
		<item>
		<title>What matters most when writing code? (Readability? Performance?)</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/Qv7Khx6VlV8/what-matters-most-when-writing-code-readability-performance</link>
		<comments>http://www.jbrains.ca/permalink/what-matters-most-when-writing-code-readability-performance#comments</comments>
		<pubDate>Sat, 06 Apr 2013 17:34:57 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1222</guid>
		<description><![CDATA[Several people believe that efficiency is the most important aspect of code. Is it? Yes? No? Maybe? Sometimes? Mu?]]></description>
			<content:encoded><![CDATA[<p>I read this recently in <a href="http://link.jbrains.ca/10Emd6w">a thread on software craftsmanship</a>:</p>

<blockquote>In my &#8220;craft of software development&#8221; course, I&#8217;ve noticed two competing philosophies. Several of my students believe that efficiency is the most important aspect of code, where as, I believe that code readability is the most important aspect of code.</blockquote>

<p>I find similar reactions when I work with programmers. I usually respond with one of those annoying consultant phrases: <strong>it depends on the context</strong>. I wouldn&#8217;t do my job as a consultant if I didn&#8217;t also provide a more concrete answer, so I&#8217;d like to start that here. Your comments will help me refine this answer as time goes on, so please challenge me!</p>

<p>I don&#8217;t believe that &#8220;<em>the</em> most important&#8221; aspect of code can exist. No matter which important aspect of code you choose to label &#8220;most important&#8221;, we could easily spend 5 minutes imagining a context where some other aspect matters more than that one. For example, I can think of situations in which correctness matters surprisingly little, or speed matters surprisingly little, or maintainability matters surprisingly little. I don&#8217;t just mean trivial contexts, either, but ones drawn from the real experiences of real people.</p>

<p>Thus, as consultants often do, my answer consists of an exercise: which aspect of code do <em>you</em> think is most important? Now, let&#8217;s imagine a situation in which we&#8217;d generally consider a <em>different</em> aspect of code even more important than this &#8220;most important&#8221; one. Repeat until bored (or convinced, or both).</p>

<p>Michael Feathers has suggested that &#8220;readability is the best default [most-important aspect] for nearly all code&#8221;. This seems quite reasonable, but Michael included the word &#8220;nearly&#8221; for a reason. True: in the context where people time costs more than machine time, then readability matters much more. I worry that we&#8217;ve lived in that context for so long, that we forget that we&#8217;ve made a tradeoff. Jerry Weinberg tells stories about IBM renting him free of charge to clients who buy a computer. In that context, where machine time costs so much more than people time, then shaving milliseconds probably matters more.</p>

<p>Don&#8217;t get me wrong: absent other information, I tend towards optimising for a balance between low cost to understand and low cost to change. (These two relate, but I can understand code that I nevertheless feel afraid to change because of high coupling to some difficult-to-understand system). If I don&#8217;t know my audience well, then I tend to tip the balance&mdash;not much, but a little&mdash;in favor of low cost to change, so that they can more readily make the code easier <em>for them</em> to understand.</p>

<p>As usual in these cases, knowing the forces matters more than choosing a sensible context-free default option.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/Qv7Khx6VlV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/what-matters-most-when-writing-code-readability-performance/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/what-matters-most-when-writing-code-readability-performance</feedburner:origLink></item>
		<item>
		<title>User stories: a ticket for a conversation</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/vUoZA7d6gFI/user-stories-a-ticket-for-a-conversation</link>
		<comments>http://www.jbrains.ca/permalink/user-stories-a-ticket-for-a-conversation#comments</comments>
		<pubDate>Fri, 14 Dec 2012 12:45:52 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1191</guid>
		<description><![CDATA[We know a lot about user stories, but clients continue to struggle with them. I offer you something simple that works. Try it!]]></description>
			<content:encoded><![CDATA[<p>I first read the title well over ten years ago, and I thank Ron Jeffries and his colleagues for introducing me to the idea. In the years since, many people have written volumes on how to write good user stories; I like a lot of it. We know about the Connextra format (&#8220;As a (role)&#8230;&#8221;), INVEST, Fit and Gherkin/Cucumber scenarios, and everything in between. Despite so many people obviously knowing so much about the topic, I see clients routinely struggle with stories. To try to simplify the situation, I offer you the idea of a user story card as a <em>coupon</em>. I even made these nice coupons for you to download, print two-sided and use on your teams. I hope they will help the team focus on the user story as a <em>reminder to talk about the story</em>, and nothing more. Just try it, and tell me what you think.</p>

<div style="text-align: center">
<a href="http://link.jbrains.ca/12kemfF"><img style="border: 1px solid black" src="http://www.jbrains.ca/wp-content/uploads/2012/12/UserStoryCouponFront.png" alt="" title="UserStoryCouponFront" width="450" height="300" class="aligncenter size-thumbnail wp-image-1193" /></a>
<p>Front</p>
</div>

<div style="text-align: center">
<a href="http://link.jbrains.ca/12kepYS"><img style="border: 1px solid black" src="http://www.jbrains.ca/wp-content/uploads/2012/12/UserStoryCouponBack.png" alt="" title="UserStoryCouponBack" width="450" height="300" class="aligncenter size-full wp-image-1197" /></a>
<p>Back</p>
</div>

<p>Do you need help with user stories, but can&#8217;t afford thousands of dollars to hire a consultant for an on-site visit? You need My Agile Tutor. You&#8217;d be amazed what you can accomplish in only 90 minutes with me. Visit <a href="http://www.myagiletutor.com">http://www.myagiletutor.com</a> to get started today!</p>

<h3>Post Script</h3>

<p>I remember the phrase &#8220;token for a conversation&#8221;, but Ron wants to edit it, possibly retroactively.</p>

<p><a href="http://www.jbrains.ca/wp-content/uploads/2012/12/RonJeffries-Token-Ticket.png"><img src="http://www.jbrains.ca/wp-content/uploads/2012/12/RonJeffries-Token-Ticket.png" alt="" title="RonJeffries-Token-Ticket" width="600" height="361" class="aligncenter size-full wp-image-1211" /></a></p>

<p>I&#8217;m in. &#8220;Ticket for a conversation&#8221; sounds good, too.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/vUoZA7d6gFI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/user-stories-a-ticket-for-a-conversation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/user-stories-a-ticket-for-a-conversation</feedburner:origLink></item>
		<item>
		<title>Brewing Espresso and Legacy Code</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/mizqRyg1ijU/brewing-espresso-and-legacy-code</link>
		<comments>http://www.jbrains.ca/permalink/brewing-espresso-and-legacy-code#comments</comments>
		<pubDate>Sun, 01 Jul 2012 18:43:41 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Integrated Tests Are A Scam]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1171</guid>
		<description><![CDATA[The tools of ignorance I have recently started &#8220;taking seriously&#8221; making coffee. By that, I mean that I have spent a considerable amount of money, time, and effort, learning to brew espresso at home. Rather than bore you with the history, suffice it to say that this has become my latest expensive hobby. I wanted... <a href="http://www.jbrains.ca/permalink/brewing-espresso-and-legacy-code">Read more...</a>]]></description>
			<content:encoded><![CDATA[<div style="float: right; padding: 0px 0px 20px 20px"><img src="http://link.jbrains.ca/LcYjev"></img><p style="margin: auto; width: 100%">The tools of ignorance</p></div>

<p>I have recently started &#8220;taking seriously&#8221; making coffee. By that, I mean that I have spent a considerable amount of money, time, and effort, learning to brew espresso at home. Rather than bore you with the history, suffice it to say that this has become my latest expensive hobby. I wanted a challenge outside the realm of building software, and I&#8217;ve found it.</p>

<p>My current setup includes a Baratza Virtuoso grinder, beans both from Kicking Horse and from Speakeasy Coffee, and the centerpiece, a Rancilio Silvia Pro V3 espresso machine. This machine <a href="http://link.jbrains.ca/QOt7AJ">has the reputation of being a teacher</a>, and I can see why. I have at best a love/hate relationship with Silvia to this point.</p>

<p>Over the winter holidays 2011-2012, Sarah and I stayed with her parents, and so I bought Silvia and shipped it there with the goal of brewing better espresso during our month of down time. I knew I wanted to step up from the department-store brand espresso machine I&#8217;d used for a few years, and Silvia seemed a popular and strong choice. I unboxed the machine, pulled a few shots&mdash;that&#8217;s the lingo, you see&mdash;and did not care for the results. The espresso tasted considerably inferior to what I&#8217;d managed to brew using my $200 machine. This simply couldn&#8217;t happen, and so I did the simplest thing: I read a few dozen articles on the web about taming Silvia.</p>

<p>Talk about complicated! So many variables&#8230; beans, grind, tamp, humidity, water temperature, water quality&#8230; I didn&#8217;t know where to start, so I did the only thing I could: I muddled through until mid-January, boxed Silvia up, went back on tour, and waited until I couuld unite Silvia with the Virtuoso grinder at home. I couldn&#8217;t run a real test, after all, until I used the machine in a proper environment, with a high-quality grinder, high-quality beans, and even time and patience to experiment.</p>

<p>Fast forward to the last few days. I have set up my beautiful grinder along side the temperamental Silvia. I feed this system the best water I have, the best beans I have, and I start pulling shots. Dreck. Bitter. I&#8217;m pulling shots anywhere from 10 to 18 seconds. Water is channeling through the coffee at breakneck speed, spurting bitter fluid everywhere. Each shot creates a unique, almost artistic mess to clean up. I literally can&#8217;t swallow the results. With Sarah waiting for her morning cappuccino, I resign myself to take the best two out of 6-8 mediocre shots, and hope that cinnamon and microfoam milk mask the flavor enough. I don&#8217;t feel good about the coffee I make, but Sarah goes along with it kindly enough.</p>

<p>I&#8217;m not enjoying this. After reading a few dozen more articles, <a href="http://link.jbrains.ca/KUv6Un">like this one</a>, I see that in order to get the results I expected, I need to learn a lot more about making coffee than I already had done, and I thought I&#8217;d learned a lot already! I&#8217;d read <em>The Joy of Coffee</em> over ten years ago. I seemed to know more than most people around me about making good coffee. I owned an Aeropress! Surely, I knew what I was doing. Apparently not. It seems that, no matter how much I think I know about brewing beautiful espresso, there remains entire worlds I haven&#8217;t explored yet. I wanted to enjoy this, but it had become a battle, and I don&#8217;t know whether I want to learn all this arcane technical stuff just to make good espresso. The results from my $200 machine seemed like an acceptable compromise by this point.</p>

<p>I know&mdash;so far, this has nothing to do with software development.</p>

<p>Gil Broza decided to have a little fun at my expense.</p>

<p><figure style="text-align: center; padding: 10px"><a href="http://twitter.com/gilbroza/status/219442130886721537"><img src="http://link.jbrains.ca/O7QTIf"></img></a><figcaption><em>Now</em>, this has something to do with software development.</figcaption></figure></p>

<p>This entire experience reminded me of the battles we face working in legacy code. We don&#8217;t know precisely what the system does, though we have a rough working knowledge of how it works and what it&#8217;s supposed to do. We only have one form of reliable feedback: the end result. We might have the chance to check a few intermediate steps in the process&mdash;I can roughly check the temperature of the water, the color and shape of the flowing coffee, the time to pour 2.5 ounces of espresso, and how much splatters out from my naked portafilter&mdash;but that feedback is inexact, like how wet or dry the puck of grounds feels after pulling the shot, or how much crema I find on top of the espresso. These forms of feedback tell me when I&#8217;ve got it all wrong, but don&#8217;t help me know when I&#8217;ve got it right. I can pull a 23-second shot of 2.5 ounces with a nice dark color and a healthy crema on top, then taste unrepentant bitterness in the shot. Unusable&mdash;but everything looked right! What the hell am I doing wrong?!</p>

<p>I really have only two choices: give up, or learn more. In my case, giving up means walking down to <a href="http://samuelscoffeehouse.ca/">Samuel&#8217;s coffee house</a> and paying $3-4 per cappuccino. This usually gives me the quality results I want, but at a premium, and comes with one considerable downside: I have to put on pants and go outside. When working with legacy code, giving up means neither replacing nor rescuing the legacy code, but simply living with it, learning to adjust my expectations to its quirky behavior, figuring out how to get it mostly out of my way, but with one considerable downside: when push comes to shove, I can&#8217;t change it, so I have to waste time and effort working around it, rather than making it better. Legacy code has a way of creating a vortex of mediocrity around it, sucking in otherwise good code and diligent programmers. We bear both visible and invisible costs, and they seem unbounded. It never ends, and we can do nothing to stop it.</p>

<p>A little dramatic, perhaps, but I think you&#8217;d agree, not entirely unrealistic.</p>

<p>For my part, I won&#8217;t give up the search for a great espresso. I won&#8217;t let Silvia beat me. I will do the research, put in the practice, and figure out how to get consistent, delicious results. I have done it before, and I will do it again. I will have to read a lot of articles, try a bunch of strange-sounding techniques, run through a lot of beans that deserve better treatment than I&#8217;m likely to give them, and drink an unfortunate number of mediocre cappuccinos before I get there, but I shall get there. It will happen, because <a href="http://link.jbrains.ca/Kcdfqa">I believe I <em>can</em> learn to do it, I believe I <em>will</em> to learn to do it, and dammit, I want great cappuccino at home</a>.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/mizqRyg1ijU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/brewing-espresso-and-legacy-code/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/brewing-espresso-and-legacy-code</feedburner:origLink></item>
		<item>
		<title>The Part-Time Agile Coach: no, it’s not crazy</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/rHGMNp5FR3M/the-part-time-agile-coach-no-its-not-crazy</link>
		<comments>http://www.jbrains.ca/permalink/the-part-time-agile-coach-no-its-not-crazy#comments</comments>
		<pubDate>Mon, 28 May 2012 16:52:53 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Coaching]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1158</guid>
		<description><![CDATA[I recently read Naresh Jain&#8217;s short, but highly informative article (click here) comparing part-time coaching to full-time coaching. I share some of his experience, having done long-term full-time coaching, long-term part-time coaching, short-term full-time coaching, and even short-term part-time coaching. Individuals have benefited a lot from remote working sessions with me, and I think companies... <a href="http://www.jbrains.ca/permalink/the-part-time-agile-coach-no-its-not-crazy">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>I recently read Naresh Jain&#8217;s short, but highly informative article (<a href="http://link.jbrains.ca/JGddVb">click here</a>) comparing part-time coaching to full-time coaching. I share some of his experience, having done long-term full-time coaching, long-term part-time coaching, short-term full-time coaching, and even short-term part-time coaching. Individuals have benefited a lot from remote working sessions with me, and I think companies have mostly overlooked this powerful and cost-effective alternative.</p>

<p><em>Individuals</em> can rarely justify spending the money it costs to bring a coach to them, so they either work with their coach remotely or, in some cases, combine work with vacation and travel to their coach. People have approached me for coaching for two broad reasons: either they want quick help related to something very specific, or they want a mentor to help guide them through some difficult or uncertain decisions. I have found that I can deal with even sensitive interpersonal issues effectively over the phone or Skype.</p>

<p>Most often, the client schedules remote working sessions with me, which we conduct over the internet using basic tools like Skype, chat, email, screen sharing or virtual whiteboards. I have helped people prepare clients for job interviews, reviewed clients&#8217; code, programmed with clients in real time, mapped products and stories with clients, and advised clients working themselves as team leaders on performing that role more effectively. This situation works best when the client and I establish trust very quickly, either by having met before, or by completing a single working session before discussing a longer-term arrangement. On rare occasions, technology has got in the way of the work, but the interruptions have been minor and overcome by using backup, technology like the phone. In a typical one-on-one engagement working remotely like this, we tend to keep the schedule quite flexible, and so the occasional rescheduled appointment causes relatively little trouble.</p>

<p>When <em>teams and companies</em> look for coaching, they rarely consider alternative coaching models, and I think they overpay enormously for convenience, possibly even for less effectiveness. (Refer back to Naresh&#8217;s article.) I can think of a few reasons for this.</p>

<ul>
<li>The client and coach do not know each other well enough to establish a level of trust that makes part-time or remote coaching work well.</li>
<li>The client&#8217;s company has no experience with these alternative coaching models, and simply doesn&#8217;t trust them.</li>
<li>Someone in the approval chain has had a bad experience with a consultant (who hasn&#8217;t?) and wants to keep the coach close by, in order to monitor the work.</li>
<li>Someone in the approval chain equates face time with value.</li>
<li>In some cases, such an alternative coaching engagement doesn&#8217;t fit into the detailed system of departmental budgets and project codes that has evolved over time to track the cost of working with consultants.</li>
<li>Obtaining the budget for a large block of work with a consultant requires less effort and involves less bureaucracy than a more incremental approach.</li>
</ul>

<p>Before I continue, let me be clear: I don&#8217;t ridicule these constraints. I feel bad about them, but I understand how these policies evolve, and I don&#8217;t want to make things worse by complaining to the client before they agree to the first engagement! I&#8217;d rather focus on our shared interests in part-time coaching:</p>

<ul>
<li>Your team will have to stand on its own feet long before I leave &#8220;for good&#8221;. We can avoid the ongoing anxiety of <em>what happens after he leaves?</em></li>
<li>Your team will have a chance to digest and use the first batch of suggestions before I try to give them more.</li>
<li>You can commit less money to working with me to start, and I can commit less time to working with you to start. If the relationship breaks down, and sometimes it just doesn&#8217;t work, then it&#8217;s much less likely for us to succumb to the impulse to involve lawyers.</li>
</ul>

<p>When working with a team full-time, I feel happy when my clients use 20% of what I teach them, given the sheer number of things I can share with them. When working with a team part-time over a longer period, my clients have had time to test and refine my suggestions. They don&#8217;t try to do too much at once, reducing frustration and giving the chances a much better chance of sticking. This gives me a chance to learn more about them and give them more effective advice. <strong>This becomes a <em>virtuous cycle</em> that generates much more value for the cost.</strong></p>

<p>So, do I still value full-time coaching? Yes. I think that teams need leaders of the type that Gil Broza describes in his upcoming book, <em>The Human Side of Agile</em>. I think that companies need help cultivating those leaders, and that at a result, full-time coaching needs to include an explicit mandate to coach would-be leaders. When I coach a team for a few months, I expect to show them some tricks, give them feedback about their behavior, point them towards useful resources (like books, articles, training), and inspire at least one person to act in the role of servant leader. <strong>Most clients do not talk to me about this last point, and I see it as a mistake every time.</strong></p>

<p>When I agree to coach a team for any significant length of time, I expect to work with the client to develop a strategy to deal with this issue. Not doing so wastes money, time, and effort, and given what we coaches typically charge, I want my clients to get the most out of their time with me. Just because I show your people 50 tricks doesn&#8217;t mean that they can use 50 tricks after I leave. We have to do much more than that to make any coaching engagement a success.</p>

<p>This might leave you with one last question: when <em>should</em> I hire a full-time coach? I think that, if you need someone to <em>do</em> the work of an agile team leader because you have a gaping void in that area, then you could consider hiring a full-time coach for 3-6 months. If you hired me for that, I&#8217;d start by leading the team, while learning as much as I can about the team and how it fits within the company. If you had someone in mind to take over as coach after I leave, then I&#8217;d teach that person what I know and share what I&#8217;ve learned. If you needed me to help you find that person, I&#8217;d do that, too. I&#8217;d split the engagement roughly into thirds: first leading the team, then pair-leading the team, then coaching your employee-coach as she leads the team. By the end of the scheduled time, your employee-coach would feel comfortable to lead the team, but might still need some part-time help, and I&#8217;m happy to do that. Even if I leave this person with 10 books to read, she&#8217;ll still need someone to lean on for advice, and <strong>remote working sessions fit that need perfectly</strong>.</p>

<p>This style of engagement contrasts sharply with stories that friends, colleagues, and clients have told me. They have shared stories of consultants who come in, lead the team, become the bottleneck, create (intentionally or not) a situation where the client depends on the coach for too much, then disappear abruptly when boredom sets in. It happens too often; don&#8217;t let it happen to you. <strong>A long-term, part-time relationship with a strong coach delivers tremendous value long after a full-time coach has left the building</strong>.</p>

<p><strong>UPDATE:</strong> I just ran across George Dinwiddie&#8217;s short article (<a href="http://link.jbrains.ca/KFSNi9">click here</a>), which I offer here as a companion piece.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/rHGMNp5FR3M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/the-part-time-agile-coach-no-its-not-crazy/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/the-part-time-agile-coach-no-its-not-crazy</feedburner:origLink></item>
		<item>
		<title>System and Method for Alleviating Fears in Clients*</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/9gRljlkDAEY/system-and-method-for-alleviating-fears-in-clients</link>
		<comments>http://www.jbrains.ca/permalink/system-and-method-for-alleviating-fears-in-clients#comments</comments>
		<pubDate>Mon, 14 May 2012 14:28:23 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Coaching]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1126</guid>
		<description><![CDATA[I help people deal with fear when I coach people, teams, and organisations. All coaches do this. I often deal with this problem with a relatively simple working session that often takes less than an hour. If you like it, then please try this at work.]]></description>
			<content:encoded><![CDATA[<p><style type="text/css">
.column-in-3s {
  float: left;
  width: 30%;
  display: inline;
}
.left-column {
  padding-left: 0%;
  padding-right: 2%;
}
.interior-column {
  padding-left: 2%;
  padding-right: 2%;
}
.right-column {
  padding-left: 2%;
  padding-right: 0%;
}
</style></p>

<p>I help people deal with fear when I coach people, teams, and organisations. All coaches do this. In particular, I encounter decision-makers afraid to take some of my advice, for a variety of reasons:</p>

<ul>
  <li>There&rsquo;s a lot to do, and we don&rsquo;t have time. (Have you read chapter 6 of <a href="http://link.jbrains.ca/LBcc27">Planning Extreme Programming</a>?)</li>
  <li>What you suggest sounds difficult, and I don&rsquo;t think we can do it well.</li>
  <li>What you suggest changes everything, and I don&rsquo;t know where I will stand afterwards.</li>
</ul>

<p>I often deal with this problem with a relatively simple working session that often takes less than an hour. If you like it, then please try this at work.</p>

<p>I recently described this to a friend and colleague who reported trouble with a client resisting his advice regarding emergent architecture. I had suggested that he throw some keywords into Google and start reading, when he replied that he tried that, spent considerable time, found conflicting information, and didn&rsquo;t know which authors to trust. He needed something that would open his client&rsquo;s eyes to what&rsquo;s possible. I wrote him this:</p>

<blockquote>
  <p>That&rsquo;s the problem your interlocutor probably has: &#8220;<em>I am unsure whom to trust.</em>&#8221; Data will not help. In that position, your interlocutor will probably trust the people who agree with the position he already has in his head and not trust the people who don&rsquo;t agree with the position he already has in his head.</p>
</blockquote>

<blockquote>
  <p>As to opening his eyes to what&rsquo;s possible, I doubt anything will impress him, although I&rsquo;d enjoy his proving me wrong on that. I anticipate a lot of &ldquo;Yes, but&hellip;&rdquo; followed by a lengthy explanation of why that won&rsquo;t work in his context.</p>
</blockquote>

<p>I suggested saying something like this to his client:</p>

<blockquote>
  <p>I understand that the idea of letting architecture emerge sounds scary. I happen to think it&rsquo;s just as scary to try to get it right years in advance. I can make some guesses about what scares you about this, but I&rsquo;d rather you tell me. What&rsquo;s one thing that scares you about trying intentional, guided emergent design&hellip;?</p>
</blockquote>

<p>I play a little game with the client&rsquo;s answers. I write each fear down on a card, then after he has finished telling me what worries him, I pick a card at random and ask the client: &ldquo;What can I do to alleviate <em>this</em> fear?&rdquo; I suggest things. I try to talk about concrete issues. I pull out information about his context. I learn about him, his situation, and his fear. I write my suggestions down on cards: &ldquo;Try TDD&rdquo;, &ldquo;Get some C++ training&rdquo;, &ldquo;Run a Product Sashimi session with five key customers&rdquo;, &ldquo;Reorganise department X into feature teams&rdquo;, &ldquo;Run Open Space days once per month&rdquo;. After an hour or so, we have a list of ideas on cards. Each of these ideas addresses one of his stated fears, concerns, anxieties. When there&rsquo;s nothing more to explore, I look at the cards and group them like this:</p>

<div style="margin: auto; width: 90%; padding: 5px; border: 1px solid; margin-bottom: 2em">
<div class="column-in-3s left-column"> <p><strong>No Obstacles: Just Do It</strong></p>
<p>These are the cards that <strong>you can deal with starting today</strong>, if you want. You have the authority to do these things, there are no technical obstacles, <strong>you simply need to learn to do them and choose to do them</strong>.</p>
</div>
<div class="column-in-3s interior-column"> <p><strong>Obstacles You Can Overcome: Do It This Year</strong></p>
<p>These are the cards that you could deal with starting today, <strong>if you did one or two other things first</strong>. You might need to seize the authority, but you think you can. You might have some technical obstacles, but you have the skill to overcome them. You simply need to commit to doing them, then <strong>start chipping away at them</strong>.</p></div>
<div class="column-in-3s right-column"> <p><strong>Obstacles You Don&#8217;t Yet Know How To Overcome: Five-Year Plan</strong></p>
<p>These are the cards that probably involve larger-scale cultural change or learning transformative skills. <strong>You don&#8217;t know how to solve these problems yet, so you need help</strong>: hired guns, books, training, advice, whatever. You might find something here that you have energy to explore, but for the rest, <strong>you probably need to show some results from Groups 1 and 2 before you&#8217;ll dive into Group 3</strong>. When you&#8217;re ready, I have some ideas for you on where to start.</p></div>
<div style="clear: left">&nbsp;</div>
</div>

<p>Finally, I ask the big question. <em>Even if you never end up doing intentional, guided emergent design, which of these cards look like things you&rsquo;d like to do or think need doing?</em></p>

<p>Do those.</p>

<h2 id="further-reading">Further Reading:</h2>

<ul>
  <li><a href="http://link.jbrains.ca/Kcdfqa">Dale Emery&rsquo;s model of motivation</a>, which I use frequently. Dale makes me look like a genius with this one.</li>
  <li><a href="http://link.jbrains.ca/LBcc27">Planning Extreme Programming</a>, which remains a classic.</li>
</ul>

<p>*The title is a joke that comes from my days at IBM. My then manager, Tack Tong, told me that in order to have my patent applications taken seriously, I needed the title to be something like &#8220;System and Method to&#8230;&#8221; and use the term &#8220;apparatus&#8221; a lot. I miss Tack.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/9gRljlkDAEY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/system-and-method-for-alleviating-fears-in-clients/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/system-and-method-for-alleviating-fears-in-clients</feedburner:origLink></item>
		<item>
		<title>A proven path to effectiveness</title>
		<link>http://feedproxy.google.com/~r/jbrains/~3/CDXyP0DwYN8/a-proven-path-to-effectiveness</link>
		<comments>http://www.jbrains.ca/permalink/a-proven-path-to-effectiveness#comments</comments>
		<pubDate>Tue, 01 May 2012 13:00:51 +0000</pubDate>
		<dc:creator>J. B. Rainsberger</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jbrains.ca/?p=1119</guid>
		<description><![CDATA["I want to do better work as a programmer, but I don't know how to start." I have an idea for you.]]></description>
			<content:encoded><![CDATA[<p><a href="http://images.jbrains.ca/ProvenPathToEffectiveness-full.jpg" title="A proven path to effectiveness - full-sized image"><img src="http://images.jbrains.ca/ProvenPathToEffectiveness-preview.jpg" alt="A proven path to effectiveness" /></a></p>

<p>Click the image to enlarge it.</p>
<img src="http://feeds.feedburner.com/~r/jbrains/~4/CDXyP0DwYN8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.jbrains.ca/permalink/a-proven-path-to-effectiveness/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.jbrains.ca/permalink/a-proven-path-to-effectiveness</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.420 seconds. --><!-- Cached page generated by WP-Super-Cache on 2013-05-24 20:21:09 -->
