<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Odd-e Blogs</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/" />
    <link rel="self" type="application/atom+xml" href="http://blog.odd-e.com/atom.xml" />
    <id>tag:blog.odd-e.com,2010-05-18:/1</id>
    <updated>2012-01-26T13:53:31Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.11</generator>

<entry>
    <title>Take the problem to team - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2012/01/take-the-problem-to-team.html" />
    <id>tag:blog.odd-e.com,2012:/yilv//6.119</id>

    <published>2012-01-26T13:32:44Z</published>
    <updated>2012-01-26T13:53:31Z</updated>

    <summary>Self-organizing team is an essential element in Scrum. ScrumMaster has the responsibility to help team become self-organizing. Agile coaches often give the suggestion that you should take the problem to team. While this is a good suggestion, it is too...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<div>Self-organizing team is an essential element in Scrum. ScrumMaster has the responsibility to help team become self-organizing. Agile coaches often give the suggestion that you should take the problem to team. While this is a good suggestion, it is too much simplified thus not used effectively in practice. I'd like to elaborate the key aspects and ScrumMaster's role in this approach.</div><div><br /></div><div><ul><li><b>Define the problem</b></li></ul><div><div>It is too often for us to quickly jump into solutions, while it is much more effective to sell the problem than to sell the solution. Slow down to first define the problem. At which boundary should the problem be defined? That is the same boundary you want to enable team's self-organizing. Why does the problem matter to the team? Make the problem clearly seen by the team.</div></div><div><br /></div><ul><li><b>Who is "the team"?</b></li></ul></div><div>When taking the Scrum context, it is the team who is self-organizing. That's the target we bring the problem to. However, it's beyond that if we think of self-organizing as a different thinking paradigm than command and control. What if the problem relates to two teams? Then "the team" is two teams combined. Therefore, it's really the group of people who should self organize to solve the problem.</div><div><br /></div><div>The problem and the team are coupled. Let me give you one example from my recent coaching experience. The organization was fighting for getting the release out. The overall situation was challenging. The number of bugs found in system testing, which is still not part of their Scrum team's definition of Done, was high, and system testing was still in progress. Different Scrum teams were working separately to fix bugs, and system testing team was executing test cases according to the plan. I observed that those teams, Scrum teams and system testing team, did not sufficiently work together. Only few people had the idea about where the release was heading. The problem in this situation was the challenge to get release out, while all teams were the people who should work together to face this challenge.&nbsp;</div><div><br /></div><div><ul><li><b>Take the problem to team</b></li></ul></div><div>After you define the problem and find the team to work on it, the next step is to enable them to work together. It could be as easy as sending out an invitation. Or you have to first get their buy-in for the problem and the need to collaborate with others in solving the problem. It is worth the time to gradually build the shared understanding and agreement about the problem among the people, before taking it to them for solutions.</div><div><br /></div><div><ul><li><b>Facilitate collaboration</b></li></ul></div><div>Once the whole team is ready to work on solutions, your job is to facilitate the collaboration. Try simple collaboration process as described in the book <a href="http://www.amazon.com/Stand-Back-Deliver-Accelerating-Business/dp/0321572882/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1327579998&amp;sr=1-1">"Stand Back and Deliver"</a>, and study books such as <a href="http://www.amazon.com/Collaboration-Explained-Facilitation-Software-Project/dp/0321268776/ref=sr_1_1?ie=UTF8&amp;qid=1327579827&amp;sr=8-1">"Collaboration Explained"</a>&nbsp;and <a href="http://www.amazon.com/Facilitators-Participatory-Decision-Making-Jossey-Bass-Management/dp/0787982660/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1327579896&amp;sr=1-1">"Facilitator's Guide to Participatory Decision-Making"</a>&nbsp;for skill development in this area.</div><div><br /></div><div><ul><li><b>Coaching for depth and breadth</b></li></ul></div><div>During the whole process, ScrumMaster plays a coaching role. In the beginning, you may see the problem, define it and bring it to the team. Gradually, you coach more people in seeing and defining the problems by themselves. When they start to collaborate, the greatness of the solutions still depends on their capability in problem solving. You coach them in analyzing root causes and designing experiments to verify. There are two main focuses in the coaching - understand the problem within the broader system, and analyze the deeper causes. PDCA, systems thinking, root cause analysis techniques, even scientific method are the great sources of learning.</div><div><br /></div><div>Self-organizing is not only a team element, but also at the organizational level. Therefore, the approach is actually not only for ScrumMasters, but also for managers in Agile organization. Yes, managers as coaches!</div>]]>
        
    </content>
</entry>

<entry>
    <title>We don&apos;t have emergent requirements - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2012/01/we-dont-have-emergent-requirements.html" />
    <id>tag:blog.odd-e.com,2012:/yilv//6.118</id>

    <published>2012-01-01T09:52:23Z</published>
    <updated>2012-01-05T02:47:48Z</updated>

    <summary>I worked with an organization that adopted Scrum for months. Their traditional release milestone for &quot;content frozen&quot; still kept, and I found that they had assigned all features to teams in sprints on that milestone. I asked, &quot;wouldn&apos;t it be...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica">I worked with an organization that adopted Scrum for months. Their traditional release milestone for "content frozen" still kept, and I found that they had assigned all features to teams in sprints on that milestone. I asked, "wouldn't it be change on requirements while you are doing the release?" They answered, "we don't have emergent requirements."</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">One important characteristic for good product backlog is being emergent. While different markets have different rate of changes, I doubt that some market is so static that there is no emergent requirement at all.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Scrum provides a framework to inspect and adapt. Even though that doing inspection and adaptation inside R&amp;D already helps, lack of emergent requirements prevents us from reaping its full benefit. I'd like to explore this problem and possible leverages from two areas.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><b>1. Disconnection between business and R&amp;D</b></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">This disconnection is still one major source for the problem.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<ul>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Product Owner from R&amp;D</span></li></ul>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Product Owner should be business oriented, while we see that R&amp;D oriented Product Owners are still prevalent. Their connection with real customers and markets is weak, accordingly, they lacked the insights and abilities to come up with emergent requirements to increase customer value. The synergy by having business people and R&amp;D people work together is missing.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Product Owner role responds to the need to bring business and R&amp;D together, since that's essential to develop great products. If Product Owner has more R&amp;D background than business background, it may not be a show stopper, but it certainly means that this Product Owner needs to spend significant efforts towards business and customer side.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<ul>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Contract game continues</span></li></ul>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">In some organizations, they are able to get Product Owner from business side, e.g. the product managers. While they are made as Product Owner, the mindset of predictive planning and the practice of contract game continues. The most obvious sign is the very existence of milestone for "content frozen" and release commitment. Traditionally, we treat changes as evil, thus, do strict change control. Same mindset continues even though we have adopted Scrum, which provides the mechanism for us to inspect and adapt on sprint basis. Release commitment enforced from business to R&amp;D is a sure sign of low trust and lack of collaboration. All of those hinder the business and R&amp;D to work together and capture emergent requirements.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">It is best to stop doing those milestones any more, though you may first work on the possibility of committing later and committing in parts at different time.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<ul>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Sprint review</span></li>
</ul>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px">Most of sprint review I see is focused too much on the acceptance by the Product Owner, rather than focusing on how to get valuable feedback from customers and stakeholders so that requirements emerge.<span style="letter-spacing: 0.0px"></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">We shall first consider whom to invite to attend the sprint review, besides Scrum team (Product Owner, Scrum Master and team). General principle is to invite the people who would be able to give valuable feedback and help make effective inspection and adaptation. It is great if we can invite real customers into sprint review, if not, consider those who are working closely with customers thus have more insights about what to build. It is unlikely that those people are in R&amp;D, unless we are developing products for R&amp;D people. Think of product managers, marketing and sales people, technical support, etc.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Having the right people helps new requirements emerge, and so does the collaboration process. Having the demo from R&amp;D perspective only makes customers and business people bored. Without good facilitation on the conversation, the valuable comments may just be overlooked.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><b>2. R&amp;D's ability to change</b></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">I see interesting dynamic between ability to change and the need for change. They are interdependent.</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><img alt="need and ability to change.jpg" src="http://blog.odd-e.com/yilv/need%20and%20ability%20to%20change.jpg" width="358" height="149" class="mt-image-none" style="" /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">When you have good technical ability to change with low cost, you are more open to the need for change. That openness creates more need for change, in turn, you have more motivation to improve your technical ability. That's a virtuous cycle.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">On the other hand, when you don't have good technical ability, you explicitly or implicitly discourage the need for change. Then, without strong need, you lack the motivation to improve your technical capability to change with low cost. That's a vicious cycle.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">It's not rare to hear comments such as "but, our customers don't need release that often, why do we need the ability to have short releases?" Sounds similar to "but, we don't have emergent requirements, why do we need to inspect and adapt?"?</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">If you are able to find other motivations (e.g. quality, predictability) to improve your technical ability to change, after your ability improves, you will likely see more emergent requirements.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><b>End note</b></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Fred Brooks said, "The hardest part of software development is figuring out what to build." It's suspicious that we don't have emergent requirements. Try to look at the above areas, your emergent requirements may emerge:-)</span></p><div><span style="letter-spacing: 0.0px"><br /></span></div><p></p> ]]>
        
    </content>
</entry>

<entry>
    <title>Product Owner is a new role - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/11/product-owner-is-a-new-role.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.117</id>

    <published>2011-11-16T12:36:30Z</published>
    <updated>2011-12-28T08:21:21Z</updated>

    <summary>It is a well-known but still common mistake that many organizations during their Scrum transformation try to map their existing roles such as project managers into Scrum Master role. Recently, i notice that same happens to PO role as well....</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<div>It is a well-known but still common mistake that many organizations during their Scrum transformation try to map their existing roles such as project managers into Scrum Master role. Recently, i notice that same happens to PO role as well. Not realizing that PO is a new role is as bad as not realizing that SM is a new role. Let's elaborate why.</div><div><br /></div><div>Starting from PO's responsibility. Here's PO's role definition from Scrum source.</div><div><br /></div><div><ul><li>Should have a vision for the product.</li><li>Defines the features of the product, decides on release date and content.</li><li>Is responsible for the profitability of the product (ROI).</li><li>Prioritizes features according to market value.</li><li>Can change features and priority every sprint.</li><li>Accepts or rejects work results.</li></ul></div><div><br /></div><div>The keyword in the above list is ROI, others are necessary but more as means to great product and maximized ROI. When thinking of who shall be PO, I believe that passion for product is the first consideration, since that is the foundation.</div><div><br /></div><div>A natural but undesired approach to find PO during Scrum transformation is trying to map the existing role to PO role. Let's look at a few common cases of mapping.</div><div><br /></div><div><b><u>Mapping System Engineer (Architect/Business Analyst)</u></b></div><div><br /></div><div>System engineer is a typical role in telecom industry. It is close to a combination of Business Analyst and Architect, working on both requirement analysis and architecture design. The most appealing reason for them to take on PO role is that they have been working on requirements, while PO clarifies requirements with team too. The close relationship with customers makes it an advantage for them to be customer representative. They may innovate on some product aspects, though it may lack the big context.</div><div><br /></div><div>However, there are drawbacks on this mapping. System engineers are often technology savvy. Even when they work with customers, they tend to push technology solutions, rather than truly listen to customers and understand their problems first. They traditionally care less about ROI, which makes them perfect the system more than necessarily, without creating more value for customers and realizing the cost effect. PO leads release planning and management, while it has traditionally been program/project manager's responsibility. Few system engineers already know how to do that. In waterfall mode, system engineers are usually located in a single functional team, and they communicate via documentation. Chances are, they continue by writing user stories and handing over to team, which breaks the collaboration spirit in Agile development.</div><div><br /></div><div><b><u>Mapping Program/Project Manager</u></b></div><div><br /></div><div>Program/Project manager already does release management, which makes them good candidate for PO in this regard. They normally have better sense of ROI than system engineers. Their skills on risk management helps them manage the release in more predictable way.</div><div><br /></div><div>However, there are other hurdles to overcome for them. Traditional project manager is control focused. Many of them are good at command and control type of management, while PO works with self-organizing team. PO looks at the unit of PBI, sprint and team, rather than task, day and individual. Project managers need to fight with the tendency of micro-management in order to effectively work with teams. Though project managers manage releases, they focus more on execution, while PO requires the product leadership based on great understanding on customers and constant product innovation through releases.</div><div><br /></div><div><b><u>Mapping Product Manager</u></b></div><div><br /></div><div>Product managers are great source for PO. They are responsible for the profitability of the product and ROI. They work closely with customers, and execute the product leadership by managing the product roadmap and releases.</div><div><br /></div><div>The major problem for them is the traditional contract game between product management and R&amp;D. They treat release as one unit, set contract in the beginning of the release with R&amp;D, then, go away for future releases. While for PO, the constant collaboration with R&amp;D team and making ROI decisions on sprint basis is the key to reap the benefit of Agile development.</div><div><br /></div><div><b>Conclusion</b></div><div><br /></div><div>If we look at the main themes appearing in PO role - ROI, product leadership, collaborate with team, release management, really, no existing role in the traditional organization does all of these. PO is a new role! It will certainly lead to problems, if we try to map the existing role to PO role. Telling people that you are PO from now on, while they keep doing what they used to do, does not make them PO.</div><div><br /></div><div>On the other hand, people with any of the above background may become PO, with certain qualities and skills, as well as the realization that they need to transition to a new role. I have encountered Scrum transformation in several organizations, during which they introduced PO as new role and selected people with different background to fill it. It worked pretty well.</div><div><br /></div><div><br /></div><div><br /></div><div>&nbsp;</div>]]>
        
    </content>
</entry>

<entry>
    <title>Manager as ScrumMaster - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/07/manager-as-scrummaster.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.116</id>

    <published>2011-07-09T02:41:56Z</published>
    <updated>2011-08-09T08:14:13Z</updated>

    <summary>Recently, while i coach a product development organization on Scrum, i notice that they have made all former team leaders as ScrumMasters. Though this arrangement itself may not be a problem, the reason behind that decision certainly concerns me.ScrumMaster has...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<div>Recently, while i coach a product development organization on Scrum, i notice that they have made all former team leaders as ScrumMasters. Though this arrangement itself may not be a problem, the reason behind that decision certainly concerns me.</div><div><br /></div><div>ScrumMaster has challenge on leading the team, because team does not listen to what ScrumMaster says, thus ScrumMaster is not able to influence the team forward. As a solution, it grants ScrumMaster with positional power by making team leaders as ScrumMasters. What ensues is that ScrumMasters make use of positional power to get things done. Since it works temporarily, they lose the priority to develop leadership, which is the fundamental solution for their challenge. With the continuing weak leadership, they tend to rely more on positional power. It creates an addition loop.</div><div><br /></div><div>This is the typical "Shifting the burden" situation in systems thinking.</div><div><br /></div><div><img alt="Shifting the burden - Manager as ScrumMaster.jpg" src="http://blog.odd-e.com/yilv/Shifting%20the%20burden%20-%20Manager%20as%20ScrumMaster.jpg" width="434" height="331" class="mt-image-none" style="" /></div><div><div><br /></div><div>Where do we leverage in this situation?</div><div><br /></div><div><ul><li>Understand the dynamic as you are reading this:-)</li><li>Leave the fundamental solution open, and explore with relevant people together for alternative solutions for the challenges on leading team, other than using positional power.</li><li>Articulate the long-term goal on how to lead Scrum team and what kind of leadership we need.</li><li>Break the dependency on positional power, either removing it, or practicing not to use it with the help from your mentor or coach.</li></ul></div><div><br /></div><div>With the above said, i am a proponent to create the consistency between Manager and ScrumMasters for sustaining the change. I have ever promoted great ScrumMasters to managers and they took dual roles. However, it had different reasons and came with different evolution paths. Read more from <a href="http://www.odd-e.com/material/2010/012-015.pdf">We're All in This Together</a>, or attend <a href="http://program2011.agilealliance.org/event/163a1e4acfe4760870940cea1c64c4b7">my "Manager as ScrumMaster" session</a> in Agile 2011 conference, where we would explore this topic further.</div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Waterfall strikes again? -&gt; Singaporeair site s*cks - Bas Vodde</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/basvodde/2011/05/waterfall-strikes-again-singaporeair-site-scks.html" />
    <id>tag:blog.odd-e.com,2011:/basvodde//3.114</id>

    <published>2011-05-28T02:38:42Z</published>
    <updated>2011-11-03T19:58:44Z</updated>

    <summary>Singapore Airlines is one of the worlds most respected airlines. They keep winning airline awards. I happened to live in Singapore and therefore it is most easy for me to fly Singaporeair. And, I have to admit, it is one...</summary>
    <author>
        <name>Bas Vodde</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.odd-e.com/basvodde/">
        <![CDATA[<br />Singapore Airlines is one of the worlds most respected airlines. They keep winning airline awards. I happened to live in Singapore and therefore it is most easy for me to fly Singaporeair. And, I have to admit, it is one of the better airlines and I especially notice this when I fly other airlines.<br /><br />A well respected company. Known for its good service. A national company many Singaporeans are proud of. Yet, last week, they made an unbelievable F*** U*. So bad, that I'm seriously considering of starting to fly other airlines. Even though it doesn't relate to their flights but... their website.<br /><br />Last week, Singaporeair did a sudden deployment of a totally new site. Absolutely no incremental deployments, but what seems to be perhaps years of work, suddenly deployed all at ones. I have heard that the company doing this for Singaporeair is... Accenture! (couldn't find anything on the web). And it is an absolute disaster. At first, I just thought the UI was bad, but no... the whole site is bad... but that's not all. The last days <b>I have not been able to buy tickets anymore</b>, which I assume is the main purpose of the site. Every time I try to buy a ticket, I get "system error". Everything in this deployment smells like a waterfall project gone very bad. But let me dive a bit deeper.<br /><br />First, this was an all-at-once deployment, whereas it seems it would have been "easy" to do it incrementally. But lets assume that it is done "all-at-once" because of difficult technology changes. Even then, the old-site of Singaporeair was gone! Why would they run that risk and not, instead, have the old and the new site running together at the same time. Even the ISP I used for years (pair.com), they never swapped out their webmail at once, but kept the new site as a beta next to the old site. With a site where, I guess, a large part of your purchases come from, why would a company like Singapore Air run the risk of loosing that income (which they have now)?<br /><br />All-at-once deployment aside, I'm not a UI expert, but the new UI sucks enormously. Not only make the choice of colors and fonts it hard to read, also it takes me a longer to buy a ticket (the one time I succeeded) because there are en enormous amount of clicks. Also a lot of technology seems off or used wrongly, which is visible by e.g. 1Password not working anymore for payments. Not only did they change their site, but also their booking confirmation emails (WHY!?). They didn't bother to inform tripit.com about that so that all the frequent travelers using both these services are not able to combine them. UI-wise, these things ought to have been discovered with earlier review cycles (sprint reviews) as they seem so obvious. If they would have bothered to take one frequent user of the site and let them use it, it would have been obvious. Why am I so sure? Well, just google Singaporeair and new site and you'll find complains for example on <a href="http://www.businesstravelerusa.com/discussion/topic/Singapore-Airlines-new-website">BusinessTraveler</a> such as "Awful is an understatement" or <a href="http://www.australianfrequentflyer.com.au/community/singapore-airlines-krisflyer/new-singapore-air-website-30229.html">Australian Frequent Flyer Community</a> such as "Gotta say that I hate the new website." I mean, that is obvious and should have been found way earlier in the development. Not sure how this site was developed, but it smells like a pure waterfall.<br /><br />All that aside, if I could use it, I would be somewhat happy. But if I try booking a (try it!) from "Singapore" to "Salt Lake City" date of departure "August 5", date of return "August 12", I'll get:<br /><br /><div class="pageTitle">
						<h1 class="heading1">System Error</h1>
					</div>
					
						
							
							
									
									
									
										<div class="alertMsg">
										
										<h3 class="heading3">A system error has occurred. Please try again.</h3>
										
											<p>(R6HNNg!1307814381)</p>
										
										</div><br />I tried it again and again the whole week. I reported a bug even. But no luck, it seems to not be possible anymore to book a ticket with the new site. This is truly unbelievable, how could a respected company such as Singapore Air allow to deploy a website which is SO BUGGY that even the basic functionality which is the main revenue stream for the company... does not work!<br /><br />This was reported in the local newspaper: <a href="http://www.straitstimes.com/BreakingNews/Singapore/Story/STIStory_672815.html">Straights Times</a> in their article "Bumpy start foe SIA's new website". Didn't read the whole article (don't want to subscribe to straights times) but the most amazing part of the preview is the responds from Singaporeair Spokesman <b>Nicholas Ionides</b>:<br /><br />'As with any major IT project, we do expect teething problems but we 
expect to be able to iron out these issues in due course. We will 
closely monitor the website's performance, and make adjustments where 
necessary.'<br /><br />So, deploying an all-at-once, unusable, buggy and slow website in 2011 is *still* <b>expected</b>? I do not know where Nicholas has been the last 10 years, but I wouldn't expect it and find it truly shameful.<br /><br /><br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>Insights for PO during Agile transformation  - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/05/insights-for-po-during-agile-transformation.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.113</id>

    <published>2011-05-22T12:08:41Z</published>
    <updated>2011-12-28T08:56:50Z</updated>

    <summary>Recently, my former NSN colleague, Huang Hongqiang, and me reflected on the lessons learnt from Product Owner perspective during our Agile transformation. We used to work together for one product area with 100+ people, 10+ teams for more than 3...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Recently, my former NSN colleague, Huang Hongqiang, and me reflected on the lessons learnt from Product Owner perspective during our Agile transformation. We used to work together for one product area with 100+ people, 10+ teams for more than 3 years. He has been the Area Product Owner, who provides the leadership on product, while i was the Area manager, who focused more on enabling environment, supporting teams and developing people. We were accountable for the success of the product area, and together with other areas, for the success of the product and team.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">The main learning is summarized with 4 stages. Each stage provides the different focus. They are not strictly sequential, but the focus does switch over time.</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><b><font class="Apple-style-span" style="font-size: 1.25em; ">Stage 1, get visibility</font></b></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">When your Agile transformation gets started, it is very likely that every team seems busy, but nobody really knows the overall status particularly regarding the work value and priority. As Product Owner, your single most important focus shall be getting the visibility by creating the product backlog. Evaluate legacy product, are they really working? do they incur technical debts? What is the maintenance load? Consider value, be prepared to have surprises, e.g. some teams may have been doing low value work for years.</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><b><font class="Apple-style-span" style="font-size: 1.25em; ">Stage 2, improve predictability</font></b></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Chances are, there is still lack of trust between business and R&amp;D. You want to build the trust by improving the predictability, i.e. delivering commitment and managing the expectation. Challenges include dealing with wishful commitment, not knowing velocity or unstable velocity to begin with. The visibility improves the predictability. Moreover, you want to delay making the commitment, negotiate for flexibility, get teams involved into continuous analysis.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><b><font class="Apple-style-span" style="font-size: 1.25em; ">Stage 3, deliver value with quality</font></b></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Velocity depends on the team's capability, which only improves over time. As Product Owner, you should not expect higher velocity soon. Instead, focus on delivering less but valuable features. You want to achieve this by working closely with business side and customers, collaborating with team on why, and splitting features into small ones to identify what's the most valuable minimum. Under any circumstance, you should not sacrifice Definition of Done and quality.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><b><font class="Apple-style-span" style="font-size: 1.25em; ">Stage 4, increase productivity</font></b></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Finally, you help team on increasing productivity. Understand "slower before faster" by planning only 80% of your team's capacity. Work together with team to invest on improving engineer practices and paying back technical debts. Agree with team on feature, including legacy, responsibility so that teams continuously improve the product. Discuss with team how to extend their area so that it matches business needs while sustaining velocity.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Hongqiang and me will give a presentation on this topic in the coming </font><a href="http://scrumgathering.mymova.com/"><font class="Apple-style-span" style="font-size: 1.25em; ">Shanghai Scrum gathering</font></a><font class="Apple-style-span" style="font-size: 1.25em; "> on June 24-25. If you want to learn more details, please join our session:-)</font></p>]]>
        
    </content>
</entry>

<entry>
    <title>Accidental adversaries - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/05/accidental-adversaries.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.112</id>

    <published>2011-05-16T15:01:11Z</published>
    <updated>2011-12-26T09:11:09Z</updated>

    <summary>I recently attended a sprint review. It went on like this. PO checked every acceptance criteria in details, and criticized as much as he could; while team defended and demanded for acceptance, as much as they could. I heard comments...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">I recently attended a sprint review. It went on like this. PO checked every acceptance criteria in details, and criticized as much as he could; while team defended and demanded for acceptance, as much as they could. I heard comments as below.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ul><li>From team, "we will only work on what's in acceptance criteria, if you want this, you need to include it in the acceptance criteria. It's your problem if you don't."</li><li>From PO, "But this should be common sense. Ok, I shall write more details into acceptance criteria, otherwise, you guys will just argue for acceptance."</li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">PO and team are supposed to embody agile value "customer collaboration over contract negotiation". However, it looked as if they were in win-lose situation. How come?</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">System archetype "Accidental adversaries" well captures the dynamic.</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" size="4"><span class="Apple-style-span" style="font-size: 15px;"><br /></span></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><img alt="Accidental adversaries.jpg" src="http://blog.odd-e.com/yilv/Accidental%20adversaries.jpg" width="800" height="428" class="mt-image-none" style="" /><span class="Apple-style-span" style="font-size: 15px; ">There are 2 reinforcing loops and 2 balancing loops involved.</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><span class="Apple-style-span" style="font-size: 15px; "><br /></span></p><ol><li>It begins with the outer reinforcing loop. PO is responsible for the success of the product, and is capable of defining the right product. While team is responsible for the product delivery, and is capable of building the right product. They benefit a lot from collaboration. When PO invites team into the collaboration on defining the product, team understands why to build, then, what to build deeply. When team delivers the right product to customers, they are more motivated in contributing further on product specification. This in turn helps PO succeed in defining the right product.</li><li>At some point, bad cases occurred. For example, product missed some functionality because team thought that it would not be necessary. Customers complained and escalated, and PO got blamed for missing the specification. PO tried to improve by writing detailed acceptance criteria for team, then, strictly checking the written criteria for acceptance. They thought that this practice gave them the control necessary to get the right product. This forms the balancing loop in the upper left.</li><li>However, this practice generated the un-intended consequence. When PO declined team's delivery, team's capability was evaluated as poor, and team was hurt. Thus, to fix it, team asked acceptance criteria from PO, blindly followed the written criteria and demanded acceptance based on what's there. This forms the balancing loop in the lower right.</li><li>When team succeeds in defending the acceptance, it becomes PO's failure in defining the right product. To deal with this, PO focuses more on the details in acceptance criteria and criticizes the sprint outcome more. This in turn caused team to become more defensive. This forms the reinforcing loop in the middle.</li></ol><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Even though from PO and team's own perspective, what they are doing both make perfect sense, PO and team become accidental adversaries over time. The focus shifts from customer collaboration to contract negotiation, and from improving to blaming.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">What are strategies for leverage in this situation?</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ul><li>Understand each other's behavior, i.e. their balancing loops, and realize that what they are doing makes sense from their own point of view, and the obstruction to each other's success is unintended. The problem is not caused by people, but by system.</li><li>Break the middle reinforcing loop by stopping the evaluation for both PO and team based on acceptance criteria and acceptance, i.e. if it is declined, it is team's problem; and if it is accepted but customer is not satisfied, it is PO's problem. Stop the blaming first.</li><li>Instead, strengthen the outer reinforcing loop by aligning both to the common higher level goal - customer gets the right product. Promote solving the problem and, more importantly, improving together, over blaming each other. When team does not deliver the right product, PO asks team how he can help team understand better; when PO does not define the right product, team asks PO how they can contribute. PO and team are on the same Scrum team and collaborate to achieve the common goal.</li></ul><p></p><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>Satir/Weinberg Change Curve or &quot;That model is wrong?&quot; - Bas Vodde</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/basvodde/2011/05/satirweinberg-change-curve-or-that-model-is-wrong.html" />
    <id>tag:blog.odd-e.com,2011:/basvodde//3.111</id>

    <published>2011-05-09T03:29:08Z</published>
    <updated>2011-11-23T08:07:18Z</updated>

    <summary>This post relates to a post written by a friend George Dinwiddie related to the Satir Change Model. In the post he refers to a tweet I made related to the Satir Change Model. I&apos;d like to add some clarification...</summary>
    <author>
        <name>Bas Vodde</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.odd-e.com/basvodde/">
        <![CDATA[<br />This post relates to a post written by a friend George Dinwiddie related to the <a href="http://blog.gdinwiddie.com/2011/05/06/its-only-a-model/">Satir Change Model</a>. In the post he refers to a tweet I made related to the Satir Change Model. I'd like to add some clarification and argue that it is not "just a model" :)<br /><br />Over the last year, I've started to get a little annoyed with the Satir Change Curve. You can find this in nearly every Agile development book. An example of the curve can be found <a href="http://stevenmsmith.com/ar-satir-change-model/">here</a>. I've used the change curve myself in the past, so why my annoyance?<br /><br />The diagram expresses an assumption that all change will improve the performance, which we all know, is untrue. If we all know this assumption is untrue, then why would it matter? It matters in the way the change curve is used.<br /><br />Imagine I'm a consultant promoting reverse-typing-driven-development. It's a wonderful idea where we switch out editor to type from right to left and we start each line of code with the end. As a consultant, I collected all this evidence in brain research showing that right-to-left typing and reverse thinking enables more brain connections and thus making developers more creative, smarter and better. It will improve the performance! So, I go to a team and train them in RTDD. They start off, but it feels a bit uncomfortable in the beginning. I grab out the Satir Change Curve and tell them that that's normal. The earlier way of typing was their status-quo and this change is a foreign element, so their performance will decrease and you will be in chaos! The team accepts my wisdom on change, after all, Satir was a family therapist. Eventually they get used to it, they stop complaining and keep typing in reverse. I declare victory and use them as an example of a successful adoption of RTDD.<br /><br />The above is exaggerated, but there are a couple of interesting lessons in it. First, the actual measure of performance was missing. This is common and probably a reality of the industry we work in. In product development, especially in software development, there are so much variables that nearly every measure of performance fails. The change in the example was made for productivity and especially productivity in software development is not measurable.<br /><br />But, I think the most important lesson of the story is that the change model caused the team <b>and the consultant</b> to stop challenging and thinking about the idea. Especially the consultant, he assumed the RTDD working style will improve performance (independently from context) and with that assumption he closed his mind for learning further. This is a very common problem which happens to me also a lot--I know the solution, so no need to think about that anymore, I just need to figure out how to get through the resistance of the people. Very dangerous.<br /><br />Is the Satir change curve useless? No, probably not, there is definitively some truth in it. This is where the discussion a couple weeks ago became very interesting. I grabbed my Virginia Satir book to look for the curve and... it wasn't there! Now, I'm not a Satir expert, but I couldn't find a direct reference on the Internet either. (If I'm wrong, please, anyone, correct me!). The main reference on the Satir Change Curve seems to come from Gerald Weinberg. So, the curve actually should be called the Weinberg Change Curve and should be separated from the Satir Change Model. Most of this post relates to the Weinberg Change Curve and not the Satir Change Model. Is the Weinberg Change Curve useless? No, neither, but it can be easily misused. (Note: I don't have all of Satir's work and if anyone discovers that this paragraph is nonsense, then please let me know! I'd love to learn more about how the curve and the model relate)<br /><br />One last thing. George's post was called "It's just a model" and we need to keep that in mind. I agree and yet also disagree with that. I agree it is "just a model" and a simplification. However, models contain assumptions and when models promote wrong/dangerous assumptions, then the model itself becomes dangerous. If that is the case (I'm not saying it is related to the Weinberg Change Curve), then instead of saying "Oh, it's just a model," we ought to say "that model is wrong!"<br /><br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>Go cold turkey for self-managing with long-lived virtual team - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/05/go-cold-turkey-for-self-managing-with-long-lived-virtual-team.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.110</id>

    <published>2011-05-08T04:24:00Z</published>
    <updated>2011-12-25T09:14:34Z</updated>

    <summary>I have been implementing, and suggesting others to implement, solid team in Scrum context. I consider this as essential because virtual team structure so often leads to unaligned purpose and goals, since the respective managers still try to enforce their...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">I have been implementing, and suggesting others to implement, solid team in Scrum context. I consider this as essential because virtual team structure so often leads to unaligned purpose and goals, since the respective managers still try to enforce their (e.g. functional) goals on the members who now work in Scrum team. Only when team shares same purpose and goals, self-managing is likely to emerge.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Recently, while coaching an organization for Agile adoption, i saw the virtual team again. The team members belong to different reporting lines, but they are supposed to all dedicate on the Scrum team, and the team is supposed to stay in the long run too. Interestingly, they choose to do that on purpose.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Why do they choose so?</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ol><li>From manager perspective, they have no team to command &amp; control, since they don't have one team to control. They are removed from the single point of accountability for the team. This may help transform.</li><li>From team perspective, they have no reliance on manager. This may help team learn self-managing and transform too.</li></ol><p></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><div><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></div><p></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">This reminds me of one common scenario about self-managing team.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Self-managing is one key aspect in Scrum implementation. When we form Scrum team, we tell our team to be self-managing. However, things don't work as expected, for instance, team may overlook risks in their plan, team may not well manage dependencies with other teams, team may not give sufficient visibility to stakeholders, and etc. As manager, you point those out and ask them to correct. Team fixes those, but you see more problems. Then, you follow up more closely. To your frustration, it seems not improving the situation, and the trend is even getting worse. You start to lose the confidence about the direction of self-managing.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">The system archetype "Shifting the burden" captures the dynamic pretty well.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><img alt="Shifting the burden.jpg" src="http://blog.odd-e.com/yilv/Shifting%20the%20burden.jpg" width="434" height="331" class="mt-image-none" style="" /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ul><li>The problem symptom is that team does not manage themselves well.</li><li>It consists of two balancing loops. The upper one is a quick fix - managers use command and control to put out fire; and the lower one is the fundamental solution - increase team's capability to manage themselves.</li><li>There's one reinforcing loop. When managers execute command and control, it develops the unintended consequence - team steps back, which does harm to the effort on developing capability to self-manage. Then, more failure ensues, which causes managers to execute even more command and control.</li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">The general strategy to leverage this situation includes:</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ol><li>Focus on the fundamental solution</li><li>Stop using the quick fix, or use it only to buy time</li></ol><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Applying those into our specific situation, it means:</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ol><li>Agree on the vision of self-managing, managers transform from command &amp; control to coaching and leading, and teams increase their capability and learn how to self-manage</li><li>Limit the urgent cases that call for command &amp; control, i.e. use quick fix carefully only to buy time</li></ol><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">This promotes the gradual change, as is described in </font><a href="http://www.odd-e.com/material/2010/012-015.pdf"><font class="Apple-style-span" style="font-size: 1.25em; ">our story</font></a><font class="Apple-style-span" style="font-size: 1.25em; ">.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">Another leverage option for a "shifting the burden" situation is to "go cold turkey", i.e. stop using quick fix completely. This is essentially what the organization i worked with would like to achieve by keeping virtual team.</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">However, there are dangers with this approach too. The withdrawal symptoms may be unbearable. In this case, corresponding to the reasons why they choose to have long-lived virtual team structure,</font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ol><li>When there is no direct point of accountability towards one team (there's still one point of accountability at upper level), middle managers neither function in old way, nor transform to new way.</li><li>Accordingly, team lacks the support, thus, doesn't survive.</li></ol><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; ">I do not mean that this will fail. Context matters and time will tell. It's a different approach, and I am keen to see how it evolves.</font></p><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>PO on team or PO on feature? - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/04/po-on-team-or-po-on-feature.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.109</id>

    <published>2011-04-30T12:56:26Z</published>
    <updated>2011-12-26T09:10:29Z</updated>

    <summary>Product Owner is responsible for the product success. Product Owner is the single interface about team&apos;s work. In a single-team environment, PO works with that team constantly. It&apos;s all very clear. However, in a multiple-team environment, it gets more complicated....</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 0.8em; ">Product Owner is responsible for the product success. Product Owner is the single interface about team's work. In a single-team environment, PO works with that team constantly. It's all very clear.</font></font></font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 0.8em; "><span style="letter-spacing: 0.0px"></span><br /></font></font></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 0.8em; ">However, in a multiple-team environment, it gets more complicated. It gets problematic to have one PO work with all teams in the product, when the number of teams goes too big. It leads to multiple POs working with different teams. There is still one PO at product level, who creates PO team with multiple POs. One PO will normally work with more than one team, but not all teams. Since one (big) feature may be developed by multiple teams together, two modes of relating PO and team come up.</font></font></font></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ul><li><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><b><font class="Apple-style-span" style="font-size: 0.8em; ">PO on team</font></b><font class="Apple-style-span" style="font-size: 0.8em; ">: F</font></font></span><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">ix the relation between PO and teams. For each PO, they constantly work with a few teams. Naturally, they manage the part of product backlog that relates to his teams' work.</font></span></li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ul><li><span class="Apple-style-span" style="font-size: 15px; "><b><font class="Apple-style-span" style="font-size: 0.8em; ">PO on feature</font></b><font class="Apple-style-span" style="font-size: 0.8em; ">: Not fix the relation between PO and teams, but change it depending on the feature that the teams are working on. In this case, PO is responsible for features in the product. Which teams work on those features, PO works with which teams.</font></span></li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><span class="Apple-style-span" style="font-size: 15px; "><br /></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><span class="Apple-style-span" style="font-size: 15px; ">I have been suggesting PO on team all along, and I don't feel right about PO on feature. This post tries to clarify why, not only for you, but also for my own.</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><b><font class="Apple-style-span" style="font-size: 1.25em; ">Why PO on feature?</font></b></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; ">Let's first understand the benefits that PO on feature tries to get. There are mainly two.</font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><span style="letter-spacing: 0.0px"></span><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ol><li><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">PO can specialize on part of the product and some features. For any team to be able to work on any part of the product, though ideal, it may not be feasible to beginning with. The same applies to PO. PO on feature makes it possible for them to specialize on part of the product.</font></span></li><li><font class="Apple-style-span" style="font-size: 0.8em; "><span class="Apple-style-span" style="font-size: 15px; "></span></font><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">The overall feature can be managed by one PO, so that it reduces the coordination efforts among related teams.</font></span></li></ol><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><span style="letter-spacing: 0.0px"></span><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><b><font class="Apple-style-span" style="font-size: 1.25em; ">Problems with PO on feature</font></b></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; ">The most obvious problem with PO on feature is, what if one team need to work on multiple features at the same time? If you would allow multiple POs to interface with same team, it would've brought back all traditional problems such as conflicting priority, partial allocation, etc.</font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><span style="letter-spacing: 0.0px"></span><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; ">But PO on feature does not have to be so. It can still be clear who is the PO for the team at any time. If team works on two features, the PO responsible for the more significant feature (in terms of value, size, etc.) will be the PO for that team in relevant sprints. Other POs need to work with that PO in order to get their stuff done in those sprints. Then, there will be PO switch, as team works on different features. Two POs may work together for transitional period, though only one of them is PO towards team at any time.</font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><span style="letter-spacing: 0.0px"></span><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; ">Is this variant ok? I do not think so. T</font></span><span class="Apple-style-span" style="font-size: 15px; ">here are two deeper problems with PO on feature.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><span style="letter-spacing: 0.0px"></span><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ol><li><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">PO on feature creates strong focus on current feature, and does harm to the flow and long-term sustainability. </font></span><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">If we'd like to get team high performance in the sprint, we shall make the feature ready before putting it into sprint. That requires progressively grooming the backlog and future features.&nbsp;</font></span><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">If we'd like to get our release more predictable, we'd like to proactively address risks and uncertainties. That requires investing earlier by having spikes.&nbsp;</font></span><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">If we'd like to sustain in delivering good quality product release, we shall lower the cost of change. That requires gradually paying off the technical debts from legacy.&nbsp;</font></span><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">However, PO on feature tends to short-term project thinking.</font></span></li><li><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">PO on feature breaks the feedback loop, which is critical for learning and continuous improvement. It is less likely for PO on feature to learn from mistakes such as wishful commitment, sacrifice done, ineffective collaboration on requirements, etc., together with former teams.</font></span></li></ol><span class="Apple-style-span" style="font-size: 15px; "><div><span class="Apple-style-span" style="font-size: 15px; "><br /></span></div></span><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><span class="Apple-style-span" style="font-size: 15px; ">In short, PO on feature often leads to imbalance between short-term and long-term thinking and focus, while for the role of Product Owner, it is not enough to be able to maximize ROI for one sprint or one feature, but do that sustainably for the life of product.</span></p><font class="Apple-style-span" style="font-size: 1.25em; "><div><font class="Apple-style-span" size="4"><span class="Apple-style-span" style="font-size: 15px; "><br /></span></font></div></font><p></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><b><font class="Apple-style-span" style="font-size: 1.25em; ">PO on both team and feature</font></b></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; ">What can we do to gain the same benefits into the mode of PO on team? Working in product areas is the key.</font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'; min-height: 12.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><span style="letter-spacing: 0.0px"></span><br /></font></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"></p><ul><li><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">Since features often spread into many teams, area should be big enough to fit most of features. Then, the overall feature is managed by one area to ease the coordination.</font></span></li><li><font class="Apple-style-span" style="font-size: 0.8em; "><span class="Apple-style-span" style="font-size: 15px; "></span></font><span class="Apple-style-span" style="font-size: 15px; "><font class="Apple-style-span" style="font-size: 0.8em; ">Big enough area is still smaller than the whole product, thus, PO still possibly specializes in the area with relatively small step.</font></span></li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><br /></font></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Heiti SC Light'"><span class="Apple-style-span" style="font-size: 15px; ">Regarding the number of teams one PO can work with, some say no more than 2, others say up to 10, my sweet spot is around 5. The size of 5 teams per PO is good for both having some specialization and reducing the feature coordination.</span></p>]]>
        
    </content>
</entry>

<entry>
    <title>Organizational changes to support one team - Bas Vodde</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/basvodde/2011/03/organizational-changes-to-support-one-team.html" />
    <id>tag:blog.odd-e.com,2011:/basvodde//3.108</id>

    <published>2011-03-26T09:13:42Z</published>
    <updated>2012-01-21T01:41:01Z</updated>

    <summary>In the previous blog post, I gave a list of points when adopting agile in an organization. One of them was:Start with one team but immediately make the organizational changes needed to support that one team.But what does that mean...</summary>
    <author>
        <name>Bas Vodde</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.odd-e.com/basvodde/">
        <![CDATA[In the <a href="http://blog.odd-e.com/basvodde/2011/03/tips-when-adopting-agile.html">previous blog post</a>, I gave a list of points when adopting agile in an organization. One of them was:<br /><br /><ul><li>Start with one team but immediately make the organizational changes needed to support that one team.</li></ul><br />But what does that mean "the organizational changes needed to support that one team" ?<br /><br />I usually recommend four organizational considerations when getting one team to work. (they are actually 3, but one is repeated for stress):<br /><br /><ul><li>Dedicated cross-functional teams</li><li>Define "done"</li><li>All work flows via the PO</li><li>Keep out project managers</li></ul><br />Let me clarify these:<br /><br /><b>Dedicated teams</b><br /><br />This is probably the biggest change. With a dedicated team, I mean a team where the team members are for 100% on this one team. Also, the team is not temporary... it is not "just a project team". The team members know the change is serious... so serious that this change needs to be reflected in the organization. The members of the team have to report to the same "line" manager--without this it causes the confusion of conflicting loyalties. The team should take a shared responsibility for all the work. Specialization should blur. But when people report to a functional manager then this will be an restraining force which causes people to focus on "their area". To break this and to show that the initial Scrum pilots are serious, the organization has to reflect this in their org chart.<br /><br /><b>Define Done</b><br /><br />The "definition of Done" defines the scope of the organizational change (the one mentioned in point #1). If we include technical writing, systems integration testing in the initial definition of done, then the people with these skills need to be taken out of their silos and put in the dedicated team. However, when the definition of done is smaller, it would lead to less change (but more delay and risk!). So, an organization adopting Scrum needs to define done to decide on the scope of the change.<br /><br /><b>All work flows via the PO</b><br /><br />Teams need to focus to get work done! Focus, one of the original values in Scrum, is difficult when the team is interrupted from many directions. To get the initial team to work well, they need to be clear on what the work is that they need to do and where this comes from. Make this clear in your organization that the team is off-limit and that if anyone wants work from the team then that person needs to talk to the PO.<br /><br /><b>Keep the project managers out<br /></b><br />This is the same as the previous point but it seems useful to repeat it. Project manager is not a Scrum role and the project management responsibilities are divided over the three other Scrum roles. Adding a project manager to a Scrum organization causes enormous confusion in responsibilities and dis-empowered Product Owners and ScrumMasters. To avoid this, make sure the project managers in your organization know that a Scrum project is off-limits. If management wants status of the project, they need to ask the Product Owner.<br /><br />These four points seem simple but are incredibly hard to implement in an organization. However, they can be implemented on a team-by-team basis and that enables a gradual transformation of the work... and the organization.<br /><br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Tips when adopting agile - Bas Vodde</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/basvodde/2011/03/tips-when-adopting-agile.html" />
    <id>tag:blog.odd-e.com,2011:/basvodde//3.107</id>

    <published>2011-03-05T04:40:59Z</published>
    <updated>2012-01-21T01:39:59Z</updated>

    <summary>I&apos;m frequently asked whether I got tips for how to start an agile adoption. A lot of people are looking for the ten step magic recipe that will magically transform their organization to an agile organization. I tend to reply...</summary>
    <author>
        <name>Bas Vodde</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.odd-e.com/basvodde/">
        <![CDATA[I'm frequently asked whether I got tips for how to start an agile adoption. A lot of people are looking for the ten step magic recipe that will magically transform their organization to an agile organization. I tend to reply with the 'bad' news first: Every organization is different and it probably takes a long time... think years not months. That said. Over the years I've collected small tips which helped organization I worked with. Some come from organizations that tried them out and it worked really well... others come from organizations that tried out the opposite and it was a disaster.<br /><br />Here they are, tips for adopting agile:<br /><br /><ul><li>Avoid forcing Scrum on people and instead find people who are willing to try.</li><li>Get enough training so that all people have the same understanding. Differences in understanding is a common failure point.</li><li>Go See how things *really* happen. Talk to everyone. Look at code and tests.</li><li>Start with one team but immediately make the organizational changes needed to support that one team.</li><li>When adopting Scrum, also focus on the technical practices that are needed. Technical and organizational agility have to go hand-in-hand.</li><li>Do not buy any agile tools. Tools are unlikely to be the main problem.</li><li>Do not change Scrum or the technical practices without first many months of practices</li><li>Get in coaches. Organizations that want to do it all by themselves usually make a lot slower progress. This will be a huge change and getting help is a good idea.</li><li>Make sure the team is co-located and has an "agile-friendly" office environment.</li></ul><br />Why just these tips? I don't know. From my experience, these seem to be of major importance.<br /><br />Me and Craig have given more adoption advice in our "Inspect &amp; Adapt" chapter of the "Practices for Scaling" book. You can find a free copy of this chapter on <a href="http://www.informit.com/articles/article.aspx?p=1564482">informIT</a><br /><br />ps. Thanks to the other Odd-e people for their input!<br /><br /> ]]>
        
    </content>
</entry>

<entry>
    <title>History of Nokia Test - Bas Vodde</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/basvodde/2011/02/history-of-nokia-test.html" />
    <id>tag:blog.odd-e.com,2011:/basvodde//3.106</id>

    <published>2011-02-16T01:49:44Z</published>
    <updated>2011-10-29T05:16:22Z</updated>

    <summary>Everyone knows it! Nokia is *not* doing well. The new Windows strategy is not popular with the (geeky) public or Nokia employees. Recently, a couple of blog posts and comments have been posted about Scrum, Nokia and &quot;The Nokia Test&quot;....</summary>
    <author>
        <name>Bas Vodde</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.odd-e.com/basvodde/">
        <![CDATA[<br />Everyone knows it! Nokia is *not* doing well. The new Windows strategy is not popular with the (geeky) public or Nokia employees. Recently, <a href="http://www.gearstream.com/blog/22/60/Nokia-Demise-More-Proof-that-Agile-and-Scrum-Are-Merely-Tools-NOT-Solutions.html">a couple of blog posts</a> and comments have been posted about Scrum, Nokia and "The Nokia Test". I don't want to criticize the points made, though do want to correct the linkage between Nokia and the Nokia Test. Let me clarify.<br /><br />I used to work at NokiaSiemens Networks (NSN) and, before that, at Nokia Networks (and before that at Nokia, but that is irrelevant for this post :P). In early 2000s, Nokia consisted of making phones (perhaps 75% of the company) and making telecom infrastructure (perhaps 25%). They were still the same company, but within the company they were very very separated. In 2007, the Nokia Networks unit was merged with Siemens Networks to create a<b> new company.</b>.. NSN. This company is not Nokia or Siemens.<br /><br />Nokia Networks was one of the early adopters of agile development and Scrum in Finland/Europe. I like to believe that it had quite an impact to the Scrum in Finland as they asked their partners to use Scrum, but that is irrelevant for this story. I was invited to 'lead' the Agile coaching team in Helsinki as I had agile development experiences (mainly xp). I accepted and moved from China to Finland (cold!) where we supported product groups that wanted to change their development to agile.<br /><br />The adoption in Nokia Networks wasn't top-down as the coaching team was hidden in a centralized department and had no authority (good!). We visited different product groups who were experimenting with agile development and create one community. This made it seem like we quickly had a big adoption, but in fact, we only combined all the grass roots initiatives and made them visible. By doing this, we traveled throughout the company to visit different teams who said they were doing "iterative" or "agile" or "scrum" or "xp". But we quickly noticed something interesting...<br /><br />Most of the time, when we visited a product, they told us things like "we do iterative development, our last iteration was planned to be one year long, but it actually took two!" or, one of my favorites, "we do scrum, we are now in our 6th planning sprint". We, the coaching team, were getting frustrated with this as we were only a few and there were thousands of developers, who should we support? At some point, we decided that going "deep" rather than "broad" was a good idea, that means, we worked with the product groups that were serious and make them into examples. All we needed to do was filter all the product groups that were not "too serious." I remember discussing this with Kati (my pair in Nokia Networks) and we together quickly created two slides, one saying "you are not doing iterative when" and one saying "you are not doing Scrum when". We added these slides to our introduction to agile material and agreed we would use it internally (in the coaching team) do decide which product groups are serious.<br /><br />Perhaps a year later, Jens Ostergaard invited me to his course and talk a bit about Nokia Networks (not yet NSN at this point). I grabbed some slides including the "you are not doing iterative development when"-slide in the appendix. (the presentation was similar to <a href="http://www.odd-e.com/material/2006/nokia_agile.pdf">this one</a>). Jens liked it and mentioned the slide to Jeff Sutherland who started to use it himself and called it "The Nokia Test." We didn't think the slide was very special so, of course, we had no problem but were very surprised to discover that it&nbsp; became popular. I guess that had something to do with its simplicity.<br />A couple years later, in NSN people asked us to ask what this "Nokia Test" was about. (I remember Kati, the co-creator, asking me about it!). Most people in NSN didn't know about the slide as it was mainly used by the coaching group and it wasn't used for product groups to self-evaluate them. A year later, people in Nokia started contacted me about what this Nokia Test was all about because people in Nokia had never heard about it.<br /><br />A couple points related to this, Nokia and Nokia test:<br /><ul><li>The Nokia test ought to be called "The NSN test" as it wasn't created in Nokia</li><li>The Nokia test was *not* for products groups to evaluate themselves, but was a coaching tool</li><li>The Nokia test was not really a test, it was called "you are not iterative when"</li><li>Most of the early Scrum adoption was in NSN, not Nokia. Thus conclusions about Nokia and the Nokia test are very irrelevant.</li><li>AFAIK, most of Nokia Scrum implementation wasn't deep. On the developer level, they adopted Scrum, but they never made management changes that ought to happen in a good Scrum adoption.</li></ul>Oh, an amusing final note. I never use the nokia test myself. I don't particularly like the scoring test that it morphed to. I consider tests like that not useful except for a very specific context (and the context was quickly checking the seriousness of an agile implementation)<br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>The use of Adaptor in organizational transformation - Lv Yi</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/yilv/2011/02/the-use-of-adaptor-in-organizational-transformation.html" />
    <id>tag:blog.odd-e.com,2011:/yilv//6.105</id>

    <published>2011-02-05T13:30:46Z</published>
    <updated>2011-02-05T13:54:35Z</updated>

    <summary>Project management is done differently in Scrum Project management work still exists when adopting Scrum. Traditionally, project manager plays key role for project management work, and it is done in a centralized manner. While in Scrum, project management work is...</summary>
    <author>
        <name>Lv Yi</name>
        
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blog.odd-e.com/yilv/">
        <![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><u><b><font class="Apple-style-span" style="font-size: 0.8em; "><font class="Apple-style-span" style="font-size: 0.8em; "><font class="Apple-style-span" style="font-size: 0.8em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; ">Project management is done differently in Scrum</font></font></font></font></font></font></b></u></font></font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Project management work still exists when adopting Scrum. Traditionally, project manager plays key role for project management work, and it is done in a centralized manner. While in Scrum, project management work is done in a distributed manner, split among Scrum roles - PO, team and Scrum Master. What if project manager role still remains in the same context, in the meantime of introducing Scrum roles? Conflict and confusion ensue. When project manager wants to do his/her job, it impedes Scrum roles from functioning. Surprisingly, it's not uncommon to see that project manager (probably in a different name) and Scrum roles co-exist in the same organizational context. That must be addressed, in order for a successful Scrum implementation.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">"Distributed project management" exercise is an effective way to help understand Scrum roles and see the problems. To do this, you will gather all relevant people together. The exercise works roughly as below. First, people come up with the project management tasks, assuming that all of them will still be needed after adopting Scrum. Second, people need to learn carefully about Scrum roles, e.g. from Scrum books, articles or any Scrum training material. Then, we look at each task to see whose responsibility it is in Scrum. When different parts of the task go to different roles, we split the task into parts, so that each task is taken by only one role. In the end, we discover that project management is well distributed among Scrum roles, without the role of project manager. The problem by having both Scrum roles and project manager in the same context becomes obvious.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 0.8em; "><font class="Apple-style-span" style="font-size: 0.8em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 0.8em; "><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><b><u>Introduce adaptor</u></b></font></font></font></font></font></font></font></font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Now that the problem becomes visible, the next question is, how shall we transform? Suppose that you are working in a big organization with multiple teams, it's likely that you are not able to transform the whole organization at once. The situation you face is that the part, probably the big part, of the organization runs in old mode based on program and project structure. Program manager interfaces with project manager. Project manager sets up the project team (often a working group with only project manager being accountable for the overall project results). If we introduce one Scrum team with PO, Scrum Master and Team, how does it interface with the rest of the organization?</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">From Wikipedia, Adaptor is defined as a person that adapts attributes of one system to those of an otherwise incompatible system. Applying it onto this situation, we can implement an adaptor towards the rest of the organization, without causing any incompatibility in interface.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><b><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><u>Who can be the adaptor?</u></font></font></b></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"></p><ul><li><b>Product Owner</b></li></ul><span class="Apple-style-span" style="font-family: arial, helvetica, hirakakupro-w3, osaka, 'ms pgothic', sans-serif; font-size: 13px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; font: normal normal normal 12px/normal Helvetica; "><span style="letter-spacing: 0px; ">Product Owner is responsible for the release content, schedule and cost. In this regard, if PO plays the adaptor, he/she interfaces well with some counterparts, e.g. program manager. However, others may expect adaptor to be exactly the same as project manager. The expected level of control is often lower than the level, at which Product Owner is working. Product Owner sees Product Backlog Items, rather than Tasks; Teams, rather than Individuals; Sprints, rather than Days. While traditional project manager may manage at the level of Tasks, Individuals, and Days. There is an inherent conflict between doing the job as Product Owner and working as an adaptor. Moreover, being a Product Owner solely is already a demanding job. The adaptor role will most likely distract his main focus, thus, an impediment preventing him from well performing.</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><span style="letter-spacing: 0px; "></span><br /></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; font: normal normal normal 12px/normal Helvetica; "><span style="letter-spacing: 0px; ">The variant is to transform the existing project manager to PO role. Besides the same drawback, it gives the perception for the rest of the organization that nothing changes. While this is exactly the purpose of having adaptor, if project manager thinks of this way, and he/she remains as project manager in the name of PO, the change is doomed.</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; font-weight: normal; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><span style="letter-spacing: 0px; "></span></p></span><ul><li><b>Scrum Master</b></li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">One of Scrum Master's responsibilities is to ensure the supportive environment for Scrum implementation. If we see the purpose of adaptor as creating room for Scrum team within the large context to succeed, it fits Scrum Master's job well. I was the Scrum Master while implementing Scrum in the pilot project within my former company, and kind of played the adaptor to interface different parties in the rest of the organization. The advantage was for me to have the opportunity of influencing them and moving the change forward. Remember, Scrum Master is supposed to be a change agent. However, the rest of the organization often expected me to report status and make decision as other project managers. Anyway, that's what adaptor means. This creates a couple of major problems. For release management, since PO is not visible to the rest of the organization, while he/she is the person having the knowledge and authority to inspect and adapt, having the adaptor different than PO slows down information flow and decision making. It also creates the big misunderstanding about Scrum Master role close to project manager.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">The variant is to transform the existing project manager to SM role. Believe it or not, among the three Scrum roles, Scrum Master gets the least part of project management responsibility. I like the comment given by a project manager who attended my CSM course, "only atypical project manager may transform into SM".</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"></p><ul><li><b>One team member</b></li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px">How about having one team member as adaptor? Team is responsible for committing and delivering potentially shippable product increment every sprint. Being adaptor is certainly a distraction. Furthermore, the role division between PO and team gets confused. The information flow between PO and team gets awkward. One argument for this is that great team shall be able to define itself in the organizational context. I would say that this goes beyond what's expected for team in Scrum framework towards more self-designing team [1]. Regardless, for a newly formed team, the clarity in roles is very important, thus, at least the timing is bad.<span style="letter-spacing: 0.0px"></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"></p><ul><li><b>One person outside Scrum context</b></li></ul><p></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">The former project manager acting as adaptor, without taking any Scrum role, is another option. However, for any capable project manager, he/she would either try to have the same influence as early, which creates conflict and dysfunction, or step away from this soon after he/she realizes that adaptor role does not add much real value. It could also be that other body being adaptor. This will not be a rewarding role anyway, unless people seek the title of "project manager". It ends with a waste of human resource. Program manager is a good choice. It is actually closer to no adaptor that i'm going to describe as following.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><b><u>How about no adaptor?</u></b></font></font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">No adaptor means to expose Scrum roles for the rest of the organization. Here are a few steps I suggest to do.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span></p><ol style="list-style-type: decimal"><li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">list all parties, with which project manager has interface</span></li>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">list tasks each party is concerned</span></li>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">bind Scrum role and the tasks to create new interface</span></li>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">discuss and agree with each party about new interface</span></li>
</ol>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px">The last step is most critical, since it creates both understanding and action. There will be change for the counterparts, in terms of the number of interfaces, the content, etc. If they are not familiar with Scrum, a brief introduction should be included into the discussion. Though it takes more time to define, agree and get started, this has a few advantages. It doesn't introduce overhead. It creates solid understanding for new roles and prepares better for the further change. It's closer to our ultimate goal of transforming the whole organization. Scrum Master should lead the efforts to define and agree on the interface change with all relevant parties, since it fits the change agent role well.<span style="letter-spacing: 0.0px"></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">This is actually my preference. Try no adaptor, before considering to introduce adaptor.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><font class="Apple-style-span" style="font-size: 1.25em; "><b><u>Adaptor towards which part of the organization?</u></b></font></font></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">So far, we have explored about using (or not using) adaptor to make Scrum team compatible within traditional organization. In fact, another chance of using adaptor is to make traditional team structure compatible within Scrum organization. In our vision, big product development organization will be organized into requirement areas, each of which has Area Product Owner being responsible, meanwhile, Area Product Owner is the member of the whole product PO team [2]. Since organizational transformation does not happen overnight, chances are, some part of the organization runs in Scrum mode, while the other part remains in traditional mode. In this case, an adaptor in the name of Area Product Owner is useful technique to keep the whole organization operating in Scrum mode. In fact, the adaptor goes beyond the person and includes sprint and backlog interfaces. Later, we gradually refactor to our vision.</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><span style="letter-spacing: 0.0px"></span><br /></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><b>Reference:</b></font></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px"><font class="Apple-style-span" style="font-size: 1.25em; "><b><br /></b></font></span></p><ol style="list-style-type: decimal"><li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Richard Hackman, Leading teams: setting the stage for great performance</span></li>
<li style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span style="letter-spacing: 0.0px">Craig Larman, Bas Vodde, Scaling lean &amp; agile development: thinking and organizational tools for large-scale Scrum</span></li></ol>]]>
        
    </content>
</entry>

<entry>
    <title>C assert and unit tests - Bas Vodde</title>
    <link rel="alternate" type="text/html" href="http://blog.odd-e.com/basvodde/2011/01/c-assert-and-unit-tests.html" />
    <id>tag:blog.odd-e.com,2011:/basvodde//3.104</id>

    <published>2011-01-08T01:58:05Z</published>
    <updated>2012-01-18T16:09:34Z</updated>

    <summary>The last month, I&apos;ve come across this issue several time, to my surprise (because it hasn&apos;t come up in the years before).If you are wrapping tests around legacy code and the legacy code has a C-style assert in the production...</summary>
    <author>
        <name>Bas Vodde</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.odd-e.com/basvodde/">
        <![CDATA[<br />The last month, I've come across this issue several time, to my surprise (because it hasn't come up in the years before).<br /><br />If you are wrapping tests around legacy code and the legacy code has a C-style assert in the production code, then what do you do? Do you write a test for it? If so, how? Do you delete it? Why?<br /><br /><b>C-Style assert</b><br /><br />Lets first have a look what C-style assertions are and why they are there. Assert is used for expressing a state that is always true. An assert cannot fail, if it fails then there is a bug in the code. So, C-style assert should and cannot be used for error handling. If the error is possible, then proper return value or exception error handling should be used, but if the error is impossible then this can be ensured and documented by using a C-style assert.<br /><br />An extremely silly example is:<br /><br />int a = 5;<br />assert (a &gt; 0);<br /><br />If this would fail, it would be a bug in the compiler.<br /><br />C-Style asserts often go together with design by contract. In design by contract, we design the pre-condition, post-condition and class invariant to be per definition true. If it isn't true, then there is a bug in the caller in the case of breaking a pre-condition, a bug in the supplier in the case of breaking a post-condition or in the class in the case of breaking a class invariant. C-Style assert can be used to document this by, in the case of pre-condition, putting asserts at the beginning of a function. For example:<br /><br />void doBlah(int x)<br />{<br />&nbsp;&nbsp; assert (x != 0);<br />&nbsp;&nbsp; ...<br /><br />So, this code reads that the doBlah can never be called with 0, if it does, then there is a bug in the function that calls doBlah.<br /><br /><b>Assert and unit tests</b><br /><br />Oki, so now we know why the asserts are there, but how do you deal with them in unit tests?<br /><br />Well.... you don't.<br /><br />If we take the doBlah function above, we don't need to write a unit test for the doBlah to assert when x == 0. This is an impossible situation and it is not needed to test that. As said, assert is not error handling, it is error in programming :) You design (the contract) states that this is impossible and thus there is no need to test it.<br /><br />Though, it ain't that easy. You do need to make sure the assert is really an assert. I often read code where the developer uses assert as a method for error handling (and he will regret that when the assert goes off in a production environment, though usually assert is commented out for production code). If assert is not assert, then you can delete it and add proper error handling.<br /><br /><b>Assert and test-driven code</b><br /><br />Many years ago, I used to write a lot of asserts in my code. It was known as good style to make your contracts explicit. Today, I nearly never write an assert and tend to delete them from production code when I see them. Why?<br /><br />First, I can't add the assert when I test-drive as it still is a line of code for which I don't have a test :) But that wouldn't be fair, as I *could* in theory test it (stub out the assert in the C-library). To better understand why I don't write them, we'll need to look at the purpose. An assert makes sure something can't happen and <b>documents</b> that. When test-driving code, we document how to use a piece of code in the tests. So, therefore the documentation aspect of tests causes the assert to be less useful. Also, the impossible situation often won't happen because I tested it, so I don't need to put the assert there.<br /><br />So, what to do with C-Style asserts in existing code? I usually do either of these two things:<br /><ul><li>Leave them and use the information as documentation</li><li>Delete them, they clutter the code</li></ul><br /><br /><br /><br />]]>
        
    </content>
</entry>

</feed>

