<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coriander Technologies</title>
	<atom:link href="http://www.coriandertech.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coriandertech.com</link>
	<description>Agile Software Development Advice</description>
	<lastBuildDate>Sun, 21 Apr 2013 08:44:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Developers wanted</title>
		<link>http://www.coriandertech.com/2013/04/21/developers-wanted/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=developers-wanted</link>
		<comments>http://www.coriandertech.com/2013/04/21/developers-wanted/#comments</comments>
		<pubDate>Sun, 21 Apr 2013 08:44:05 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Hiring]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=172</guid>
		<description><![CDATA[I think many of the job listings out there are pretty boring. Here&#8217;s one I created for hiring developers on my team here in Atlanta in an attempt to stand out a bit: I think the recruiting process for software &#8230; <a href="http://www.coriandertech.com/2013/04/21/developers-wanted/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I think many of the job listings out there are pretty boring. Here&#8217;s one I created for hiring developers on my team here in Atlanta in an attempt to stand out a bit:</p>
<p>I think the recruiting process for software talent sucks.</p>
<p>I cringe at these emails I get seeking 2 years of xyz and 5 years of m&amp;m and … etc. I ignore them. Hiring based on acronyms and experience is misguided. Sometimes it’s the recruiter’s fault; sometimes it’s the hiring manager’s issue. These approaches are a cop-out. They indicate laziness to perform the due diligence required to find real talent.</p>
<p>I seek heart and talent, or as I like to put it: attitude and aptitude. Experience, skills, college degrees, and certifications are all indicators of talent, but are not the definition of one’s capability to contribute.</p>
<p>I’m looking to add a few *strong* software developers to our team. Our tech stacks are Ruby on Rails, and IOS. It’d be really cool if you had experience in one of them. But if you have a solid OOD foundation with great collaboration skills and the passion and drive to learn, keep reading.</p>
<p>Us:</p>
<p>+ Well-funded start-up<br />
+ Ruby-on-rails/IOS technical environment<br />
+ B2B automobile domain<br />
+ Agile done right (not scrum or XP, but generic agile – including engineering practices)<br />
+ Co-located team just north of the Perimeter<br />
+ Great leadership<br />
+ Fantastic team</p>
<p>We are agile through-and-through. Go through the XP Engineering practices. We practice them all. Think more Kanban than scrum. Think Lean Startup.</p>
<p>We believe in self-directed teams. With self-direction comes great responsibility.</p>
<p>We do a coding dojo every Friday afternoon. We feel it is important for developers to “sharpen the saw”.</p>
<p>You (not necessarily in this order):</p>
<p>+ Comfortable with ambiguity (we’re a startup)<br />
+ Creative<br />
+ Interested in and possess the communication skills necessary to be effective in pair programming<br />
+ Interested in and possess the discipline to practice<br />
++ TDD(RSpec, Kiwi)<br />
++ BDD/ATDD (Cucumber, Frank)<br />
+ Passionate about your craft. Really passionate.<br />
+ Sense of humor<br />
+ Very collaborative (with other devs, analysts, testers, management).<br />
+ Courageous (per the XP values)<br />
+ Strong object-oriented design/development skills<br />
+ Smart: strong analytical and problem solving skills<br />
+ Crave learning new things<br />
+ reliable and professional<br />
+ Probably have an active Github account and contribute to open source projects</p>
<p>Things I might hear that indicate this might not be a good fit:</p>
<p>- “I only do [back-end|front-end|Ruby|IOS|ETL]”<br />
- “[VB|Cobol] rocks”<br />
- “I love going to meetings”<br />
- “My degree and certifications are proof that I am qualified to do this job”<br />
- “Quality is the responsibility of the QA department”<br />
- “I’d rather work alone.”<br />
- “I’m fine, as long as every requirement is documented before I get started.”<br />
- “Where’s my cubicle?”<br />
- “Don’t ask me to do that. I’m a dev. That’s the job of the [Tester|Iteration Manager|management]”<br />
- “I won’t submit a solution to a coding challenge. My resume speaks for itself”</p>
<p>Want to join a great team?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2013/04/21/developers-wanted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iterations ~= methadone</title>
		<link>http://www.coriandertech.com/2013/02/25/iterations-methadone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iterations-methadone</link>
		<comments>http://www.coriandertech.com/2013/02/25/iterations-methadone/#comments</comments>
		<pubDate>Mon, 25 Feb 2013 23:27:47 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=167</guid>
		<description><![CDATA[The agile manifesto is the foundation of agile software development. Various branded versions (Scrum, XP) promote &#8220;iterations&#8221;. Iterations are these methods&#8217; approach to facilitating agile&#8217;s value: responding to change over following a plan and by extension to the second agile &#8230; <a href="http://www.coriandertech.com/2013/02/25/iterations-methadone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The agile manifesto is the foundation of agile software development. Various branded versions (Scrum, XP) promote &#8220;iterations&#8221;. Iterations are these methods&#8217; approach to facilitating agile&#8217;s value:</p>
<blockquote><p>responding to change over following a plan</p></blockquote>
<p>and by extension to the second agile principle:</p>
<blockquote><p>Welcome changing requirements, even late in development. Agile processes harness change for the customer&#8217;s competitive advantage.</p></blockquote>
<p>Are iterations the only way to respond to change? No. Kanban, for instance, adapts more frequently. One could reasonably argue that that Kanban should be termed &#8220;continuous adaptation to change&#8221;.</p>
<p>Remember when weekly builds were all the rage? Then it became daily (Harken back to <a title="The Joel Test" href="//http://www.joelonsoftware.com/articles/fog0000000043.html">The Joel Test</a>, circa 2000. Daily builds were in it). Finally, we got to continuous. Now we&#8217;re bridging the last mile in a continuous fashion, through continuous delivery and continuous deployment.</p>
<p>Iterations are today&#8217;s backlog management equivalent of weekly builds &#8211; a step in the right direction, no doubt, but not the final answer.</p>
<p>I&#8217;m tired of folks who argue that you&#8217;re not agile if you don&#8217;t have an iterations&#8217; worth of estimated/analyzed stories prior to the iteration planning meeting. They&#8217;re missing the point. Having a fully analyzed and estimated backlog may be comforting to some, but in a frequently changing environment much of the effort to get there is waste. Even having enough of your backlog &#8220;fully&#8221; analyzed and estimated to peel off into the next iteration doesn&#8217;t mean you&#8217;re &#8220;agile&#8221;.</p>
<p>Iterations are like methadone for the waterfall heroin addict. Just as methadone helps heroin addicts come down from their illusory cloud of nirvana, so too does an iterative approach help waterfall addicts come down a bit from their illusion of predictability and control of software development. Just as methadone, however, iterations should be a stepping-stone; not an end-state.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2013/02/25/iterations-methadone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The PMI-ACP agile quiz &#8211; a critique</title>
		<link>http://www.coriandertech.com/2012/04/14/the-pmi-acp-agile-quiz-a-critique/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-pmi-acp-agile-quiz-a-critique</link>
		<comments>http://www.coriandertech.com/2012/04/14/the-pmi-acp-agile-quiz-a-critique/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 18:27:40 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Certification]]></category>
		<category><![CDATA[PMI]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=163</guid>
		<description><![CDATA[I took the Program Management Institute (PMI) Agile Certified Practitioner (ACP) survey to assess my knowledge of agile this morning. I was prompted to check into it after having attended a PMI session called: “Why PMI-ACP Certification is Red Hot…and &#8230; <a href="http://www.coriandertech.com/2012/04/14/the-pmi-acp-agile-quiz-a-critique/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I took the Program Management Institute (PMI) Agile Certified Practitioner (ACP) <a href="”">survey</a> to assess my knowledge of agile this morning. I was prompted to check into it after having attended a PMI session called:</p>
<p>“Why PMI-ACP Certification is Red Hot…and How You Already Qualify to Receive It.”</p>
<p>I posted some ruminations on PMI interpretations of agile in my post earlier today: <a href="”">PMI-ACP Certification – Hot or Not?</a>.</p>
<p>I missed 3 out of 20 questions on the agile survey. I had some problems with some of the questions. So maybe it’s just too new. Suggest you take the survey yourself before reading my interpretation.</p>
<p>Here are the ones I got wrong or that I found confusing:</p>
<p><strong>What is the difference between a release, and an iteration?</strong></p>
<p>The “right” answer is “A release consists of many iterations”.</p>
<p>I answered “They are mutually exclusive”.</p>
<p>For one thing, the “many” in the “right answer” is misplaced. I’ve done projects where we released every iteration. That’s not “many” iterations.</p>
<p>Secondly, sometimes an agile team works on multiple tracks across multiple products within iterations that can be released independent of iterations and of other products. What if your team also does production support? Right – this isn’t the clean, book-learning of “a release is comprised of a number of iterations”. It’s based on the reality of teams out in the wild. If you want to test, I think it should be based on reality rather than some simplified Pollyanna view where teams work on only one product at a time and discover that their work magically fits into n-iterations. (Note to APLM tool creators).</p>
<p>Hence my answer: they are mutually exclusive.</p>
<p><strong>What is the timing of when XP teams work on features?</strong></p>
<p>The “right” answer: “Sequentially”. My answer: “In any order”.</p>
<p>Clearly “once all the requirements are complete” is not correct.</p>
<p>And “simultaneously”, another possible answer, is … well… I don’t know. I guess it could have been a reasonable response.</p>
<p>“Sequentially” doesn’t make sense to me, though I see how they inferred this as the correct answer. I think it’s about proceeding “sequentially” through the prioritized backlog (or – since we’re talking XP here, probably Master Story List is more apt). A couple of problems with this though:</p>
<p>If I have multiple dev pairs they are almost always working on different stories <strong>simultaneously</strong>.</p>
<p>The sequencing of the backlog (using biz value, risk, etc.) is an exercise that causes stories to flow into an iteration. <strong>Within</strong> an iteration – typically the focus of the <strong>XP Team</strong> as stated in the question, the sequence is usually not so important (unless you have dependencies or other factors driving sequence).</p>
<p>Of course, Kanban throws a whole ‘nother wrinkle here. Still – multiple people are working on different stories simultaneously.</p>
<p><strong>What is the definition of method tailoring?</strong></p>
<p>Never heard that term before, but I guessed right. More context on the question, or a rewording, would be appropriate.</p>
<p><strong>On an agile project, sponsors, developers, and users should be able to maintain a constant pace for what time period?</strong></p>
<p>The “right” answer is “Indefinitely”.</p>
<p>We talk of “sustainable”, not “constant” pace. “Consistent” may be more palatable, but still – “constant” seems wrong.</p>
<p>Secondly – the pace question is usually a comment on the agile team – not the external stakeholders, and certainly not the <strong>users</strong>.</p>
<p>I answered “for an iteration”. I have always thought of the iteration beginning and ending ceremonies – particularly the retrospective – as a break from the pace of the iteration: a time to come up for air, collect our thoughts, then hunker down and proceed. Again – Kanban has a more constant pace, so adds another wrinkle.</p>
<p><strong>With respect to a sprint, what does velocity measure?</strong></p>
<p>The answer is “the amount of work a team can accomplish in a given sprint”.</p>
<p>First – velocity is a more general agile term that is not specific to scrum. I would generalize the question/answer.</p>
<p>Second – velocity is not necessarily what it “can” accomplish. There’s historical velocity, for instance, which measures what a team <strong>has</strong> accomplished in past iterations. I would modify the answer to say “accomplishes” rather than “can accomplish”.</p>
<p>Ah well. I’ve always found these attempts at agile assessments fraught with confusion. Multiple choice tests are difficult when the content is complex and context-dependent.</p>
<p>I’d love to hear feedback. Did you take the test? How’d you do? Any comments on my criticisms?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2012/04/14/the-pmi-acp-agile-quiz-a-critique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PMI-ACP Certification &#8211; hot or not?</title>
		<link>http://www.coriandertech.com/2012/04/14/pmi-acp-certification-hot-or-not/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pmi-acp-certification-hot-or-not</link>
		<comments>http://www.coriandertech.com/2012/04/14/pmi-acp-certification-hot-or-not/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 15:44:06 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Certification]]></category>
		<category><![CDATA[PMI]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=161</guid>
		<description><![CDATA[I attended a PMI session this week called “Why PMI-ACP Certification is Red Hot…and How You Already Qualify to Receive It.” It’s rare that I attend user group meetings in my home town, as I have been traveling for projects &#8230; <a href="http://www.coriandertech.com/2012/04/14/pmi-acp-certification-hot-or-not/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I attended a PMI session this week called “Why PMI-ACP Certification is Red Hot…and How You Already Qualify to Receive It.”<br />
It’s rare that I attend user group meetings in my home town, as I have been traveling for projects for most of the past 7 years, but this subject was right up my alley. I was eager to hear how the PMI is addressing agile (after practically ignoring it for most of the past 10 years of its existence).</p>
<p>I have a problem with the title of the talk, for one thing. Though the speaker lamented the “pass/pass” nature of Certified Scrum Master (CSM) certification offered by the Scrum Alliance, the title of this talk indicates that <strong>you</strong>, dear PMI member, are <strong>already qualified</strong> (without any experience or understanding ?) to <strong>receive</strong> (not just sit for the exam, but receive) ACP certification.</p>
<p>Second – I don’t think it’s “red hot”. I did a quick search on DICE (without geographical restriction) for ACP and got 14 hits. A search for CSM got 86. I was [pleasantly] surprised at how few hits I got on both. “Scrum” turned up 2,811 hits and “agile” turned up 8,765. I admit that some uses of the word “agile” are probably Webster’s definition, but I doubt scrum postings refer to rubgy.</p>
<p>The slide deck from the presentation I attended includes a visual of a “Crossing the Chasm” example (from Geoffrey Moore’s 2002 book of the same title) showing that, though Scrum Alliance (not Agile Alliance or any other org mind you) were useful for Enthusiasts and Visionaries in the beginning, PMI is “better positioned” to “cross the chasm” with Pragmatics, Conservatives, and Skeptics. He may be right; they have 500,000 members and a 40-year track record. But the content I’ve seen from PMI on agile indicates that the understanding is not yet there. And I&#8217;m not sure their certification approach is well-equipped to deal with an empirical process. (For the record, I attended a 10-week PMP training session &#8211; before my agile exposure).</p>
<p>Some areas of misunderstanding I’ve seen from various sources:</p>
<p>Mapping a work-breakdown structure to agile feature decomposition as a simple matter of terminology misses the subtlety of vertical slices and defining progress through “working software”. A “story” is not just a WBS “activity” in different clothing.</p>
<p>Mapping “similar” roles from classic project management to agile by suggesting that a senior project manager is like a product owner and a junior PM is like the scrum master misses the whole customer involvement and product owner as a customer proxy concept.</p>
<p>Agile is sometimes depicted as having a primary focus of avoiding waste or providing productivity improvement. This focuses on efficiency and misses the more important (my opinion) matter of effectiveness. Getting the wrong product out without waste helps nobody. Effectiveness – “doing the right thing” is about listening to the customer and adjusting your preconceptions based on observation. Agile is not just about eliminating waste (e.g. useless documents). It’s more about getting to the right destination – even if more slowly. I know it&#8217;s harder to sell that way.</p>
<p>Showing a cone of uncertainty that is narrower at the beginning based on iteration length misses the point. I am not more certain at the outset just because of the iteration length I’ve chosen. I haven’t thought deeply about this yet, but it seems to me that the only impact of iteration length on the cone of uncertainty is the fluidity of the narrowing. That is – with 4-week iterations, you get a more marked narrowing every 4 weeks where with 1-week iterations, you get a more fluid narrowing – smaller narrowings, but more frequent.</p>
<p>Presenting SCRUM in its 2002 form (ala Beedle/Schwaber) with 30-day sprints is crazy. I’ve never seen anyone do 30-day sprints. Imagine scheduling a recurring meeting for, say, your sprint review, at “every 30 days”. It would be a different day of the week each iteration. 4-weeks, 3-weeks, 2-weeks, 1-week, and 1-day are the variations I’ve seen. I also can’t believe that people still show slides that depict 4-hour sprint planning meetings and 4-hour sprint reviews (regardless of iteration length). The problem here is that <strong>you cannot codify an empirical process</strong>. You can only provide guidance, rules-of-thumb, and context/environment for which to account. Here is where PMI faces its most significant hurdle I think.</p>
<p>I’m accused sometimes of answering questions with “it depends” more often the people would like. I once had a client who insisted that I should be able to tell him the optimum agile team size. People often ask for the optimum iteration length. There’s no one answer for these questions. They are all context sensitive. The good thing is that, in an empirical process, you try something, see how it works, and then adjust over time. (I’ll leave the incongruence of this empirical approach with antiquated “tell-me-up-front” budgetary approaches for another discussion).</p>
<p>I think classic training is ill-equipped to convey the complexity of empirical processes. Think back to your high school chemistry classes. Did you learn more from a book, or from the experiments? Game approaches (ala Innovation Games and GameStorming) are, I think, the only hope we have to teach empirical approaches like agile/lean (not just scrum) effectively.</p>
<p>It&#8217;s easy to critique from the outside. I&#8217;m sure the PMI-ACP folks have the best intentions. I&#8217;m undecided about whether it&#8217;s worth spending time to pitch in to help, or to write it off as yet another useless certification.</p>
<p>Next post – I took the ACP survey on the PMI site. My results and comments will follow. (I missed 3 out of 20 questions).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2012/04/14/pmi-acp-certification-hot-or-not/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Anti-If campaign</title>
		<link>http://www.coriandertech.com/2012/02/19/anti-if-campaign/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=anti-if-campaign</link>
		<comments>http://www.coriandertech.com/2012/02/19/anti-if-campaign/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 16:01:53 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=158</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.antiifcampaign.com"><br />
<img src="http://www.antiifcampaign.com/assets/banner_ive-joined.gif" alt="I have joined Anti-IF Campaign" width="120" height="60" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2012/02/19/anti-if-campaign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiring an agile coach</title>
		<link>http://www.coriandertech.com/2011/12/06/hiring-an-agile-coach/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hiring-an-agile-coach</link>
		<comments>http://www.coriandertech.com/2011/12/06/hiring-an-agile-coach/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 18:35:47 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Coaching]]></category>
		<category><![CDATA[Hiring]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=140</guid>
		<description><![CDATA[A colleague of mine was once asked for help in creating a job description for an agile coach. One of the suggestions was &#8220;5 years of agile project management experience&#8221;. Though longevity is certainly helpful, it is not sufficient to &#8230; <a href="http://www.coriandertech.com/2011/12/06/hiring-an-agile-coach/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A colleague of mine was once asked for help in creating a job description for an agile coach. One of the suggestions was &#8220;5 years of agile project management experience&#8221;. Though longevity is certainly helpful, it is not sufficient to find a good coach.</p>
<p>For example, I once heard a presentation at a software architecture user group meeting from an agile practitioner. The guy presenting had done agile for a couple of years, all at the same company; he had no diversity of experience and had found the way to implement agile <em>within his context</em>. The examples were all slanted towards what his team had found to be effective, yet they were not explained that way. For example &#8211; &#8220;you always do a burn-down within a sprint and a burn-up for a release&#8221;, without discussing the differences and explaining why they did it that way. The audience had no agile experience and almost came away with the perspective that agile was just another process.</p>
<p>If this guy had spent 5 years in the same environment, I think he&#8217;d have had the same myopic perspective of agile. If he took a job as an agile coach, he probably would have coached what worked for him in his old company without considering the client&#8217;s context.</p>
<p>I think there are other factors that are at least as important as tenure to seek in an agile coach.</p>
<p>Seek <strong>diversity</strong> in your agile coach.</p>
<p>That is &#8211; diversity across </p>
<ul>
<li>technical stacks (not just yours)</li>
<li>business domains (not just yours)</li>
<li>team sizes (both large and small)</li>
<li>multi-team and single team.</li>
<li>local and distributed (across both building floors and oceans)</li>
<li>internal and external projects</li>
</ul>
<p>Seek <strong>experience doing</strong> (working as a part of an agile team) as well as <strong>experience coaching</strong>. Agile coaches (or coaches in any endeavor) can lose perspective of the practical challenges in implementing agile if they dedicate all of their time to coaching. On the other hand, a good practitioner is not necessarily a good coach.</p>
<p>Seek <strong>strong communication skills</strong>. Find someone who is comfortable and effective communicating to the team, to project managers, iteration managers, and line managers and to executive management.</p>
<p>Seek a coach who is more <strong>pragmatic</strong> than dogmatic. For example avoid a coach who might seek to change your estimation scale at the outset, or who insists that all stories should be broken into tasks without understanding the context in which you operate.</p>
<p>One of my favorite questions I suggest you ask a potential coach: &#8220;What do you suggest we seek in an agile coach?&#8221;. If the first answer is certification, be wary. </p>
<p>In any question you ask, beware answers that do not take your organization&#8217;s context into account.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2011/12/06/hiring-an-agile-coach/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Joel test is antiquated</title>
		<link>http://www.coriandertech.com/2011/11/05/the-joel-test-is-antiquated/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-joel-test-is-antiquated</link>
		<comments>http://www.coriandertech.com/2011/11/05/the-joel-test-is-antiquated/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 18:25:35 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Hiring]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/?p=83</guid>
		<description><![CDATA[I recently stumbled upon references to the Joel test in job postings on the Stack Overflow Careers 2.0 website (careers.stackoverflow.com). Joel Spolsky (one of the founders of Stack Exchange, the company that publishes Stack Overflow and Careers 2.0) published his &#8230; <a href="http://www.coriandertech.com/2011/11/05/the-joel-test-is-antiquated/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I recently stumbled upon references to the Joel test in job postings on the Stack Overflow Careers 2.0 website (careers.stackoverflow.com). Joel Spolsky (one of the founders of Stack Exchange, the company that publishes Stack Overflow and Careers 2.0) published his “Joel Test: 12 Steps to better code” in a blog entry over 11 years ago – in the fall of 2000.</p>
<p>Some of the steps in his test are still relevant, but not as much of an issue today. Some are antiquated. These are yes/no questions. He suggests that if a team has a score of 10 or lower, the team has serious problems. Here’s my take on his 12 steps, particularly in light of the popularity of more collaborative and agile software development methodologies, like XP and Scrum.</p>
<ol>
<li>Do you use source control?</li>
<ul>
<li>Still relevant, but I’d say if you don’t have source control, you have serious problems, regardless of the rest of the questions. There’s simply no excuse today with all of the open source options.</li>
</ul>
<li>Can you make a build in one step?</li>
<ul>
<li>Still relevant, and many folks have caught up with this capability with the tools available today compared to 11 years ago. In fact, the problem has moved beyond dev builds (which I presume he is discussing here) to deployment to different environments (QA, UAT, etc.). Deployment in one step is rare, but desired. This should be the new test, I think.</li>
</ul>
<li>Do you make daily builds?</li>
<ul>
<li>This should say “at least” daily. Continuous Integration is the current practice for evolved teams.</li>
</ul>
<li>Do you have a bug database?</li>
<ul>
<li>I don’t see this as relevant. On agile teams, for instance, the team is collectively responsible for managing quality. A card on the card wall representing the bug can be a great mechanism for managing your bugs. I suspect this made the cut because Joel’s company’s flagship product at the time was fogbugz – a bug tracking tool.</li>
</ul>
<li>Do you fix bugs before writing new code?</li>
<ul>
<li>I don’t like this one simply because the priority of what gets done is based on business needs. If the bug you want to fix first is a typo in the copyright statement, sure it should be fixed, but not necessarily right away. It should be prioritized against everything else.</li>
</ul>
<li>Do you have an up-to-date schedule?</li>
<ul>
<li>Agile projects emphasize continuous planning. I would rephrase this to ask if planning is done on a regular basis and if everyone on the team understands where the project stands and what needs to be done to get it to the next release.</li>
</ul>
<li>Do you have a spec?</li>
<ul>
<li>I’m not quite sure what kind of spec he’s talking about. Spec is very generic, and could refer to a functional spec (i.e. requirements), architecture spec, design spec, security spec, etc. In an agile environment, we emphasize evolving the requirements and design over the course of the project, rather than stating it in a document up front. I might reframe this to say “Are requirements and design decisions managed and properly understood by the whole team?”</li>
</ul>
<li>Do programmers have quiet working conditions?</li>
<ul>
<li>Many agile teams prefer an open collaborative environment over quiet corners for programmers to crank out code on their own. Pairing is a great model for programming collaboration and certainly makes for a less-than-quiet environment.</li>
</ul>
<li>Do you use the best tools money can buy?</li>
<ul>
<li>I think the reference here to money is antiquated. Back in the 90’s, open source was not nearly as prevalent. I think I would say “Do you use the best tools for the job?” or something like that. Then again, ask an IntelliJ guy to debate Eclipse, or Maven vs. Ant, or … you get the picture. “Best” is interpreted through the eyes of the technology religion sometimes.</li>
</ul>
<li>Do you have testers?</li>
<ul>
<li>I would ask “Are testing responsibilities understood and covered by members of your cross functional team?” for an agile environment. “Having” testers does not imply much – particularly if they test the code at the 11th hour – right before release.</li>
</ul>
<li>Do new candidates write code during their interview?</li>
<ul>
<li>I like this very much. But I wouldn’t say it’s necessarily “during” the interview, perhaps simply “part of the interview process” (e.g. code submissions in advance). Still – sitting down with someone to write code is a great test of a programmer’s skill.</li>
</ul>
<li>Do you do hallway usability testing?</li>
<ul>
<li>I would ask instead: “Is the customer represented within your process to provide regular feedback on your product?” Hallways are interesting, but at a software firm, you get a “software developer” slant on the feedback. This is probably good if you’re developing Fogbugz or an IDE, but if you’re creating a website to appeal to the retired community, your usability testing will likely be misguided.</li>
</ul>
</ol>
<p>I’ve seen companies in Careers 2.0 convey their Joel Test as “8 out of 12” and “10 out of 12”. Joel’s perspective is that anything below an 11 suggests you have serious problems. If you want to use his test as a metric, OK, but Joel’s view (11 years ago, anyway), is that it represents serious problems. I’m not sure you want to convey that to your potential candidate pool. Or… maybe you do. It certainly is more candid and honest than not pointing out the issues.</p>
<p>Aside: I wonder if Joel would still tout Microsoft’s preeminence as he does in the article (“companies like Microsoft run at 12 full time”). I wonder what Joel would say.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2011/11/05/the-joel-test-is-antiquated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Stand-up efficiency and effectiveness</title>
		<link>http://www.coriandertech.com/2011/10/06/stand-up-efficiency-and-effectiveness/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=stand-up-efficiency-and-effectiveness</link>
		<comments>http://www.coriandertech.com/2011/10/06/stand-up-efficiency-and-effectiveness/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 17:16:00 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/2011/10/06/stand-up-efficiency-and-effectiveness/</guid>
		<description><![CDATA[I attended a user group meeting last week where a participant asked the question: “How do I keep my stand-ups from going so long?”. He cited greater-than 30-minute time for 10 people. I didn’t get a chance to talk to &#8230; <a href="http://www.coriandertech.com/2011/10/06/stand-up-efficiency-and-effectiveness/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I attended a user group meeting last week where a participant asked the question: “How do I keep my stand-ups from going so long?”. He cited greater-than 30-minute time for 10 people.</p>
<p>I didn’t get a chance to talk to him, but here is my advice.</p>
<p>First, discuss the topic with the team. Ensure that there is agreement that long stand-ups are negatively impacting the team. It may be (but it’s unlikely) that the content of the long stand-ups is important to everyone,</p>
<p>Determine root cause. I find a couple of causes that can be addressed in different ways.</p>
<p>Long-winded people offering irrelevant input or input that is relevant to only one other person: Record the contributions of each of the long-winded folks and review with them. Identify specific content that is not relevant to the team.</p>
<p>You’ll often find paycheck rationalization offerings (e.g. “I had my one-on-one with my manager yesterday”).</p>
<p>Or you may find someone simply regurgitating their calendar (managers are likely to be the offenders here).</p>
<p>Or it could be politically driven public thrashings that are more appropriate to share in private (“David – you seem to be checking code in without any tests. Remember, we agreed that we would write tests”).</p>
<p>I’ve seen stand-ups where multiple team members will regurgitate events in which the whole team participated. If the whole team attended the iteration planning meeting, there is no need to mention this in the stand-up.</p>
<p>Start timing folks. If anyone talks more than 2 minutes, make them stand on one leg, or ask them to extend their arm holding a heavy book while talking. Or use a timer (obnoxious alarms are best).</p>
<p>Conversations that are not relevant to the whole team: Institute a “parking lot” flip chart or white board where topics for further conversation can be captured for discussion after stand-up. Ask the whole team to help identify potential parking lot items when they occur; add them to the parking lot when identified and move on. Ensure that those follow-on conversations occur (else you run the risk that folks will continue to insist on in-stand-up dialog).</p>
<p>Use a speaking token and ask the team to be rigid about not talking when they don’t have the token. As conversations occur, the token passing will make it obvious that a conversation is occurring, which should help folks to self-identify opportunities to use the parking lot.</p>
<p>Explain to the team that the stand-up is not the only opportunity for conversation during the day.</p>
<p>Use a laser pointer to have folks point out the relevant stories/tasks on the physical card wall as they speak. They will be less likely to pontificate on irrelevant details if they have no card to point to.</p>
<p>I’ve attended stand-ups of over 40 people that have taken less than 10 minutes. That’s less than 15 seconds per person. Granted, these were teams that were pairing, so oftentimes the contribution of the second of the pair was of the form “ditto Joe”. Still – if a team of 40+ can get it done in 10 minutes, there’s no reason why your “2-pizza team” cannot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2011/10/06/stand-up-efficiency-and-effectiveness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prioritizing vs. Sequencing the Product Backlog</title>
		<link>http://www.coriandertech.com/2011/06/30/prioritizing-vs-sequencing-the-product-backlog/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=prioritizing-vs-sequencing-the-product-backlog</link>
		<comments>http://www.coriandertech.com/2011/06/30/prioritizing-vs-sequencing-the-product-backlog/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 15:21:00 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/2011/06/30/prioritizing-vs-sequencing-the-product-backlog/</guid>
		<description><![CDATA[A primary tenet of agile software development is doing the highest business-value work earlier. The idea is that you achieve a minimal marketable feature set as early as possible so that a) you can issue releases earlier and b) if &#8230; <a href="http://www.coriandertech.com/2011/06/30/prioritizing-vs-sequencing-the-product-backlog/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A primary tenet of agile software development is doing the highest business-value work earlier. The idea is that you achieve a minimal marketable feature set as early as possible so that a) you can issue releases earlier and b) if the money runs out, you have something more valuable than if you didn&#8217;t sequence your work in that manner.</p>
<p>Another, less frequently cited agile tenet is to do the riskiest work earlier. The idea here is that you avoid late surprises when risky work turns out to be expensive. Better to discover this expense earlier.</p>
<p>When most folks talk about the backlog order, they refer exclusively to business priority.</p>
<p>I think ordering or sequencing the backlog must take more than just business priority into account. Yes, business priority is important, but so are a whole host of other factors, such as early exposure of risk. Balancing these factors is part of the art of project management.</p>
<p>Factors to incorporate into sequencing decisions:
<ul>
<li>Business Priority</p>
<li>Dependency Order: Despite our best efforts to decompose the backlog into independent stories, the fact is, the tension between the INVEST priorities sometimes cause us to define stories that are dependent on other stories.
<li>Mixture: The Rock/Pebble/Sand metaphor is helpful here. Consider a bucket at the beach. If you fill it only with rocks, you have a great deal of wasted space in the bucket, due to the space between the rocks. Though it may be unable to accommodate another rock, you may be able to slip in a handful of pebbles, to fill the spaces. Following that, you may be able to slip in some sand, to fill the spaces that the pebbles were unable to occupy. So it goes with an iteration. You don&#8217;t want to fill your iteration bucket with only large stories, because you&#8217;re losing the opportunity to slip in smaller stories. For example &#8211; if a developer finishes a story at 3pm on a Friday afternoon, you&#8217;d probably rather have him knock off a small story in the next couple of hours rather than start a large story.
<li>Crowding: Many advise that agile development teams define iteration themes. This is a good concept in theory, as it allows the team to focus on accomplishing a larger goal in the iteration. The risk here is that you have your whole development team working in the same parts of the code base. This can merge issues as the team commits code to the code repository. Consider the source-code crowding problem when sequencing the work.
<li>Risk: As mentioned above, the earlier you schedule the risky elements of the project, the more insight you have into your completion date. One element of risk is embedded in non-functional requirements. For example &#8211; if you have performance or scalability requirements that are risky, it&#8217;s better to implement the stories that are sensitive to those requirements earlier.
<li>User Feedback: If you have elements of the software for which user feedback is critical to making the right decisions, schedule this work earlier. If you delay these features towards the end, the need to change the system in response to the feedback becomes a schedule surprise. Worse, if you decide not to incorporate the feedback in order to make your date, your users are not just unhappy; they&#8217;ll feel that their input has been ignored.
<li>Exercise the architecture: Scheduling the highest business value work first may avoid elements of the architecture into later in the development cycle. For example, perhaps the &#8220;happy path&#8221; of execution is deemed the higher business value. This might delay consideration of elements of exception handling to the end of the release. First pass implementations within an architecture are always riskier, and could introduce schedule surprise. It is wise to exercise all elements of the architecture as early as possible.</ul>
<p>As I mentioned, these factors are often competing. The context of your project defines which of these dimensions are more or less important. Yes, do the highest business value work earlier, but don&#8217;t forget to consider these other factors as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2011/06/30/prioritizing-vs-sequencing-the-product-backlog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feedback Manifesto</title>
		<link>http://www.coriandertech.com/2011/06/29/feedback-manifesto/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=feedback-manifesto</link>
		<comments>http://www.coriandertech.com/2011/06/29/feedback-manifesto/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 02:07:00 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[HR]]></category>

		<guid isPermaLink="false">http://www.coriandertech.com/2011/06/29/feedback-manifesto/</guid>
		<description><![CDATA[I have come to value Verbal, constructive feedback over written evaluationsMeasuring output over measuring inputFrank feedback from colleagues over speculative management judgmentReal-time, frequent feedback over periodic high-ceremony assessments Though the things on the right are commonplace and often dictated by &#8230; <a href="http://www.coriandertech.com/2011/06/29/feedback-manifesto/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I have come to value</p>
<p>Verbal, constructive feedback over written evaluations<br />Measuring output over measuring input<br />Frank feedback from colleagues over speculative management judgment<br />Real-time, frequent feedback over periodic high-ceremony assessments</p>
<p>Though the things on the right are commonplace and often dictated by antiquated HR policies, I value the things on the left more. Much more.</p>
<p>Principles</p>
<p>Giving feedback</p>
<p>My highest priority in giving feedback is to help my colleagues improve &#8211; to benefit them individually and the organization collectively. I always preface my feedback with this sentiment.</p>
<p>I understand that not all recipients are comfortable with feedback. I choose the time and place of delivery to respect this sensitivity.</p>
<p>I always ask the recipient if he/she is willing and receptive to feedback at that time/place and graciously accept &#8220;not now&#8221; for an answer.</p>
<p>My feedback focuses on behavior and outcomes &#8211; not the person.</p>
<p>When providing critical feedback, I consider the constraints and challenges in play at the time of the performance for which I am providing feedback.</p>
<p>I acknowledge intelligent risk-taking as a necessary component of creativity and delivery of value and incorporate my appreciation for it in my feedback.</p>
<p>I ask for feedback on my delivery in order to continually improve my ability to give constructive, valuable feedback.</p>
<p>Receiving feedback</p>
<p>I welcome critical feedback about my performance as a gift, and express my appreciation accordingly, regardless of whether I agree.</p>
<p>If I am not in a good place to receive feedback, I respectfully request an opportunity to reschedule.</p>
<p>I refrain from defensiveness or questioning the motives of the person giving me feedback in order that I can absorb the essence of the feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coriandertech.com/2011/06/29/feedback-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
