<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>effective software development</title>
    <link>http://dnicolet1.tripod.com/agile/</link>
    <description></description>
    <lastBuildDate>Tue, 30 Jun 2009 14:36:00 -0500</lastBuildDate>
    <language>en-us</language>
    <docs>http://backend.userland.com/rss</docs>
    
    <item>
      <title>The beatings will continue until morale improves</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1921770</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1921770</guid>

      <description>&lt;br&gt;&lt;p&gt; I&amp;#39;ve been involved with agile software development for seven years now &amp;mdash; doing it, reading about it, hearing about it, speaking about it, writing about it, teaching it, coaching it. No two organizations or teams put agile thinking into practice in exactly the same way. For that reason, there&amp;#39;s always something new to learn; something I haven&amp;#39;t seen before; something unexpected. It shouldn&amp;#39;t surprise me to be surprised. Yet, I must say the last thing I ever expected to see was an agile sweat-shop.  &lt;/p&gt; &lt;p&gt; I&amp;#39;ve worked in software development sweat-shops before. They used to be pretty common. Software professionals (in the US, anyway) used to take it for granted that they were expected to work 80+ hours a week all the time. Career burnout, divorce, and nervous breakdowns were the price one paid to work in the software field. It was considered normal. This was one of the reasons (along with role silos, lack of feedback, lack of collaboration, lack of accountability, lack of career advancement options, and soul-crushing bureaucracy) that prompted me to exit the IT profession in 2002, when a colleague caught me by the leg (not in the Russian sense) on the way out the door and introduced me to a different way of working. For me, &amp;quot;agile&amp;quot; rekindled the enthusiasm and passion that I had felt earlier in my career, before the bureaucrats took over the IT field. I&amp;#39;d sooner open a donut shop than go back to the Old Ways.  &lt;/p&gt; &lt;p&gt; It may be because of that background that I was caught completely off-guard when I learned about an agile sweat-shop just recently. It wouldn&amp;#39;t have occurred to me that a sweat-shop could be set up on the basis of agile values and principles. The two seem fundamentally incompatible. Nevertheless, it can happen. It&amp;#39;s happening right now in a certain company, and that fact makes me wonder whether it&amp;#39;s happening elsewhere, as well. Some people are rather antagonistic about the idea of agile software development. I&amp;#39;ve never really understood why, since in my experience it&amp;#39;s been overwhelmingly superior to the Old Ways in every sense. If someone&amp;#39;s experience of &amp;quot;agile&amp;quot; has been in a sweat-shop environment, then I can certainly understand why they would have a negative attitude about it.  &lt;/p&gt; &lt;p&gt; The other day I heard about an &lt;a href=&quot;http://www.extremeprogramming.com&quot;&gt;XP&lt;/a&gt; team at a certain company that had decided to work four 10-hour days per week. It sounded interesting to me, since I&amp;#39;ve worked on XP teams that made the same choice. I was curious to know the reasons why this particular team had decided to try a four-day week. I remember the reasons why we did it on those past teams, and I still think they were good reasons: &lt;/p&gt;&lt;ol&gt; &lt;li&gt;Less ramp-up time at the beginning of the day and after lunch; eight ramp-ups as opposed to ten per week;&lt;/li&gt; &lt;li&gt;More focused time for development and collaboration; and (last but not least)&lt;/li&gt; &lt;li&gt;A three-day weekend.&lt;/li&gt; &lt;/ol&gt; From that experience we learned that there is a cost to working four 10-hour days. On an XP team, you spend most of your working time &lt;a href=&quot;http://c2.com/cgi/wiki/wiki.cgi?PairProgramming&quot;&gt;pairing&lt;/a&gt;. Pairing is an intense activity that demands one&amp;#39;s full attention at all times. Working solo, one usually does not remain intensely focused continuously; focus ebbs and flows such that the mind stays fresh. With pairing this doesn&amp;#39;t happen naturally. You have to break up the time intentionally, using an explicit time-management technique such as the &lt;a href=&quot;http://www.pomodorotechnique.com/&quot;&gt;Pomodoro Technique&lt;/a&gt; (or similar). Pairing is more like sprinting than jogging. You can keep going for a long distance when you&amp;#39;re jogging, but when sprinting you have to stop and rest between runs. With the standard eight-hour work day, an XP team member is likely to pair about 5 to 5 1/2 hours per day, and not all in one burst. It&amp;#39;s quite sustainable. With a ten-hour day, we found ourselves pairing about 6 1/2 to 8 hours per day. By the end of the fourth day, we were physically tired. We found that that &amp;quot;free&amp;quot; Friday had to be spent in recovery, as often as not. Ultimately it comes back around to the agile value, &lt;a href=&quot;http://industrialxp.org/sustainablePace.html&quot;&gt;&lt;em&gt;sustainable pace&lt;/em&gt;&lt;/a&gt;.  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; You can see why I was curious about the team that wanted to try the four-day schedule. I wondered whether they had considered the potential downside, or if they were just thinking about the fun they would have with three-day weekends. So I asked what had prompted their decision. Now I almost wish I hadn&amp;#39;t. The more I learned about their situation, the more hairs stood on end on the back of my neck. They weren&amp;#39;t looking forward to a long weekend. They weren&amp;#39;t looking forward to anything positive at all. They were looking for an escape valve for needless pressure. &lt;/p&gt; &lt;p&gt; The first neck-hairs stood up when the team explained that they had not &amp;quot;chosen&amp;quot; to try a four-day work schedule in the sense that a &lt;a href=&quot;http://codebetter.com/blogs/jeremy.miller/archive/2007/04/16/Self-Organizing-Teams-are-Superior-to-Command-n_2700_-Control-Teams.aspx&quot;&gt;&lt;em&gt;self-organizing team&lt;/em&gt;&lt;/a&gt; is empowered to make such a choice. They had been begging their management and their HR department for &amp;quot;permission&amp;quot; to work four-days weeks for several months. So, this ostensibly &amp;quot;agile&amp;quot; team is managed in a &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/08/08.html&quot;&gt;command and control&lt;/a&gt; style.  &lt;/p&gt; &lt;p&gt; Be that as it may, I have a hairy neck and that wasn&amp;#39;t enough to raise a significant alarm. There may have been perfectly reasonable organizational reasons why one single XP team out of many shouldn&amp;#39;t work on a different schedule than the rest of the shop. Command and control may have extended only as far as necessary. Perhaps foolishly, I asked for more information.  &lt;/p&gt; &lt;p&gt; I learned that the team uses a time-management technique similar to Pomodoro to schedule pair-programming sessions and breaks throughout the day. This seemed quite reasonable to me, since I know how it feels to get into &amp;quot;flow&amp;quot; and lose track of time, and end up wearing yourself out. You can&amp;#39;t work at peak effectiveness when you&amp;#39;re exhausted. Hence the wisdom of controlling the amount of pairing time, not to mention the plain fact that certain activities don&amp;#39;t benefit from pairing.  &lt;/p&gt; &lt;p&gt; But there is a sinister side to the time-management technique. When team members have to take care of routine personal business during the day, such as visiting the doctor or picking up children from school, they are required to use up some of their accumulated vacation time. This draconian rule not only runs counter to agile values, but it also defeats the very purpose of vacations (to ensure employees have a chance to refresh themselves and reset their minds periodically) and may even violate &lt;a href=&quot;http://www.dol.gov/esa/whd/flsa/&quot;&gt;Fair Labor Standards&lt;/a&gt; law by treating &lt;em&gt;some&lt;/em&gt; (and not all) exempt employees as if they were hourly (but only at the employer&amp;#39;s convenience). More hairs were now standing upright on the old neckeroo. &lt;/p&gt; &lt;p&gt; I had to wonder what might have led management to impose such a rule. The answer came from a separate discussion with some team members about pairing. They asked what the &amp;quot;extra&amp;quot; person was supposed to do. At first I didn&amp;#39;t understand the question. How can you have an &amp;quot;extra&amp;quot; team member? What does that mean? They explained that they were required to follow the rule that production code could only be touched by a pair. They were not permitted to work on production code alone. Thus, when there happened to be an odd number of team members present on a given day, there was an &amp;quot;extra&amp;quot; team member who was not permitted to touch production code.  &lt;/p&gt; &lt;p&gt; I suggested that they may have misunderstood the mechanics of pairing, or that they were being a bit extreme (no pun intended) about practicing pairing. When there is an odd number of developers, then someone works without a partner. The next time people switch around (and that won&amp;#39;t be very long; just the length of one Pomodoro or however else the team manages its time), someone else will be left to work solo for a while. It&amp;#39;s not a big deal, especially when the team is following most or all the other XP practices, since that would result in a high &lt;a href=&quot;http://everything2.com/index.pl?node_id=1543370&quot;&gt;bus number&lt;/a&gt;, and a high bus number makes it feasible for individual team members to be out-of-pocket once in a while without crashing the project. I really didn&amp;#39;t understand what their problem was. I started to probe them about their understanding of the rationale for pairing.  &lt;/p&gt; &lt;p&gt; It quickly became clear that this team follows XP practices for one reason only: Their management requires it. The &amp;quot;reason&amp;quot; they pair is that &amp;quot;management doesn&amp;#39;t trust us to work on code unless someone is looking over our shoulder.&amp;quot; (I know from separate discussions with management that this is not actually true, but sometimes perception trumps reality.) They are unable to describe the value proposition of XP as a whole or of any particular XP practice. &amp;quot;It&amp;#39;s a rule.&amp;quot; &amp;quot;Management makes us do it.&amp;quot; &amp;quot;We&amp;#39;ll get in trouble if we don&amp;#39;t do it.&amp;quot; They are not making informed professional judgments based on principles. They are merely following rules. That means nothing less than this: They value &lt;a href=&quot;http://www.agilemanifesto.org&quot;&gt;processes and tools over individuals and interactions&lt;/a&gt;. At this point, the back of my neck was at &lt;a href=&quot;http://www.fas.org/nuke/guide/usa/c3i/defcon.htm&quot;&gt;DEFCON 1&lt;/a&gt;. What I saw before my eyes was the heretofore unimaginable: An agile sweat-shop. &lt;/p&gt; &lt;p&gt; This team is so stressed-out by the fact they can&amp;#39;t pick up their kids or get a tooth filled without burning some of their vacation time that they&amp;#39;re willing to take on an even more stressful work schedule just to free up a weekday for routine errands. Horrors! &lt;/p&gt; &lt;p&gt; Of course, practitioners will recognize that this isn&amp;#39;t &amp;quot;really&amp;quot; an agile team because they&amp;#39;re &amp;quot;doing it wrong,&amp;quot; but I hesitate to call that particular spade by name because of the vocal minority who like to bash the supposed &amp;quot;agile religion.&amp;quot; Yeah, you agilists (popularly mis-spelled &lt;em&gt;agilest&lt;/em&gt;, for reasons unknown) always say &amp;quot;they did it wrong.&amp;quot; How convenient! Okay. Whatever. Call it what you will. (They &lt;em&gt;did&lt;/em&gt; do it wrong, though. A rose by any other name, etc.) &lt;/p&gt; &lt;p&gt; So, what could have led to this sorry state of affairs? It turns out to be a question of interpretation; specifically, interpretation of one of the seminal books about XP, &lt;a href=&quot;http://www.amazon.com/Extreme-Programming-Installed-Ron-Jeffries/dp/0201708426&quot;&gt;&lt;em&gt;Extreme Programming Installed&lt;/em&gt;&lt;/a&gt;, by Ron Jeffries, Ann Anderson, and Chet Hendrickson. Published four months before the &lt;a href=&quot;http://www.agilemanifesto.org/history.html&quot;&gt;Snowbird meeting&lt;/a&gt;, the book quickly became a guidebook for many budding agile teams. It became so widely known that for several years it was identified in casual conversation as, simply, The Pink Book.  &lt;/p&gt; &lt;p&gt; The agile community has learned much and made many advances in practice since then, but The Pink Book remains basic reading for those who are interested in applying agile software development methods. There&amp;#39;s one statement in particular, at the head of Chapter 12, on page 87 in the paperback edition, that speaks to pair programming. When I look at page 87, these are the words I see: &lt;/p&gt; &lt;p style=&quot;margin-left: 32px; margin-right: 32px&quot;&gt; On an Extreme Programming team, two programmers sitting together at the same machine write all production code. &lt;/p&gt; &lt;p&gt; Here&amp;#39;s what it means: Ideally, most production code should be developed by a pair who use other XP practices while they are working together, because by applying this set of practices they can produce clean code with few defects without wasting much time. If it&amp;#39;s feasible and reasonable, &lt;em&gt;all&lt;/em&gt; production code ought to be built this way, to take full advantage of the benefits of pairing. Short of that, pair as much as makes sense while keeping the single most important factor in mind: &lt;em&gt;effective delivery value to the customer&lt;/em&gt;. It&amp;#39;s a very good guideline. And that&amp;#39;s just what it is: A guideline.  &lt;/p&gt; &lt;p&gt; Problems occur when people interpret the statement not as a &lt;em&gt;guideline&lt;/em&gt;, but as an &lt;em&gt;inviolable rule&lt;/em&gt; that supercedes everything else, including the effective delivery of value to the customer. Those people would rather sit idle, waiting for a pairing partner, than to deliver value to their customer. When they look at page 87, they see different words than I see: &lt;/p&gt; &lt;p style=&quot;margin-left: 32px; margin-right: 32px&quot;&gt; Brother Chet reads from the Book of Jeffries, Chapter 12, Verse 1: Firstly shalt thou code in pairs. In threes shalt thou not code; neither shalt thou code as one, excepting that thou then proceed to two. Four is right out! Amen. &lt;/p&gt; &lt;p&gt; This very slight difference in interpretation leads to very different implementations of XP, some of which are darkly familiar to a hairy-necked survivor of the Old Ways. Don&amp;#39;t get me wrong &amp;mdash; it&amp;#39;s a great book.  &lt;/p&gt; &lt;p&gt; But it&amp;#39;s &lt;a href=&quot;http://www.ericweisstein.com/fun/startrek/APieceOfTheAction.html&quot;&gt;only a book&lt;/a&gt;, you know.  &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1921770</comments>
	
      <pubDate>Tue, 30 Jun 2009 14:35:59 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>Follow-up on the recent PMI panel discussion</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1920064</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1920064</guid>

      <description>&lt;br&gt;&lt;p&gt; I received an email from Jesse Fewell this morning thanking the participants in the recent &lt;a href=&quot;http://www.pmiwdc.org/2009-06-Tools&quot;&gt;agile panel discussion&lt;/a&gt; hosted by PMI, where I had the &lt;a href=&quot;http://www.davenicolette.net/agile/index.blog/1914849/pmi-pmtools-meeting-at-tysons-corner-virginia/&quot;&gt;honor to serve&lt;/a&gt; as a panelist. He pointed to the write-up of the event he posted &lt;a href=&quot;http://www.jessefewell.com/2009/06/24/pmiwdc-talks-agile/&quot;&gt;on his blog&lt;/a&gt;. His post includes a couple of photos and a summary of some of the panelists&amp;#39; comments. &lt;/p&gt;&lt;p&gt;It certainly was a pleasure to work with several of the big brains in the agile community - Richard Cheng, Linda Cook, and Rodney Bodamer. I look forward to working with them again soon. &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1920064</comments>
	
      <pubDate>Thu, 25 Jun 2009 09:28:52 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>Mentoring the value of pairing</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1919449</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1919449</guid>

      <description>&lt;br&gt;&lt;p&gt; I&amp;#39;m coaching a team that is relatively new to techniques like TDD and pairing. A team member asked me to pair with her the other day to have a look at her unit test cases. Like many people who are still getting used to building up a suite of automated tests, she had been writing Happy Path tests and only an occasional abnormal case. She felt that she wasn&amp;#39;t considering enough test cases, but she wasn&amp;#39;t sure what to add. In the course of the pairing session, we started building a new feature in the application and wrote test cases for boundary conditions, null arguments, exceptions, resource unavailable situations, and so forth.  &lt;/p&gt; &lt;p&gt; The TDD coaching as such was pretty typical, but the interesting thing was that she asked why people should pair unless they&amp;#39;re transferring knowledge or mentoring one another. I took the opportunity to demonstrate one aspect of the value proposition of pairing. As we worked, whenever one of us helped the other by noticing a minor mistake &amp;mdash; mis-keyed keyword, missing closing tag, forgotten semicolon, etc. &amp;mdash; I made a tick-mark on a piece of paper. Furthermore, whenever we had a brief design discussion as we were working &amp;mdash; pull this method up? break up this if/else block? etc. &amp;mdash; I tracked it with a second set of tick-marks.  &lt;/p&gt; &lt;p&gt; After our last check-in for the session, we took a few minutes for a mini-retrospective. I asked her to make a reasonable guess about the amount of time we had saved each time one of us noticed a minor coding error in the moment. She figured each one was worth about 30 seconds, based on the notion that finding the error after the fact while debugging would have taken about that long on average. We also talked about the brief design discussions that had taken place. We figured that on average each of the resulting design improvements prevented two hours of future code maintenance effort by avoiding a little bit of technical debt.  &lt;/p&gt; &lt;p&gt; In one of his early books, &lt;a href=&quot;http://alistair.cockburn.us/&quot;&gt;Alistair Cockburn&lt;/a&gt; computed that the cost of an IT professional amounts to about $2.10 per minute. That&amp;#39;s a little higher than my own scratch calculation, but he&amp;#39;s a Doctor so I&amp;#39;ll go with his numbers. In our pairing session we had two mini design discussions that led to small refactorings. By our reckoning, that saved four hours of future code maintenance effort. That&amp;#39;s worth about 2.1 x 120 = $252.00. There were 12 moments when one of us noticed a minor mistake. If those occurrences saved an average of 30 seconds debugging effort, then it was worth .5 x 2.1 x 12 = $12.60. In total, we saved the company $274.60 in 90 minutes&amp;#39; time, or an hourly saving rate of about $180.00. &lt;/p&gt; &lt;p&gt; Bear in mind these numbers are just rough-and-ready estimates based on our observations of a single pairing session. They may be high or low. The calculation also ignores the opportunity cost we avoided by keeping the code base clean. What I mean by &amp;quot;opportunity cost&amp;quot; in this context is the cost of the time developers &lt;em&gt;could not have spent on value-add work&lt;/em&gt; in future modifications, if they had to spend the time working around the technical debt that we avoided. (That&amp;#39;s a clumsy way to say it; I hope it&amp;#39;s clear enough.) &lt;/p&gt; &lt;p&gt; The company has a small IT department with a total of about 40 developers working in several XP teams. If we assume the developers pair about 5 hours a day, then that&amp;#39;s 20 pairs x 5 hours x 5 days per week = 500 pairing hours per week. Assuming a savings of $180 per hour per pair, that makes the average hard savings attributable to pairing $90,000 per week. If that rate of work is more-or-less constant throughout the year, and the teams work 50 weeks a year (it&amp;#39;s in the United States, so vacation time is short), the company enjoys a savings of about $4.5 million per year specifically because its software development teams pair-program as a standard practice.  &lt;/p&gt; &lt;p&gt; Of course, by projecting the results of one pairing session in this way we are subject to the effect of cumulative error. If you think the numbers are inflated, then go ahead and chop them in half and say that the company is saving a mere $2.25 million per year. The precise number isn&amp;#39;t really the point; the point is that pairing really does deliver hard value. Given that a professional&amp;#39;s time is the most expensive component of IT cost, techniques that save professionals&amp;#39; time are well worthwhile.  &lt;/p&gt; &lt;p&gt; The team member found the numbers quite surprising. I think her reaction is normal. We humans tend to look for dramatic, memorable events as evidence that something yields value. Pairing rarely generates dramatic, memorable events. The value of pairing comes in the form of very small course corrections that prevent errors from occurring in the first place. The course corrections are of such small scope and they occur so seamlessly within the pair&amp;#39;s work flow that they are usually not noticed at all.  &lt;/p&gt; &lt;p&gt; This is as it should be; clean code should be a natural outcome of our work, and not something that calls attention to itself by virtue of being abnormal. The value is easy to overlook because the effect of pairing is to &lt;em&gt;prevent&lt;/em&gt; situations that &lt;em&gt;would have&lt;/em&gt; caused extra work &lt;em&gt;at some future time&lt;/em&gt;. Defects do not enter the code base. Technical debt does not accumulate. It&amp;#39;s not easy to observe or quantify these effects after the fact, because the bad stuff never happens.  &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1919449</comments>
	
      <pubDate>Tue, 23 Jun 2009 06:07:37 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>PMI PMTools meeting at Tyson&amp;#39;s Corner, Virginia</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1914849</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1914849</guid>

      <description>&lt;br&gt;&lt;p&gt; I&amp;#39;m honored to have been invited to participate as a panelist at the upcoming PMI PMTools meeting in Tyson&amp;#39;s Corner, Virginia, on Tuesday, June 16. The other panelists are &lt;a href=&quot;http://www.linkedin.com/in/lindamcook&quot;&gt;Linda Cook&lt;/a&gt;, &lt;a href=&quot;http://onemoreagileblog.blogspot.com/&quot;&gt;Richard Cheng&lt;/a&gt;, and &lt;a href=&quot;http://www.linkedin.com/pub/rodney-bodamer/1/727/466&quot;&gt;Rodney Bodamer&lt;/a&gt;. All four are consultants in the lean/agile space. We will be taking any and all questions from meeting attendees. A few starter questions have been prepared by the meeting organizers in case no one has anything to ask (yeah, right). These have to do with the challenges in implementation, whether agile methods live up to the hype, and how the PM&amp;#39;s job changes when an organization moves toward agility. I think it&amp;#39;s going to be informative and a lot of fun. You can register here: &lt;a href=&quot;http://www.eventbrite.com/event/309542851&quot;&gt;http://www.eventbrite.com/event/309542851&lt;/a&gt;. I hope to see you there! &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1914849</comments>
	
      <pubDate>Tue,  9 Jun 2009 11:23:43 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>Success factors for self-organizing teams</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1914848</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1914848</guid>

      <description>&lt;br&gt;&lt;p&gt; The notion of the self-organizing team is fundamental to agile thinking; but not everyone agrees that self-organizing teams are practical. As for me, I think the viability of the self-organizing model depends on the team members, their management, their organizational context, and (possibly) on the nature of the work they do. If we limit the discussion to software development teams, then I would say there are three critical success factors for growing effective self-organizing teams.  &lt;/p&gt; &lt;p&gt; 1. &lt;strong&gt;Clearly define the boundaries.&lt;/strong&gt; The team has well-defined boundaries within which they may feel free to self-organize and self-manage. Without this, teams aren&amp;#39;t sure how far they can go or how much they should attempt to do to manage themselves. When people are uncertain about this, they tend to err on the side of caution and do little or nothing without asking management&amp;#39;s permission. That pretty much nullifies the benefits of self-organization.  &lt;/p&gt; &lt;p&gt; 2. &lt;strong&gt;Tolerate mistakes and allow time for learning.&lt;/strong&gt; The organization is tolerant of mistakes and of learning-curve time. All too often, management declares teams to be &amp;quot;self-organizing,&amp;quot; and the first time the team makes a mistake they step in and take &amp;quot;control&amp;quot; of the situation. Once management does that, the self-organization experiment is finished. It will take a very long time and considerable effort before teams will believe management is serious about allowing them to try and self-manage again. &lt;/p&gt; &lt;p&gt; 3. &lt;strong&gt;Keep the team challenged, yet not frustrated.&lt;/strong&gt; The team&amp;#39;s administrative or functional manager is sensitive to the team&amp;#39;s limitations, and adjusts boundaries and expectations carefully so as to provide the team with sufficient challenges to keep them in a state of learning and growing, while not expecting more of them than they can handle. I think it is unlikely that every team in any given organization will be at the same level of readiness and maturity for self-management. Each team will need its own boundaries and challenges so that the organization as a whole can improve its effectiveness.  &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1914848</comments>
	
      <pubDate>Mon,  8 Jun 2009 09:25:44 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>Issues in remote collaboration</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1914846</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1914846</guid>

      <description>&lt;br&gt;&lt;p&gt; An interesting thing happened the other day in a meeting of a working group charged with creating a roadmap for organizational transformation. This post isn&amp;#39;t about organizational transformation as such, though; it&amp;#39;s about an aspect of remote collaboration that became obvious to me during the meeting. &lt;/p&gt; &lt;p&gt; The working group comprises several management-level people in the client company plus three agile/lean coaches, two of whom are consultants. The meeting took place in two locations using an audio/video link and network-based remote collaboration tools. Thus, the barrier to effective remote collaboration that people most frequently talk about was handled: Technologies were in place to bridge the distance, and they worked well. Also, this form of collaboration is routine in the company and the situation was a familiar one for the participants. &lt;/p&gt; &lt;p&gt; The details of the meeting agenda are not important for my purpose here. The way the meeting flowed was that by the time we had used about half the allotted time, we were bogged down and making no progress. Key people were disengaged, including the senior-most manager in each location and one of the coaches in each location. In other words, the key decision-makers and two of the three people who ostensibly know how the organization ought to transform had stopped participating. &lt;/p&gt; &lt;p&gt; I noticed this had happened, but didn&amp;#39;t see where to begin fixing it. Then, one of the managers on the local side of the link (from my perspective) spoke up and said that the suggestions the others had just made indicated they did not trust the team members in our location. The ensuing uncomfortable silence was broken when a participant pointed out that &lt;em&gt;trust&lt;/em&gt; is a fundamental agile value. More silence. I took the opportunity to mention &lt;em&gt;transparency&lt;/em&gt; is another fundamental agile value, and suggested that to get things moving again perhaps the people on the remote side of the link could clarify their feelings and intentions. The two managers in that location did so, and the result was not only to clarify that they did indeed trust the rest of the team, but also to expose an action item for us to address after the meeting. The feeling of not being trusted had been a misunderstanding. &lt;/p&gt; &lt;p&gt; Yet, the coach on the remote side did not clarify &lt;em&gt;his&lt;/em&gt; feelings or intentions. He remained silent. I took it to mean he was not ready to talk just then, and accepted the small victory of having clarified some intentions and having identified a practical action item. I remained alert for an opportunity to draw out the coach&amp;#39;s concerns. &lt;/p&gt; &lt;p&gt; The meeting concluded with a summary and mini-retrospective. When a natural pause occurred, I took the opportunity to recap the earlier incident about trust. I thanked the two managers on the remote side of the link for their candor, and mentioned that I didn&amp;#39;t recall what the coach had said at the time. At that point he finally expressed his concerns, with a certain amount of anger or frustration in his voice. He felt as if the members of the working group at our location had gone forward with decisions and actions without consulting him. He felt we were working &amp;quot;in secret,&amp;quot; as he phrased it. I think it&amp;#39;s important not to invalidate or deny someone else&amp;#39;s feelings. If that is the way he felt, then something must have happened that caused him to feel that way. I asked the whole group what had happened that might have led to that sort of impression. We want to understand how we gave him that impression so that we can change our behavior to avoid repeating the situation. That seemed to result in a constructive outcome; people agreed to be more proactive about including remote members of the team in any decisions or significant discussions. &lt;/p&gt; &lt;p&gt; Obviously, just getting the concerns out into the open doesn&amp;#39;t magically solve the problems. Equally obviously, we can&amp;#39;t solve a problem that no one will talk about. So it was a valuable step, I think. &lt;/p&gt; &lt;p&gt; We have these working sessions daily. In the two days following the incident, I noticed that the general tone of the meetings was far more positive. There was no undercurrent of tension and no indications of mistrust or suspicion. At a minimum, people are making an effort to keep things on a constructive level and to look forward instead of backward. It&amp;#39;s possible that the change runs deeper than that. In any case, we&amp;#39;re making progress toward the goal now. &lt;/p&gt; &lt;p&gt; The lessons for this form of remote collaboration that I took away from the experience are these: &lt;/p&gt;&lt;ol&gt; &lt;li&gt;Help the people on the other end of the link hear you. Speak slowly and clearly. Don&amp;#39;t slur your words or allow your voice to trail off at the end of sentences. Don&amp;#39;t run sentences together. Face the microphone; don&amp;#39;t face the whiteboard or other materials that may be stuck on walls or windows when talking. Learn to pause at natural points in the narrative and not just whenever you happen to run out of air.&lt;/li&gt; &lt;li&gt;Don&amp;#39;t expect people on the other end of the link to be able to read material that is posted on the walls or windows of the room you&amp;#39;re in.&lt;/li&gt; &lt;li&gt;Ask clarifying questions. If you made a statement, ask people on the other side of the link to repeat it back to you in their own words. Don&amp;#39;t worry about repeating yourself; it&amp;#39;s important that people have the same understanding of what was said, and you&amp;#39;re not wasting time if repetition helps ensure that.&lt;/li&gt; &lt;li&gt;When someone on the other end of the link makes a statement and they don&amp;#39;t think to ask you to repeat it, take the initiative to repeat their statement back to them in your own words and ask whether that is what they meant. This will not make you appear stupid; you&amp;#39;re just trying to make sure everyone has the same understanding of what was said.&lt;/li&gt; &lt;li&gt;If you need to clarify something with a person who is in the room with you, avoid engaging in a &amp;quot;private&amp;quot; side conversation. You are visible on the video feed, and it comes across as conspiratorial. People at the remote location will think you&amp;#39;re keeping secrets from them. In addition, if you are speaking above a soft whisper your voice may interfere with the audio feed. If you need to ask a question, however brief or minor, wait for an appropriate time to interrupt the flow of discussion and ask the question to the whole group, or at least &amp;quot;in front of&amp;quot; the whole group. &lt;/li&gt; &lt;li&gt;If interruptions or multiple simultaneous speakers becomes a problem, pause and agree on some sort of visual signal to indicate that a person wants the floor.&lt;/li&gt; &lt;li&gt;Become aware of your own nervous tics, such as tapping on the table where the microphone is located with a pen or with your fingernails. It may sound pretty loud on the other end of the link.&lt;/li&gt; &lt;li&gt;Sit or stand in a place where the camera can see you. Otherwise, it gives the impression you&amp;#39;re hiding from the people on the other end of the link.&lt;/li&gt; &lt;li&gt;People appreciate eye contact in conversations. When you look at the image of a person on the monitor, it appears to them as if you are looking off to one side. Try looking directly at the camera, to give the impression of eye contact across the video link.&lt;/li&gt; &lt;li&gt;Keep in mind the &lt;a href=&quot;http://www.retrospectives.com/pages/retroPrimeDirective.html&quot;&gt;Retrospective Prime Directive&lt;/a&gt; (even if the meeting isn&amp;#39;t a retrospective). Resist the temptation to assume people have a hidden agenda. Occasionally they might have, but most of the time misunderstandings are simply a result of distance and not of bad intentions. It&amp;#39;s all too easy to initiate a vicious circle of mistrust, and easy to keep the mistrust going by failing to question the assumption that someone has a hidden agenda.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1914846</comments>
	
      <pubDate>Mon,  8 Jun 2009 09:21:12 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>Focus on how we can, not on why we can&amp;#39;t</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1913028</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1913028</guid>

      <description>&lt;br&gt;&lt;p&gt; I &lt;a href=&quot;http://www.davenicolette.net/agile/index.blog/1913027/xp2009-my-report/&quot;&gt;mentioned&lt;/a&gt; that &lt;a href=&quot;http://www.linkedin.com/pub/pierluigi-pugliese/3/446/65a&quot;&gt;Pierluigi Pugliese&lt;/a&gt; and I had discovered many of the approaches and techniques the two of us use in coaching and in problem-solving are quite different and complementary, through our interactions at &lt;a href=&quot;http://www.xp2009.org&quot;&gt;XP2009&lt;/a&gt;. On my first day back on the job, I found an opportunity to use one of the techniques he demonstrated in the Open Space session he facilitated last week.  &lt;/p&gt; &lt;p&gt; Key client managers and the two agile/lean coaches (&lt;a href=&quot;http://www.linkedin.com/pub/cindy-bloomer-csm-csp/0/985/762&quot;&gt;Cindy Bloomer&lt;/a&gt; and I) held a meeting today to chart a roadmap for organizational improvement over the next three quarters. Meeting last week while I was away at the conference, the others had already developed a list of observations of current problems and options to address them. In today&amp;#39;s meeting, we hoped to get a start on the roadmap by defining the desired end state. After the first half hour or so, it seemed to me that we were thrashing. We were tangled up in the detailed observations of problems and a discussion of possible tactical solutions to those problems. This was nothing at all like a roadmap. People were beginning to get frustrated. &lt;/p&gt; &lt;p&gt; The group began to slide into &amp;quot;plan-the-next-meeting-without-accomplishing-anything-substantive-in-the-present-meeting&amp;quot; mode. I remembered the technique Pierluigi had demonstrated last week, and I proposed that we change gears. I pulled a whiteboard into the middle of the room where everyone could see it clearly (some meeting participants were on a video link). I wrote the title, &lt;em&gt;Happy Company&lt;/em&gt; at the top (only I wrote the real company name) and asked the group what it would feel like to work there. After a long pause, they began tentatively to suggest ideas.  &lt;/p&gt; &lt;p&gt; The approach did not come naturally to everyone. One person suggested, &amp;quot;Resources are properly aligned with the business.&amp;quot; I asked her if she meant that the chairs were lined up straight. Everyone laughed. She said, &amp;quot;No, I meant that people were working on the right things.&amp;quot; I said, &amp;quot;Ah, you meant &lt;em&gt;people&lt;/em&gt; then, and not &lt;em&gt;resources&lt;/em&gt;.&amp;quot; Everyone nodded in acknowledgement. I wrote, &lt;em&gt;People are working on the right things&lt;/em&gt;. The pace of idea-generation picked up, and soon we had a whiteboard filled with brief statements of characteristics describing the Happy Company, mostly devoid of &lt;a href=&quot;http://www.infoworld.com/t/business/bizspeak-geek-272&quot;&gt;bizspeak&lt;/a&gt; like &amp;quot;resources&amp;quot; and &amp;quot;aligned.&amp;quot; I knew they were getting the hang of it when someone suggested, &amp;quot;People are having fun.&amp;quot; By that point, we &lt;em&gt;were&lt;/em&gt; having fun. We were thinking about what was possible rather than what was wrong. Another suggestion was, &amp;quot;People focus on how we can, not on why we can&amp;#39;t.&amp;quot; I love that one! &lt;/p&gt; &lt;p&gt; I couldn&amp;#39;t help noticing the difference in the &amp;quot;feeling&amp;quot; in the room before and after we stopped talking about problems and started visualizing the Happy Company. At one point, as I mentioned, we were somewhat stuck. People were frustrated, spoke in low tones, and there were no smiles. At the end, having generated a list of characteristics of Happy Company, everyone was smiling, voices were lighter, and we left the meeting relaxed and cheerful. It&amp;#39;s amazing how much power there is in making just a minor change in wording or perspective. &lt;/p&gt; &lt;p&gt; Tomorrow we&amp;#39;ll start with this description and work backward to discover a path that leads from the present state to the Happy Company. The others are thinking this process might take a couple of weeks. I have a feeling it won&amp;#39;t be as hard as that, provided we can resist the temptation to line up the chairs. &lt;/p&gt; &lt;p&gt; &amp;lt;gesture type=&amp;quot;raise-glass&amp;quot; content=&amp;quot;Chianti&amp;quot;&amp;gt;&lt;em&gt;Grazie&lt;/em&gt;, Pierluigi!&amp;lt;/gesture&amp;gt; &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1913028</comments>
	
      <pubDate>Mon,  1 Jun 2009 21:22:31 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>XP2009: My report</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1913027</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1913027</guid>

      <description>&lt;br&gt;&lt;h3&gt;The Venue&lt;/h3&gt; &lt;p&gt; There is a saying that any publicity is good publicity. &lt;a href=&quot;http://xroads.virginia.edu/~MA02/easton/vaudeville/vaudevillemain.html&quot;&gt;Vaudeville&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Broadway_theatre&quot;&gt;Broadway&lt;/a&gt; legend &lt;a href=&quot;http://www.musicals101.com/cohanbio1.htm&quot;&gt;George Cohan&lt;/a&gt; is credited with saying, &amp;quot;I don&amp;#39;t care what you say about me, as long as you say something about me, and as long as you spell my name right.&amp;quot; It is in that spirit that I do not mention the name of the hotel where the conference was held. It doesn&amp;#39;t deserve even &lt;em&gt;bad&lt;/em&gt; publicity. &lt;/p&gt; &lt;p&gt; With clean white beaches, a beautiful emerald-and-blue sea, sweet cool breezes, and a night sky resplendent with stars, the place would be an ideal spot for a romantic getaway &amp;mdash; assuming, that is, that they fixed the plumbing and the air conditioning, improved the quality of the food, installed window screens to bar the mosquitoes, and provided reliable cell phone and internet services. It is not, however, a suitable location for a technical conference. &amp;#39;Nuff said. &lt;/p&gt; &lt;h3&gt;Process Smells and Root Cause Analysis&lt;/h3&gt; &lt;p&gt; Monday afternoon I facilitated a workshop entitled &lt;em&gt;Process Smells and Root Cause Analysis&lt;/em&gt;. I haven&amp;#39;t yet uploaded the workshop materials to my wiki, so I can only refer you to the description in the &lt;a href=&quot;http://www2.xp2009.org/xp2009/en/contentview.wp?contentId=CNG123&quot;&gt;conference program&lt;/a&gt;. This is a new workshop that I was running for the first time. The workshop seemed to be well received and those participants who spoke with me afterwards told me they got value from it. It really functioned as two different workshops, since people left at the break and other people joined after the break.  &lt;/p&gt; &lt;p&gt; The basic idea is that a &lt;em&gt;process smell&lt;/em&gt;, much like a &lt;em&gt;code smell&lt;/em&gt; in a code base, is an observable characteristic of a process that is sufficiently questionable to warrant investigation to determine whether there is a deeper problem. Starting with simple problems and progressing to more challenging ones, we practiced using three root cause analysis tools: Five Whys, Ishikawa Diagram, and Diagram of Effects. There were enough participants (both before and after the break) to have two separate break-out groups working on each scenario. They came up with different analyses, which led to some very interesting discussions. I suggested a &amp;quot;smell&amp;quot; to be investigated using each tool, and participants suggested smells of their own for each tool. We were able to complete six analyses, doing two with each of the three tools I introduced. Of course, there are many more root cause analysis tools than these three, but they were not included in the workshop. &lt;/p&gt; &lt;p&gt; I was honored to have &lt;a href=&quot;http://www.linkedin.com/ppl/webprofile?action=vmi&amp;amp;id=589080&quot;&gt;Diana Larsen&lt;/a&gt;, noted consultant and author and chairman of the board of directors of the &lt;a href=&quot;http://www.agilealliance.org&quot;&gt;Agile Alliance&lt;/a&gt;, participate in the second half. All the participants contributed actively to the session. I thank them all, and make special mention of &lt;a href=&quot;http://www.linkedin.com/profile?viewProfile=&amp;amp;key=3691898&quot;&gt;Werner Wild&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/profile?viewProfile=&amp;amp;key=3612711&quot;&gt;Fabio Armani&lt;/a&gt;, who contributed additional smells and facilitated break-out groups during the workshop. &lt;/p&gt; &lt;p&gt; One participant, &lt;a href=&quot;http://www.linkedin.com/pub/pierluigi-pugliese/3/446/65a&quot;&gt;Pierluigi Pugliese&lt;/a&gt;, contributed a great deal to the workshop. He made an intriguing comment at one point, that his own approach to these issues is diametrically opposite the approach I was covering in the workshop. He was inspired to propose an Open Space later in the week in which he presented quite different ways to deal with issues such as &amp;quot;process smells.&amp;quot; Pierluigi and I had several long conversations during the week about coaching styles, techniques, and tools. Ultimately I suggested that he and I enter into a &lt;em&gt;peer mentoring&lt;/em&gt; relationship to help each other grow as coaches, and he agreed.  &lt;/p&gt; &lt;p&gt; I learned about the peer mentoring idea from &lt;a href=&quot;http://blog.nayima.be/&quot;&gt;Pascal van Cauwenbergh&lt;/a&gt; and &lt;a href=&quot;http://www.selfishprogramming.com/&quot;&gt;Portia Tung&lt;/a&gt;, although I don&amp;#39;t know whether they invented it. The idea is that two people who don&amp;#39;t work in the same company, the same industry, or even in the same country help one another with ideas, problems, and general professional growth on an ongoing basis. It&amp;#39;s a powerful idea that is starting to catch on, if only in a small way so far. For me, finding a peer mentor was an unexpected outcome of the workshop and one of the high points of the conference. &lt;/p&gt; &lt;h3&gt;Test-Driven Development Performing Art&lt;/h3&gt; &lt;p&gt; &lt;a href=&quot;http://www.linkedin.com/in/emilybache&quot;&gt;Emily Bache&lt;/a&gt; facilitated &lt;a href=&quot;http://www.codingdojo.org/cgi-bin/wiki.pl?KataWorkshop&quot;&gt;a session&lt;/a&gt; structured along the lines of a &lt;a href=&quot;http://www.codingdojo.org/cgi-bin/wiki.pl?WhatIsCodingDojo&quot;&gt;coding dojo&lt;/a&gt; whose purpose was to &lt;a href=&quot;http://www2.xp2009.org/xp2009/en/contentview.wp?contentId=CNG134&quot;&gt;demonstrate TDD&lt;/a&gt; technique for people who were new to the practice. She invited several people to prepare demonstrations in which they would pair program the kata of their choice with a focus on demonstrating and teaching TDD to those attending the session. &lt;a href=&quot;http://www.linkedin.com/in/lassekoskela&quot;&gt;Lasse Koskela&lt;/a&gt; and I were among the invited &amp;quot;performers.&amp;quot; &lt;/p&gt; &lt;p&gt; For the first demonstration, &lt;a href=&quot;http://www.linkedin.com/pub/thomas-nilsson/3/408/447&quot;&gt;Thomas Nilsson&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/in/andreaslarssonresponsive&quot;&gt;Andreas Larsson&lt;/a&gt; of &lt;a href=&quot;http://www.responsive.se/&quot;&gt;Responsive Development Technologies&lt;/a&gt; in Link&amp;ouml;ping, Sweden, demonstrated the classic &lt;a href=&quot;http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata&quot;&gt;Bowling kata&lt;/a&gt;, created by &amp;quot;Uncle&amp;quot; &lt;a href=&quot;http://butunclebob.com/ArticleS.UncleBob&quot;&gt;Bob Martin&lt;/a&gt;. At a coding kata session at XP2006, they learned the Bowling kata for the first time. They liked the idea so much that they founded Coders Dojo Sweden when they returned home. For this demonstration they used Java and JUnit with Eclipse. Since the goal was teaching rather than direct practice, Thomas did all the coding while Andreas narrated the sequence of steps for the audience. It was an effective demonstration.  &lt;/p&gt; &lt;p&gt; Next to take the stage were &lt;a href=&quot;http://www.linkedin.com/in/danilosato&quot;&gt;Danilo Sato&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/in/thekua&quot;&gt;Patrick Kua&lt;/a&gt;, who work for &lt;a href=&quot;http://www.thoughtworks.co.uk/&quot;&gt;ThoughtWorks UK&lt;/a&gt;. Danilo is originally from Brazil, where he founded the Sa&amp;otilde; Paulo dojo after participating in Emily&amp;#39;s dojo session at XP2007. They did a demonstration using cucumber and ruby with rspec. It was a nice demonstration of storytest-driven development (with cucumber) and behavior-driven development (with rspec), and also showed how rapidly a working application can be produced with ruby. Their development environment was TextMate on Mac OSX. The only criticism from the audience was that after writing the initial story with cucumber, they never closed the loop by going back to cucumber to show a green acceptance test.  &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://www.linkedin.com/in/thomassundberg&quot;&gt;Thomas Sundberg&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/pub/tobias-anderberg/4/651/8b6&quot;&gt;Tobias Anderberg&lt;/a&gt; of &lt;a href=&quot;http://www.agical.se/&quot;&gt;Agical&lt;/a&gt; in Stockholm, Sweden, did the third demonstration. (I really like one of Agical&amp;#39;s slogans: &amp;quot;Software is developed by people, not resources.&amp;quot;) They used a new kata they created themselves in which the goal is to parse text files that represent blackjack hands as part of a program to train a neural network to play the game. They worked pretty fast, and at one point the audience had to ask them to pause and explain what was going on. Apart from that, it was an interesting idea and a bit different from the usual. Their performance generated some interesting discussions about test isolation and unit test scope. &lt;/p&gt; &lt;p&gt; Lasse and I were last on the program. Because the goal of the session was to demonstrate TDD technique rather than just to practice katas, we decided to do something a little different. We started with a &amp;quot;legacy&amp;quot; scenario and worked on a User Story to make an enhancement to the legacy system. We practiced our &amp;quot;project&amp;quot; using Java with JUnit on eclipse. Later we thought it would be cool to show &lt;a href=&quot;http://www.threeriversinstitute.org/junitmax/subscribe2.html&quot;&gt;JUnitMax&lt;/a&gt;, an extension to JUnit that runs tests automatically on every save. After the session started, but before we were scheduled to go to the front, Lasse told me JUnitMax had maxed out his machine&amp;#39;s memory. Maybe that&amp;#39;s why they call it JUnitMax. ;-) Anyway, at the very last moment we decided to run the demonstration with &lt;a href=&quot;http://www.jdave.org/&quot;&gt;JDave&lt;/a&gt;, a BDD tool for Java. It&amp;#39;s an Open Source project hosted on &lt;a href=&quot;http://www.laughingpanda.org/&quot;&gt;Laughing Panda&lt;/a&gt;, the Open Source incubator supported by Lasse&amp;#39;s employer, &lt;a href=&quot;http://www.ri.fi&quot;&gt;Reaktor Innovations&lt;/a&gt; in Helsinki, Finland.   &lt;/p&gt; &lt;p&gt; Since I was unfamiliar with JDave, we decided to follow Thomas&amp;#39; and Andreas&amp;#39; lead and have the same person at the keyboard throughout our demonstration. As we were getting started, I mentioned to the audience that I didn&amp;#39;t know JDave, but I thought the product had a great name. It&amp;#39;s a good tool. It uses intuitive BDD syntax and it&amp;#39;s easy to create fixtures. JDave also incorporates JMock 2, so when you need a mock you&amp;#39;ve got a mocking framework under your fingers already. Lasse did the driving and I did more than half the talking.  &lt;/p&gt; &lt;p&gt; Our &amp;quot;legacy&amp;quot; scenario was designed to keep things light and fun. We assumed a product called Emily&amp;#39;s Server was in production. Emily&amp;#39;s Server handled arbitrary client requests in one of the world&amp;#39;s oldest industries. Emily was concerned that transaction durations were highly variable. In our scenario, Emily had given us a Story Card that read as follows: &amp;quot;As Emily, I want transaction durations to be long enough that I will be fully satisfied.&amp;quot; That got a nice laugh from the group, including Emily, who did not know in advance that we were going to do this. Using a BDD approach and making borderline-appropriate comments along the way, we added code to filter transactions and calculate their duration. In addition to demonstrating BDD and JDave, we showed a technique to isolate unit tests from the system clock.  &lt;/p&gt; &lt;p&gt; At that point I held up the Story Card (which was actually blank, of course) and said to Lasse that Emily had neglected to specify acceptance criteria. I asked her how long a transaction had to be in order to satisfy her fully. Group laugh. She said, 30 minutes. I protested that we were &amp;quot;only mortal men,&amp;quot; and asked her to think of something in the range of seconds. Another group laugh. She said, 30 seconds. Lasse asked her if it could be 20. I told him to take his vitamins, and we continued the demonstration, adding code to support a &amp;quot;broadcast notification of satisfaction&amp;quot; whenever a transaction met or exceeded a duration of 30 seconds. Not exactly a kata, but then again, it wasn&amp;#39;t exactly a dojo. &lt;/p&gt; &lt;p&gt; Emily was a really good sport about it. She went along with the theme as if it had been scripted. Afterwards, &lt;a href=&quot;http://www.linkedin.com/pub/charlie-poole/0/331/677&quot;&gt;Charlie Poole&lt;/a&gt; stopped by to say, &amp;quot;I&amp;#39;m glad to see metaphor isn&amp;#39;t dead.&amp;quot; I replied, &amp;quot;Not dead; just badly bruised!&amp;quot; &lt;/p&gt; &lt;h3&gt;Business Value Game&lt;/h3&gt; &lt;p&gt; &lt;a href=&quot;http://blog.nayima.be/&quot;&gt;Pascal van Cauwenbergh&lt;/a&gt; and &lt;a href=&quot;http://wiki2go.tryx.be/FrontPage.html&quot;&gt;Vera Peeters&lt;/a&gt; are quite creative about developing games that teach agile and lean principles &lt;a href=&quot;http://www.experientiallearning.ucdavis.edu/&quot;&gt;experientially&lt;/a&gt;. An interesting game that they&amp;#39;ve been testing out in between sessions at conferences over the past several months is the &lt;a href=&quot;http://www.xp.be/businessvaluegame.html&quot;&gt;Business Value Game&lt;/a&gt;. I was never able to play along due to schedule conflicts, but I&amp;#39;ve been interested in the game. The game is provided under a Creative Commons license, so you can download and print the materials and run the game yourself. The only additional supplies you will need are a few dice. I suppose if they can figure out a way to download solid objects, the dice will become available online, as well. &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://www.linkedin.com/in/artemmarchenko&quot;&gt;Artem Marchenko&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/in/vascoduarte&quot;&gt;Vasco Duarte&lt;/a&gt; were scheduled to run the game at this conference, but Vasco was unable to go. I was very pleased when Artem asked me to fill in. Sorry to miss Vasco, but I had been wanting to learn to facilitate the game, and this was a fine opportunity. I think the game will be helpful at my present client, so the timing was very good.   &lt;/p&gt; &lt;p&gt; Although we had only seven players, it was enough for two teams and the game went fairly well &amp;mdash; despite a couple of n00b mistakes I made in advising the players about the rules. It&amp;#39;s a very well thought-out game that brings out various aspects of work prioritization and scheduling, release planning, balancing return against cost, practicing continuous improvement, and managing the happiness of multiple customers while working with limited delivery capacity. To get all that from a relatively simple and enjoyable table game required a certain amount of creative genius on the part of Pascal and Vera. All teams have the same work to deliver under the same conditions, yet no two teams achieve the same result because they take different strategies and make different trade-offs as they go along. Artem did a fantastic job setting everything up, and the players all said they got a lot of value from the experience. I&amp;#39;m looking forward to running the game in future. &lt;/p&gt; &lt;h3&gt;The New New NEW! Product Development Game&lt;/h3&gt; &lt;p&gt; This is a conference that is mainly for experienced practitioners and researchers. As such, most sessions are filled with peers, and they tend to take the form of an interactive group effort rather than an expert teaching a group of novices. Many of us take the opportunity to run new material so that we can get knowledgeable feedback from participants. One example was &lt;a href=&quot;http://www2.xp2009.org/xp2009/en/contentview.wp?contentId=CNG128&quot;&gt;this game&lt;/a&gt;, created by &lt;a href=&quot;http://www.linkedin.com/in/marcevers&quot;&gt;Marc Evers&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/in/willemvandenende&quot;&gt;Willem van den Ende&lt;/a&gt;, agile consultants in the Netherlands.  &lt;/p&gt; &lt;p&gt; The idea is to have different teams work through the same project using different agile techniques to explore how the techniques differ. Marc and Willem prepared a fairly comprehensive set of story cards for a hypothetical development project, as well as cards representing events that might occur during a project, variations in velocity, team member absences, and other factors. We divided into two teams and stepped through the project using &lt;a href=&quot;http://agileproductdesign.com/presentations/user_story_mapping/index.html&quot;&gt;user story mapping&lt;/a&gt;, &lt;a href=&quot;http://www.xpday.net/Xpday2007/session/DimensionalPlanning.html&quot;&gt;dimensional planning&lt;/a&gt;, and &lt;a href=&quot;http://leansoftwareengineering.com/2007/08/29/kanban-systems-for-software-development/&quot;&gt;kanban&lt;/a&gt;.  &lt;/p&gt; &lt;p&gt; The results were promising, although the game needs further development. It turns out that user story mapping and dimensional planning are pretty similar. There isn&amp;#39;t much to discover about differences between them. In general, we seemed to move through the cards faster with the kanban system, but there was no sense of the big picture. The other models gave us a clear view of the relative business value of each story. I think what was missing is not a failing of kanban as such, but that because of the way the game was designed there was no planning with the kanban variant. The development team just worked through the cards in the order presented. User story mapping and dimensional planning are techniques for determining which features to build to deliver the most business value in the shortest time. This was missing from the kanban technique as presented in the game. In fact, I see no reason why either of those planning techniques couldn&amp;#39;t be used in conjunction with a kanban development process. The setup also didn&amp;#39;t bring out certain key elements of the kanban approach, including customer pull, controlling work in process, and stop-the-line events.  &lt;/p&gt; &lt;p&gt; In my opinion, it would be interesting to set up the game for new product development and for ongoing incremental enhancement of an existing product. If the kanban setup is modified so that there are more states between &amp;quot;started&amp;quot; and &amp;quot;done,&amp;quot; and playing cards are added depicting situations that drive decisions about changing WIP limits or stopping the line, we may be able to get a truer sense of the differences among the various agile approaches represented in the game.  &lt;/p&gt; &lt;h3&gt;Telling Your Stories: Why Stories Are Important For Your Team&lt;/h3&gt; &lt;p&gt; This was another new workshop that was run, in part, to get feedback from participants and to work out the kinks. &lt;a href=&quot;http://www.linkedin.com/ppl/webprofile?action=vmi&amp;amp;id=589080&quot;&gt;Diana Larsen&lt;/a&gt; and &lt;a href=&quot;http://www.linkedin.com/profile?viewProfile=&amp;amp;key=8469917&quot;&gt;Johanna Hunt&lt;/a&gt; created this workshop to explore techniques for organizational storytelling as a way to bring out issues and assumptions that may not be obvious or that may be difficult for people to discuss openly, and to help people understand what is really going on in their organizations. They used tools such as the &lt;a href=&quot;http://www.thecards.com/&quot;&gt;Archetype Storytelling Cards&lt;/a&gt; and &lt;a href=&quot;http://www.atlas-games.com/onceuponatime/index.php&quot;&gt;Once Upon A Time Cards&lt;/a&gt; to give participants a starting point and some guidance in how to craft stories.  &lt;/p&gt; &lt;p&gt; The process was left very open-ended, and teams were free to take the exercise in any direction that made sense to them. They wrote their ideas on sticky notes which were then posted under specific categories and discussed by the entire group. I&amp;#39;m not quite sure what was achieved, but my impression is that the workshop needs a longer time slot. I felt as if we were only getting started when the clock ran out. &lt;/p&gt; &lt;p&gt; Johanna will be running this workshop again at &lt;a href=&quot;http://www.agile2009.org/node/1989&quot;&gt;Agile2009&lt;/a&gt; with &lt;a href=&quot;http://www.linkedin.com/profile?viewProfile=&amp;amp;key=739406&quot;&gt;Rachel Davies&lt;/a&gt;. I&amp;#39;m definitely planning to participate again and see if we can take the idea further. It&amp;#39;s a compelling concept.  &lt;/p&gt; &lt;h3&gt;Keynote: The Cultural Assumptions Behind Agile Software Development (Mary Poppendieck)&lt;/h3&gt; &lt;p&gt; I&amp;#39;ve yet to see a talk by &lt;a href=&quot;http://www.linkedin.com/profile?viewProfile=&amp;amp;key=3694647&quot;&gt;Mary&lt;/a&gt; that I didn&amp;#39;t like. This one was a really interesting survey of general cultural differences around the world, and how the values and principles of the &lt;a href=&quot;http://www.agilemanifesto.org&quot;&gt;Agile Manifesto&lt;/a&gt; might affect organizations and teams in regions that have quite different cultural characteristics than the United States around the turn of the century. The basis of the cross-cultural comparisons was the well-known work of &lt;a href=&quot;http://www.geert-hofstede.com/&quot;&gt;Geert Hofstede&lt;/a&gt;.   &lt;/p&gt; &lt;p&gt; Mary showed how the assumptions underlying the Manifesto came from American culture in response to problems typical in American companies; problems that stemmed from American cultural characteristics. She proposed that the first value statement in the Manifesto, which emphasizes &lt;em&gt;individuals and their interactions&lt;/em&gt; over &lt;em&gt;processes and tools&lt;/em&gt;, reflects the American cultural emphasis on individualism. According to Hofstede&amp;#39;s Cultural Dimensions, the United States, United Kingdom, and Australia score very high in &amp;quot;individualism.&amp;quot; This may be less relevant in a culture that emphasizes collective values more strongly, such as that of the Scandinavian countries. She presented a number of other very interesting examples, such as the differences between Japanese and American decision-making and project execution patterns, that give agile values and principles different meanings in different cultural contexts. At an international conference like this one, the subject was especially relevant. &lt;/p&gt; &lt;h3&gt;Keynote: What they don&amp;#39;t teach you about software at school: Be Smart! (Ivar Jacobson)&lt;/h3&gt; &lt;p&gt; I was very interested to see and hear Jacobson in person, since he is one of the legendary figures in the history of software development. I was pleased when he had some problems getting his presentation to show up on the screens, since that usually means the speaker has to work without slides. That&amp;#39;s when you can really tell whether the speaker knows the subject well. Unfortunately, Jacobson told a couple of jokes while waiting for the technician to get the slide show working. Perhaps he was keen to show the clever little animations he had built into many of the slides. It was good that the slides had some entertainment built in, because the content was surprisingly light. The whole thing seemed like a canned corporate sales presentation for his training and consulting services. This really wasn&amp;#39;t the right audience for that sort of thing. Disappointing. &lt;/p&gt; &lt;h3&gt;Keynote: A Journey Beyond budgeting - &amp;quot;Because the future ain&amp;#39;t what it used to be&amp;quot; (Bjarte Bogsnes)&lt;/h3&gt; &lt;p&gt; &lt;a href=&quot;http://www.linkedin.com/profile?viewProfile=&amp;amp;key=37237265&quot;&gt;Bjarte Bogsnes&lt;/a&gt; is Head of Performance Management Development at &lt;a href=&quot;http://www.statoilhydro.com/en/&quot;&gt;StatoilHydro&lt;/a&gt;, a Norwegian petroleum company with operations in some 40 countries. He has developed an approach to management that dispenses with the annual budget cycle in favor of pushing decisions out through the organization and enabling business decisions to be made at the last responsible moment. He calls the approach Beyond Budgeting, and it has become something of a &amp;quot;movement&amp;quot; in industry. His book, &lt;a href=&quot;http://www.amazon.com/Implementing-Beyond-Budgeting-Unlocking-Performance/dp/0470405163&quot;&gt;Implementing Beyond Budgeting: Unlocking the Performance Potential&lt;/a&gt;, describes the approach more fully. In his talk he explained with clarity and panache just why traditional management assumptions and practices don&amp;#39;t work, and why the approach now in place at StatoilHydro and several other companies does work. &lt;/p&gt; &lt;p&gt; Bjarte&amp;#39;s keynote talk was on Friday morning, and in the afternoon he ran a tutorial about the Beyond Budgeting approach. Later, about 35 of us went to dinner together away from the hotel, and I happened to sit across the table from him. We continued the discussion of Beyond Budgeting and other issues, along with several other people seated nearby. He is very passionate and enthusiastic about these ideas, to spend an entire day talking about little else!  &lt;/p&gt; &lt;p&gt; I must say that I think these are game-changing ideas. Bjarte is not a technologist and his concept is not based on agile software development; it&amp;#39;s purely pragmatic business thinking that supplies key pieces of the puzzle beyond the scope of agile methods and outside the professional experience of agile practitioners. Moreover, the ideas have been implemented and proven successful in several large companies. The ideas are important for creating organizations that can embrace and facilitate lean and agile thinking seamlessly.  &lt;/p&gt; &lt;h3&gt;...and the rest of it&lt;/h3&gt; &lt;p&gt; As is often the case at conferences with such an elite level of participants, the conversations in between scheduled activities and in the evenings proved to be among the most informative and enriching experiences of the week. Surrounded by thoughtful, intelligent people who care deeply about their work, in an environment that all but forced me to socialize more actively than I normally do (since there was no practical internet connection and no working air conditioning), I couldn&amp;#39;t avoid learning something useful every day.  &lt;/p&gt; &lt;p&gt; The funny thing is that my wife strongly and repeatedly advised me to take advantage of the opportunity to eat mass quantities of delicious Italian food, since Italy is famous for its food. In the remote location where the conference was held, there just weren&amp;#39;t many choices for dining. The Swedish barbecue the Agical guys hosted on Thursday evening turned out to be the best meal of the week, by far. The conference was held in the middle of nowhere. I asked Charlie Poole about that on the last day, and he explained it was a tradition of this particular conference to choose venues that are off the beaten path. Personally, I think there&amp;#39;s a lot to be said for the beaten path. A selection of restaurants, for example. And reliable internet service. And cell towers. And steady water pressure and temperature. Things like that. Nothing too important, I guess. &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1913027</comments>
	
      <pubDate>Mon,  1 Jun 2009 21:19:35 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>XP2009 is next week!</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1910053</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1910053</guid>

      <description>&lt;br&gt;&lt;p&gt; I&amp;#39;m excited about next week&amp;#39;s &lt;a href=&quot;http://www2.xp2009.org/xp2009/&quot;&gt;XP 2009&lt;/a&gt; conference in Sardinia. I really like the practical, hands-on sort of events much more than the talking-head events. XP 2009 will feature 20 workshops and 15 tutorials and plenty of Open Space opportunities. There&amp;#39;s also an academic side to the conference for which 22 papers have been accepted.  &lt;/p&gt; &lt;p&gt; I&amp;#39;ll be facilitating a workshop on &lt;a href=&quot;http://www2.xp2009.org/xp2009/en/workshops.wp&quot;&gt;process smells and root cause analysis&lt;/a&gt;. A process smell is an observable symptom that may (or may not) indicate an underlying problem. Root cause analysis can help us determine whether there is a problem and, if so, what sort of corrective action is appropriate. We&amp;#39;ll be looking at simple, &lt;a href=&quot;http://learningforsustainability.net/tools/complex.php&quot;&gt;complicated, and complex&lt;/a&gt; problems and applying different tools to each type, including &lt;a href=&quot;http://en.wikipedia.org/wiki/5_Whys&quot;&gt;Five Whys&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Ishikawa_diagram&quot;&gt;Ishikawa Diagram&lt;/a&gt;, and &lt;a href=&quot;http://www.satirworkshops.com/en/doe&quot;&gt;Diagram of Effects&lt;/a&gt;. Some smells are pretty obvious: &amp;quot;Defect count is rising over time.&amp;quot; Others might not smell very bad at all, at first sniff: &amp;quot;The team never experiences any difficulties at all in meeting its commitments.&amp;quot; &lt;/p&gt; &lt;p&gt; I&amp;#39;ll also be joining &lt;a href=&quot;http://www.linkedin.com/in/lassekoskela&quot;&gt;Lasse Koskela&lt;/a&gt; to participate in &lt;a href=&quot;http://www.linkedin.com/in/emilybache&quot;&gt;Emily Bache&lt;/a&gt;&amp;#39;s &lt;a href=&quot;http://codingdojo.org/cgi-bin/wiki.pl?KataWorkshop&quot;&gt;Kata Workshop&lt;/a&gt;. Four pairs will each demonstrate TDD for 30 minutes, followed by questions and discussion after each round. This sort of thing is always a lot of fun. I don&amp;#39;t get a chance to pair with Lasse very often since one of us lives on the wrong continent. (We&amp;#39;re still working out which of us that is.) &lt;/p&gt; &lt;p&gt; There are quite a few compelling sessions on the &lt;a href=&quot;http://www2.xp2009.org/xp2009/en/programme.wp&quot;&gt;program&lt;/a&gt;. What may not be clear from the name of the conference is the fact that the content spans the range of leading-edge ideas and emerging practices in the software industry, and covers all aspects of the work from ground-level software engineering practices to process frameworks to human factors. The program includes familiar topics like Scrum and XP and newer, lean-inspired topics like Kanban covered in practical, hands-on tutorials and workshops facilitated by industry thought leaders like David Anderson, Mary Poppendieck, Joshua Kerievsky, and many more. It promises to be an enriching experience for everyone. I hope to see you there! &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1910053</comments>
	
      <pubDate>Thu, 21 May 2009 10:52:39 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
    <item>
      <title>Measuring the soft stuff to encourage desired behavior</title>
      <link>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1908428</link>
      <guid>http://dnicolet1.tripod.com/agile/index.blog?entry_id=1908428</guid>

      <description>&lt;br&gt;&lt;p&gt; I met several very interesting people at last night&amp;#39;s APLN meeting. I don&amp;#39;t mean to slight anyone by failing to mention all the names, but I do want to mention one: David Schmaltz, whose &lt;a href=&quot;http://www.pureschmaltz.com/&quot;&gt;online writing&lt;/a&gt; I have enjoyed for some time. He made a number of insightful comments during the presentation, and I picked up a couple of ideas I&amp;#39;d like to put into practice as soon as possible on my current engagement. We chatted after the session and he offered some practical pointers for using the ideas effectively.  &lt;/p&gt; &lt;p&gt; One of the hardest things to measure is &lt;em&gt;customer satisfaction&lt;/em&gt;. David mentioned the book, &lt;em&gt;The Ultimate Question&lt;/em&gt;, by &lt;a href=&quot;http://www.theultimatequestion.com/theultimatequestion/home.asp&quot;&gt;Fred Reichheld&lt;/a&gt;. This is a well-known book already, but it was news to me as of yesterday. I guess that shows you how wisely I spend my spare time. Anyway, the question itself is this: How likely is it that you would recommend this company to a friend or colleague? The answer is given as an integer in the range 1-10, where a low value indicates a low likelihood of giving a recommendation, and a high value indicates a high likelihood. It struck me that a variation on this question might be a good way to get feedback from a team&amp;#39;s customer: How likely is it that you would recommend this team to deliver software for a colleague who runs a business unit like yours? If we asked for this feedback every few weeks, we could track a trend that shows a team&amp;#39;s success in satisfying their customer.  &lt;/p&gt; &lt;p&gt; I&amp;#39;m thinking of the Ultimate Question as a motivational metric, in context. The client organization is such that there are three layers of people involved in delivering business software internally: The business unit itself, the development team, and a middle tier of &amp;quot;connecting tissue&amp;quot; between them. Each of the three reports up a different administrative management hierarchy. The business unit views the middle tier and the development team monolithically. The development team views the business unit and the middle tier monolithically. The people in the middle feel as if they are stuck between a rock and a hard place. So, anything that can encourage these people to behave in the spirit of the &amp;quot;whole team&amp;quot; concept will be useful. If the customer knows she can provide feedback by answering the Ultimate Question, she may actually show up for iteration retrospectives, and by virtue of being present, she might become more directly involved with the project. If the development team and the middle tier know they are viewed monolithically by the customer, they may feel they are in the same boat and collaborate more closely. And so forth across the model, from each point of view. We&amp;#39;ll see how it goes.   &lt;/p&gt; &lt;p&gt; The second idea I took from David is the notion of measuring the &lt;em&gt;reliability of promises&lt;/em&gt;. This may be used as a leading indicator in the category of Team metrics. It may also be useful in helping the team embrace the idea of making commitments. There is a tendency for people to say &amp;quot;I&amp;#39;ll try to get that done by Friday,&amp;quot; which as &lt;a href=&quot;http://www.quotedb.com/quotes/42&quot;&gt;every Star Wars fan knows&lt;/a&gt;, is a recipe for sitting down and giving up. The word &amp;quot;commitment&amp;quot; makes the team members nervous. They fear they will be judged or punished or shamed if they fail to deliver on a commitment. They prefer to say &amp;quot;I&amp;#39;ll try&amp;quot; because the cost of failure appears lower, as far as they can see. David&amp;#39;s definition of a reliable promise offers a clear framework for making and keeping commitments that seems non-threatening. He explained that a reliable promise is either kept or is reniged for good reason as soon as the promiser knows it can&amp;#39;t be fulfilled. So, if on Monday I promise to deliver X to you by Friday, and by Wednesday I have learned more about the problem and I realize it won&amp;#39;t be possible, it&amp;#39;s my responsibility to inform you immediately and explain why X will not be delivered by Friday. There are two ways to keep a promise: Either deliver as promised, or renig on the promise as soon as you know it can&amp;#39;t be done, without delay. By counting the number of times people behave this way, we can encourage desired behavior on the part of the team. This one may be perceived as a little bit squishy by the team, so I don&amp;#39;t know how they will take to it. We&amp;#39;ll see. &lt;/p&gt;</description> 
      <comments>http://dnicolet1.tripod.com/agile/control.comment?a=render&amp;blog_id=1048988&amp;entry_id=1908428</comments>
	
      <pubDate>Fri, 15 May 2009 08:24:12 -0500</pubDate>
      <source url="http://dnicolet1.tripod.com/agile/rss.xml">effective software development</source>     
    </item>
    
  </channel>
</rss>

  






