﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-Configuration Management</title><link>http://www.blogjava.net/paulwong/category/38309.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 31 Mar 2013 06:25:18 GMT</lastBuildDate><pubDate>Sun, 31 Mar 2013 06:25:18 GMT</pubDate><ttl>60</ttl><item><title>三种使用 Rational Team Concert 进行每日例会的方式</title><link>http://www.blogjava.net/paulwong/archive/2012/11/17/391494.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 17 Nov 2012 03:16:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/11/17/391494.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/391494.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/11/17/391494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/391494.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/391494.html</trackback:ping><description><![CDATA[<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="1.敏捷协作-DailyScrum的重要性" style="color: #4c6e94; "><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">敏捷协作&#8212;&#8212;Daily Scrum 的重要性</span></a></p>
<blockquote style="margin: 0px; padding: 0.3em 20px 0.7em; font-family: arial, nsimsun, sans-serif; font-size: 0.76em; color: #000000; line-height: normal; text-align: left; background-color: #ffffff; "><em>我不仅发挥了自己的全部能力，还将我所仰仗的人的能力发挥到极致。</em><br />
<em>&#8212;&#8212;伍德罗&#183;威尔逊，美国第28任总统（1865&#8212;1924）</em></blockquote>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">只要是具备一定规模的项目，就必然需要一个团队。靠单打独斗在自家车库里面开发出一个完整产品的时代早已不再。然而，在团队中工作与单兵作战，二者是完全不同的。任何一个人的行为都会对团队以及整个项目的生产效率和进度产生影响。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">项目的成功与否，依赖于团队中的成员如何一起有效地工作，如何互动，如何管理他们的活动。全体成员的行动必须要与项目相关，反过来每个人的行为又会影响项目的环境。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">高效的协作是敏捷开发的基石，面对面的会议是最有效的沟通的方式。每日例会（Daily Scrum）是最早引入并被极限编程所强调的一个实践。它是将团队召集起来，并让每个人了解当前项目进展状况的一种会议。它是一个快速的会议，每个参与者只能被给予很少的发言时间（大约两分钟）来介绍自己的项目进展概要。为了保证会议议题不会发散，每个人都应该只回答三个问题：</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">昨天有什么收获？</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">今天计划要做哪些工作？</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">面临着哪些障碍？</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Daily Scrum 有诸多好处：</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">让大家尽快投入到一天的工作中来。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">如果某个开发人员在某一点上有问题，他可以趁此机会将问题公开，并积极寻求帮助。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">帮助团队带头人或管理层了解哪些领域需要更多的帮助，并重新分配人手。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">让团队成员知道项目其他部分的进展情况。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">帮助团队识别是否在某些东西上有重复劳动而耗费了精力，或者是不是某个问题有人已有现成的解决方案。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">通过促进代码和思路的共享，来提升开发速度。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">鼓励向前的动力：开到别人报告的进度都在前进，会对彼此形成激励。</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">总之，Daily Scrum 能帮助所有的团队成员全心投入到项目中，并且一起向着正确的方向努力。IBM&#174; Rational&#174; Team Concert （RTC）对于团队来说，已经被证明是一种在软件开发过程中进行协作的高效方式。RTC 实现了源代码管理与工作项管理的完美集成。它能够帮助进行敏捷计划、并生成报告，方便管理工作项，并且它还提供了一种有效的框架来支持每日例会（Daily Scrum）。下面，本文将介绍三种使用 RTC 进行 Daily Scrum 的方式。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="2.在RTC里使用默认的sprintbacklog进行DailyScrum"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">在 RTC 里使用默认的 sprint backlog 进行 Daily Scrum</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">双击打开项目当前所处于的 sprint backlog（sprint 是 scrum 中的术语，指敏捷开发周期中的一个迭代计划），如图 1 所示，在窗口底部选择&#8220;Planned Item&#8221;标签，在窗口右侧选中 Schedule Risk 单选按钮，窗口将呈现将列出当前 sprint 中的所有工作任务项 story 和 task。在进行 Daily Scrum 时，团队成员可以根据这个窗口，逐一更新这些任务的状态。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig1" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 1. 默认的 sprint backlog 窗口</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 1. 默认的 sprint backlog 窗口" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image001.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">用户可以展开任务项来显示其各个子任务，了解子任务是由谁负责，进展等详细信息。如图 2 所示。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig2" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 2. 展开的默认 sprint backlog 窗口</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 2. 展开的默认 sprint backlog 窗口" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image002.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">这种召开 daily scrum 的方式非常简便。它能够展示整个项目的进展和最近的变化，但是任务项不是按照团队成员分组的，不太适应于了解各个团队成员状态。为了解决这个问题，本文下一章介绍另一种用 RTC 进行 daily scrum 的方式。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="3.在RTC里定制sprintbacklog进行DailyScrum"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">在 RTC 里定制 sprint backlog 进行 Daily Scrum</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">定制的 sprint backlog 又称为&#8220;开发者任务一览表&#8221;。一览表按照团队成员展示任务，每一行表示一个正被开发的任务。任务显示在第一列，其余几列显示其子任务的开发状态：ToDo（将要做），In Progress（正在做）和 Done（完成）。并且，各任务根据其当前状态，分别用不同的颜色显示，一目了然。定制 sprint backlog 的具体步骤如下：</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="1" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">打开项目所在的当前 sprint backlog，点击 Copy 拷贝这个计划的模式。如图 3 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig3" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 3. 拷贝当前计划的模式</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 3. 拷贝当前计划的模式" height="322" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image003.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="2" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">修改某些选项的值。比如修改定制 sprint backlog 的名字为&#8220;Developer's Taskboard&#8221;，风格选择&#8220;Taskboard&#8221;，分组选择&#8220;Owner&#8221;，排序选择&#8220;Creation Date&#8221;，进度条选择&#8220;Progress&#8221;。如图 4 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig4" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 4. 修改某些选项</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 4. 修改某些选项" height="325" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image004.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="3" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">修改视图的布局。从窗口底部选择&#8220;View Layout&#8221;标签，从左侧列表中选择&#8220;Effort Tracking&#8221;和&#8220;Owner&#8221;到右侧列表。如图 5 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig5" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 5. 修改视图布局</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 5. 修改视图布局" height="216" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image005.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="4" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">为 sprint backlog 添加色彩。从窗口底部选择&#8220;Colorize&#8221;标签，根据自己的需要添加、修改、删除各种颜色。如图 6 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig6" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 6. 添加色彩</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 6. 添加色彩" height="171" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image006.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="5" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">保存所做的修改，用户将得到自己专属的 sprint backlog。显示的效果如图 7 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig7" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 7. 用户定制的 sprint backlog 显示结果</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 7. 用户定制的 sprint backlog 显示结果" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image007.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">当工作任务项不是很多的时候，这种方式非常适合进行 daily scrum。但是，如果当迭代计划中的工作任务项很多时，这种方式就不再适合了。为了解决这个问题，下一章将介绍最后一种用 RTC 进行 daily scrum 的方式。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.在RTC里创建自定义的查询进行DailyScrum"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">在 RTC 里创建自定义的查询进行 Daily Scrum</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">一般在进行 daily scrum 时，项目管理者需要查询出最近正在被修改的任务，这包括状态是&#8220;New&#8221;和&#8220;In progress&#8221;的任务。创建这种自定义的查询具体步骤如下：</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="1" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">在&#8220;Work Items&#8221;下的&#8220;My Queries&#8221;上点击鼠标右键，选择&#8220;New Query&#8230;&#8221;，如图 8 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig8" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 8. 创建一个查询</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 8. 创建一个查询" height="328" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image008.png" width="370" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在打开的窗口中点击&#8220;start from scratch&#8221;，如图 9 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig9" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 9. 从零开始创建一个查询</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 9. 从零开始创建一个查询" height="218" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image009.png" width="368" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="2" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">在打开的窗口底部选择&#8220;Conditions&#8221;标签，在窗口右上角点击加号，选择&#8220;Add Conditions&#8230;&#8221;添加查询条件，如图 10 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig10" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 10. 添加查询条件</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 10. 添加查询条件" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image010.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">根据需要选择一些查询条件，为这个查询取一个名字，保存。如图 11 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig11" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 11. 添加如下查询条件</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 11. 添加如下查询条件" height="460" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image011.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="3" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">共享刚刚创建的这个查询，供每个团队成员使用。如图 12 所示，在窗口底部选择&#8220;Details&#8221;标签，在窗口右上角点击&#8220;Share&#8221;，选择&#8220;Team or Project Area&#8230;&#8221;。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig12" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 12. 共享查询</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 12. 共享查询" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image012.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在弹出的窗口中选择共享这个查询给哪个团队，如图 13 所示，然后点击 OK，保存。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig13" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 13. 选择共享团队</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 13. 选择共享团队" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image013.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="4" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">根据需要定制查询结果的布局，包括选择显示哪些列，按照哪些列排序等，如图 14 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig14" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 14. 定制查询结果的布局</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 14. 定制查询结果的布局" height="311" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image014.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li value="5" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">显示查询结果。如果按照上述配置，查询结果将在&#8220;Work Items&#8221;标签下显示，如图 15 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig15" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 15. 查询结果</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 15. 查询结果" height="341" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcdailyscrumways/image015.png" width="570" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">这种召开 daily scrum 的方式能够列出在最后一天工作任务项的变化，以及哪些工作任务项还没有完成。但是它们都是以列表的方式显示出来，界面友好性和可读性不是很好。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="5.结束语"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">结束语</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">本文介绍了 daily scrum 在团队项目开发中的重要性，以及三种用 IBM Rational Team Concert 进行 daily scrum 的方式：默认的 sprint backlog，定制 sprint backlog，和创建自定义查询。这三种方式各有其优缺点:</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">当团队人员比较少，一般小于 5 人，并且只是关注当前 sprint task 时，比较适合采用第一种方式进行 daily scrum。使用它可以清楚的看到 Task 与 User Story 之间的层次关系，以及 User Story 的开发进度。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">当团队人员比较多，规模比较大，有自定义的 RTC Task 或者有子 Scrum Team 时，比较适合采用第二种方式进行 daily scrum。使用它与第一种方式一样，也是只关注当前 sprint task，但它还可以按照自定义的方式分组显示，更清楚的了解每个团队成员的 task 状态。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">当希望关注团队中所有 Task，而不仅仅是当前 sprint task 时，前两种方式都无法满足 sprint plan 的显示需求，可以考虑使用第三种方式自定义创建查询，进行 daily scrum。与前两种方式相比，它更加灵活，建立查询的条件非常丰富，可以根据需要创建多个查询同时使用。</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">请用户根据自己的需要选择不同的方式进行 daily scrum，进行高效的团队项目开发。</p>
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/paulwong/aggbug/391494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-11-17 11:16 <a href="http://www.blogjava.net/paulwong/archive/2012/11/17/391494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 Rational Team Concert 进行 Scrum 敏捷开发的使用经验</title><link>http://www.blogjava.net/paulwong/archive/2012/11/16/391406.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 15 Nov 2012 16:12:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/11/16/391406.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/391406.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/11/16/391406.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/391406.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/391406.html</trackback:ping><description><![CDATA[<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 是一个建立在可伸缩，可扩展平台上的团队协作开发工具，提供了很多功能，整合了软件开发项目生命周期的所有任务，包括计划、迭代、流程定义、变更管理、缺陷跟踪、源代码控制和源代码管理、产品构建自动化，和各种各样的分析报告等。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="1.1介绍RationalTeamConcert"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">1 介绍 Rational Team Concert</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 是建立在 Jazz 技术平台上，支持若干种 Agile 开发模型。Jazz 技术平台使软件开发更加灵活，支持团队成员分布在不同地理位置，提供从小型团队到大型企业的可扩展的软件开发解决方案。Rational Team Concert，有时简称 RTC，具有如下特性 :</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">贯穿整个软件开发生命周期的协作和集成</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">使用 Rational Team Concert，在软件开发中，能够实现信息的交换和信息集成，如果某个需求变化了，团队成员就会自动收到通知，团队成员也可以通过多种方式了解这种变化。Rational Team Concert 中的各种视图可以让你更详细地了解信息，跟进团队的开发进度和活动。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">流程配置和定制</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 使开发团队能够轻松和有效地执行和定制流程，这个流程是角色、实践活动、规则、权限的集合。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">变更管理</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 中，变更管理的主要特点是用工作项跟踪和协调各种任务，这些任务包括故事（story）、缺陷（defect）、计划项（plan item）、以及普通任务（task）等。工作项和工作流程是灵活可定制的，工作项也可以与其他的变更管理系统进行整合和集成。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">计划</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 中提供了工具来保证计划管理能力，对于项目团队，这些工具能够计划、跟踪、平衡项目的工作量，以反映团队的实际状态。对于 Scrum，可以创建和管理迭代计划。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">软件配置管理</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 内置的源代码控制管理系统是基于组件的和建立在 Jazz 平台上的，它支持并行和敏捷开发，支持分布在不同地理位置的团队开发，同时它紧密地集成了缺陷跟踪、构建、和以流程为中心的自动化。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">构建自动化</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">对于开发和测试团队，Rational Team Concert 提供了自动地构建识别、构建控制和构建可追溯性。团队成员可以跟踪构建的进度，查看构建的警告信息和结果，提交构建请求，并跟踪构建过程。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">仪表板和分析报告</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 的报告组件能够显示项目的进展和项目状态，可以容易地分析某些可能被隐藏的趋势；软件开发过程中的可视化数据和各种分析报告，能够支持有效的决策。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Eclipse 客户端，Visual Studio 客户端和 Web 界面</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">这些客户端界面为开发者提供了一个灵活的集成开发环境。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="2.2RationalTeamConcert与Scrum"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">2 Rational Team Concert 与 Scrum</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="1.Overview_of_the_scrum_process">Rational Team Concert 是个非常优秀的 Agile 敏捷开发管理工具，内置了几个过程模板，可以用来支持一些敏捷开发方法，比如 Scrum 过程、OpenUP 过程和 Eclipse Way 过程等等。本文分享一些使用 Rational Team Concert 实现 Scrum 敏捷开发的使用经验。</a></p>
<a name="1.Overview_of_the_scrum_process" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; ">Scrum 是一个典型的迭代式增量的敏捷软件开发过程。整个开发过程由很多次迭代组成，每一次迭代是一个 Sprint，每个 Sprint 的周期一般是 2 周到 4 周。在 Scrum 中，用 Product Backlog 来管理产品功能或项目的需求，用 Sprint backlog 管理每个 Sprint 的任务。在每个 Sprint 中，Scrum 产品负责人从 Product Backlog 中挑选最高优先级的需求，在 Sprint planning 会议上由团队成员讨论，估算工作量，确定 Sprint backlog 任务列表。在项目进行中，每天要举行 Scrum 例会（Daily Scrum meeting）。在每个 Sprint 结束时，Scrum 团队提交增量的可交付物。每个 Sprint 结束时，团队成员进行总结和回顾，吸取本次 Sprint 的经验教训，为下一个 Sprint 做准备。请参考图 1 Scrum 模型。</p>
<br />
</a><a name="fig1" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 1. Scrum 模型</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 1. Scrum 模型" height="227" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image001.png" width="497" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Scrum 由以下几个部分组成：</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">角色（Roles）
    <ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 1em; ">
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">产品负责人（Product owner）</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Scrum 负责人（Scrum master）</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">团队成员（Team member）</li>
    </ul>
    </li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">各种仪式和会议（Ceremonies）
    <ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 1em; ">
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">每天 Scrum 例会（Daily Scrum meeting）</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Sprint 计划会议（Sprint Planning meeting）</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Sprint 评审会议（Sprint Review meeting）</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Sprint 回顾会议（Sprint Retrospective meeting）</li>
    </ul>
    </li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">工件（Artifacts）
    <ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 1em; ">
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Product Backlog</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Sprint Backlog</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Burndown Chart</li>
        <li style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Impediments List</li>
    </ul>
    </li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Scrum 中，产品功能或项目的需求会列在 Product Backlog 中。Product Backlog 是一个项目所需的所有需求或功能的优先级列表，这个列表条目常常以用户故事（user story）的形式体现。产品负责人（product owner）维护这个列表，根据项目的进展和商业环境的变化修改优先级列表。产品负责人对产品的成功负责，定义产品特性和产品发布时间表，负责确定各种功能的商业价值，不断完善和优化 Product Backlog。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Scrum 负责人（Scrum master）管理 Scrum 过程，确保 Scrum 的做法是正确的，并且让团队成员理解 Scrum 的价值，消除项目进展中遇到的障碍，并保护团队成员不受外界干扰。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在每个 Sprint 开始的时候，小组举行 Sprint Planning 会议。在 Sprint Planning 会议上，产品负责人为即将到来的 Sprint 展示最想要实现的产品功能或项目需求，让团队成员把握和分析需要实现的功能，产品负责人和团队成员在本次 Sprint 中的目标达成一致，确定未来 2 周到 4 周的工作重点。然后团队成员决定如何完成这次 Sprint 的目标，并分解成所需的任务，这些任务就组成了 Sprint Backlog 的任务列表。在 Sprint Backlog 中，每个任务按小时预估完成时间，团队成员确定是否可以按时完成开发任务，如果没有足够的时间完成某个功能，可以将该功能从当前的 Sprint Backlog 中返回到 Product Backlog。Sprint Backlog 中列出了团队成员已经承诺在本次 Sprint 期间完成的工作。根据团队经验来评估工作量，而不是由 Scrum 负责人或产品负责人决定，这是 Scrum 的一个特点。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在每个 Sprint 结束，需要召开 Sprint Review 会议，评审已经完成的工作。Sprint Review 会议是一个简短和非正式的会议，任何感兴趣的人都可以参加，并从参与者得到一些反馈。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">团队成员可以举行 Sprint 回顾会议（<strong>Sprint Retrospective</strong>），分析项目的经验。通过本次 Sprint 回顾会议，不断改进团队工作方式和不断提高工作效率，为下一个 Sprint 做好准备。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 中提供了 Product Backlog 和 Sprint Backlog 的功能，它们同 Scrum 敏捷开发中的重要工件 Product Backlog 和 Sprint Backlog 一致。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 1.0 中，如果创建 Product Backlog，切换至 Team Artifacts 视图，并在项目区域中，选择 Release 1.0，然后选择 New &gt; Plan。在 New Plan 窗口中，输入 Product Backlog 作为名字。选择 Product Backlog 作为 Plan Type。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 3.0 中，在 PlansAll plansMain DevelopmentBacklog 下，有默认的 Product Backlog。打开 Product Backlog，点击 Planned Items 项，可以为 Product Backlog 添加工作项，这些工作项的类型为 Epic 和 story，对于 Scrum，类型为 story 和 epics 的工作项，描述了 Agile 中的用户故事，包括项目需求或产品功能。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在添加所有的工作项之后，产品负责人要为工作项设置优先级，优先级属性有 High、Medium 和 Low，这可以定义实现工作项的优先级顺序。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig2" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 2. Product Backlog</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 2. Product Backlog" height="208" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image002.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/origin_image002.png" target="_blank" style="color: #996699; ">图 2 大图</a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 中，Sprint Backlog 中包含了来自于 Product Backlog 相关的具体工作项。RTC3.0 含有默认的 Sprint，例如 Sprint1，Sprint2，并且有默认的 Sprint Backlog，对于有多个 Sprint 的项目，如果要创建新的 Sprint Backlog，首先需要创建 Sprint，然后才能为该 Sprint 创建 Sprint Backlog。打开 Sprint Backlog，在 Sprint Backlog 的 Notes 页面上，能够填写 Sprint 的目标，在 Planned Items 页面上，可以为 Sprint 添加工作项，然后，详细分解工作项，定义任务。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig3" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 3. Sprint Backlog</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 3. Sprint Backlog" height="437" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image003.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">还有另外一种方法为 Sprint 添加工作项，在 RTC 中，打开 Product Backlog 窗口，选择相关的工作项，然后右击并选择 Plan For，把这个工作项指定给某个 Sprint。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig4" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 4. 给 Sprint 添加工作项</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 4. 给 Sprint 添加工作项" height="295" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image004.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/origin_image004.png" target="_blank" style="color: #996699; ">图 4 大图</a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Sprint Planning 会议中，团队成员分析需要完成的任务，为每个任务估计时间，</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">当估计完所有的工作项之后，可以看到每一个故事的总体估计值，以及整个 Sprint 阶段的总体时间估计值。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">一般来说，Scrum 负责人分配任务给团队成员，团队成员也可以主动领取，在 Sprint Backlog 的列表内，可以实现将任务分配给团队成员。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig5" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 5. 给工作项分配所有者</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 5. 给工作项分配所有者" height="227" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image005.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/origin_image005.png" target="_blank" style="color: #996699; ">图 5 大图</a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在每个 Sprint，团队成员要每天更新 Sprint Backlog 中的工作项状态和时间估计，这样，根据更新后的工作项，RTC 便可以产生一个 Sprint Burndown 图表，这个 Sprint Burndown 图表以图形方式显示剩余的工作项和工作量，显示项目的进展，预测项目的未来情况。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="3.3使用RationalTeamConcert有效地进行每天的Scrum会议"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">3 使用 Rational Team Concert 有效地进行每天的 Scrum 会议</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Agile 敏捷开发实践中，强调团队的自我管理。在 Scrum 中，自我团队管理体现在每天的 Scrum 会议中和日常的协同工作，在每天的 Scrum 例会中，团队成员一般回答一下几个问题 :</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">昨天完成了什么？</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">今天要做什么？</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">项目进展中，遇到了什么障碍和问题？</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">整个会议应该少于 15 分钟。这种经常性的沟通，让团队成员能够了解每个人都在做什么，他们正面临着什么问题，有什么事情需要其他团队成员帮助解决，提高团队成员的协作。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Scrum 中，要坚持举行<strong>每天的 Scrum 会议&nbsp;</strong>, 了解团队成员的工作进展和遇到的问题，Scrum 负责人要维护一个障碍列表（<strong>Impediments List）</strong>，帮助解决团队成员遇到的阻碍和问题，保证项目顺利进行。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">每天的 Scrum 会议可以增加团队成员之间的沟通，并帮助团队成员更有效地工作。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 中，通过集成的视图，团队成员能够了解各种任务、计划、工作项，也可以查看当天需要完成的工作项，当团队成员更新每日的工作项时，其他成员也可以看到。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 中，通过持续跟进工作项，团队成员可以更好地了解工作项的优先级，集中精力在优先级高的工作项上，保证项目的正常进展。团队成员还可以规划自己的工作内容和更新剩下的工作项。例如，在 Rational Team Concert 的迭代计划编辑器中，团队成员可以直接看到今天或本周的工作项。这些都有助于每天的 Scrum 会议，了解每天的 Scrum 会议中的问题。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Team Central 视图中的 Team Load 部分也可以显示团队工作负荷，在每天的 Scrum 会议之前，Scrum 负责人可以监控团队成员工作负荷。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 提供了 My Work 视图以帮助每一位团队成员查看和跟踪自己的工作项状态。在 Sprint 阶段，团队开发人员可以在 My Work 视图中看到任务和工作项。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig6" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 6. My work 视图</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 6. My work 视图" height="334" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image006.png" width="408" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Planned Time 视图可以查看工作项的剩余时间，支持 Daily Scrum 会议，团队成员可以根据 Planned Time 视图讨论哪些已经完成和哪些还没有完成。为了帮助跟进每个工作项的工作量，团队成员应该在 RTC 中每一天更新每个任务的剩余时间。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig7" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 7. Planned Time 视图</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 7. Planned Time 视图" height="167" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image007.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/origin_image007.png" target="_blank" style="color: #996699; ">图 7 大图</a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">开发员的任务面板也可以分配和监视工作项，它显示了每个团队成员的任务。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">团队成员可以使用查询来监视工作的进展状况，Rational Team Concert 已经有很多可用的预定义查询，还可以轻松创建新的查询。预定义的查询，预定义了一些查询条件，可以直接用来查询工作项，比如，'Open assigned to me'，'Recently modified'等，这些预定义的查询可以用于每天的 Scrum 会议，团队成员和 Scrum 负责人可以快速了解每个工作项的进展。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig8" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 8. 创建一个新查询</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 8. 创建一个新查询" height="314" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image008.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">对于地理位置上分散的团队，每天的 Scrum 会议有时通过电话或视频会议进行。Rational Team Concert 可以更好地辅助管理每天的 Scrum 会议，可以很快捕捉和处理阻碍项目的事情，然后，通过团队成员的协作，完成这些工作项或重新分配这些工作项。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.4在Scrum中，用RationalTeamConcert进行软件源代码控制管理"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">4 在 Scrum 中，用 Rational Team Concert 进行软件源代码控制管理</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Agile 敏捷开发最佳实践中，持续集成和自动化构建可以保证高质量的软件开发，持续地交付有价值的软件产品来提高客户的满意度。作为软件开发项目，需要一个高效和协作的软件源代码控制管理系统。Rational Team Concert 就是这种源代码控制管理系统，可以进行变更管理和配置管理，帮助开发团队管理源代码、管理文档、跟踪代码和共享代码的各种变化，并保持整个开发团队的高效协同工作；同时，Rational Team Concert 提供了自动地构建增量可交付物的功能，实现了软件开发的持续集成和自动化构建，实现高效的敏捷开发。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">下图显示了在 Rational Team Concert 中源代码控制流转过程，开发人员把变更的源代码检入到存储库工作空间；然后提交到共享的开发流中，其他开发人员接受这些变更的源代码，并且装载到存储库工作空间中。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig9" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 9. 源代码控制流转过程</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 9. 源代码控制流转过程" height="326" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image009.png" width="411" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 中进行源代码检入（check in）和检出（check out），需要连接存储库和项目区域，下载源代码到本地存储库工作空间中。首先把源代码从开发流装载到本地存储库工作空间，然后，在本地存储库工作空间修改源代码，提交变更的源代码到开发流中。开发人员在 Pending Changes 视图中，展开 Unresolved 节点，检入源代码，加上一些注解，然后，在 Outgoing 节点下，通过提交（Deliver）的功能，就可以把变更的源代码提交到开发流中。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">当开发人员提交了变更的源代码到开发流中，团队中其他成员就可以接受这些变更，把变更的源代码同步到自己的本地存储库工作空间中。开发人员在 Pending Changes 视图中的 Incoming 节点下，选择变更集，然后，接受（Accept）这些变更，这些变更的源代码就进入了自己的存储库工作区。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="5.5在Scrum中，灵活使用RationalTeamConcert的工作项"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">5 在 Scrum 中，灵活使用 Rational Team Concert 的工作项</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Agile 敏捷开发中，以用户故事（user story）的形式定义各种需求，Rational Team Concert 为 Agile 敏捷开发提供了类型为故事（story）和历史（Epic）的工作项，可以定义用户故事，定义的工作项会显示在 Product Backlog 中。在每个 Sprint，Sprint Backlog 中的任务也是一种类型的工作项，同时，工作项也是跟踪、协调开发任务和工作流转的基本机制，它是各种部件和元素之间的联系枢纽。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Scrum 过程中，Rational Team Concert 提供了一些常用的预定义工作项类型，这些类型的工作项全面支持 Scrum 敏捷开发。</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">缺陷（defect）：定义缺陷和跟踪缺陷。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">回顾（retrospective）：记录先前正常但在最近完成的迭代中不再正常的内容。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">故事（story）：描述用户故事和需求。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">历史（Epic）：用户故事或需求很大而需要在多个迭代（Sprint）中完成，或者由于未知情况过多而无法估计工作量的用户故事。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">任务（task）：描述特定的工作任务。</li>
    <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">障碍（impediment）：跟踪导致无法取得进展的因素。</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Rational Team Concert 中，Product Backlog 中的用户需求或产品需求是通过工作项来描述，在 Scrum 的每次迭代中，用户需求或产品需求会被分解成为足够小的类型为任务的工作项，放在 Sprint Backlog 里，并且每一个任务是被赋予了优先级。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在工作项中有很多属性，充分和准确使用这些属性，Rational Team Concert 可以让 Scrum 敏捷开发更有效率。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig10" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 10. 工作项属性</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 10. 工作项属性" height="264" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscrumexperience/image010.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">摘要（Summary）字段是一个工作项的简短总结和标题，可以让 Scrum 成员和 Scrum 负责人快速理解工作项内容。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">工作项的类型（Type）定义了工作项的特性，包括缺陷（defect），任务（Task），故事（Story）等，不同的类型有不同的属性和不同的状态变化。类型为故事（story）的工作项，可以描述 Scrum 的 Product backlog 中的用户需求或产品需求。类型为任务（task）的工作项可以定义 Scrum 中每一次迭代（Sprint）的任务。类型为缺陷（defect）的工作项可以记录每个 Sprint 中测试验证阶段的缺陷，跟踪缺陷的修复状态和进展。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">严重级别（Severity）定义了工作项的严重等级。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">描述（Description）字段详细描述了工作项的目标和相关信息，描述 Scrum 中的需求和任务。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">所有者（owner），显示这个工作项当前的拥有者或执行者。在 Scrum 中，团队成员可以通过这个字段知道自己负责的任务，Scrum 负责人可以分配任务和了解团队成员的任务情况，在每天的 Scrum meeting 时，可以监控 Sprint 的进展。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">优先级（Priority）属性指定这个工作项的重要性和优先顺序。高优先级的工作项将会被优先开发并确保完成。低优先级的任务有可能被转入下一个迭代（Sprint）周期继续开发。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">计划目标（Planned for）属性指定这个工作项属于某个 Sprint。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">状态 / 解决（<strong>State/Resolution</strong><strong>），</strong>显示这个工作项的当前状态。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 RTC 中，灵活使用工作项，可以提高 Scrum 的执行效率，下面介绍一些使用工作项的技巧：</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在摘要（Summary），描述（Description）和讨论（Discussion）字段中，支持粗体（"bold"）和斜体（"italic"），也可以创建与其他工作项的链接。在工作项中，可以选择一些文本，使用上下文菜单中提取工作项的功能（Extract Work Item），提取相关的工作项内容。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在讨论（Discussion）字段中，添加评论，也可以和评论的作者进行聊天会话或发送邮件。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在快速信息（Quick Information）部分 , 可以通过上下文菜单添加订阅者、附件、链接到其他工作项，也可以附加屏幕截图。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">可以使用"查找"对话框，搜索包括摘要（Summary），描述（Description）和讨论（Discussion）部分的内容。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在编辑器的工具栏中，可以使用'寻找潜在的重复工作项'（Find Potential Duplicates），发现可能重复定义的工作项。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="6.6总结"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">6 总结</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Rational Team Concert 是一个建立在可伸缩和可扩展平台上的团队协作开发工具，整合了软件开发项目生命周期的所有任务，包括计划、迭代、流程定义、变更管理、缺陷跟踪、源代码控制和源代码管理、产品构建自动化，和各种各样的分析报告等。Rational Team Concert 有力地支持了一些 Agile 敏捷开发方法，利用 Rational Team Concert 进行 Scrum 敏捷开发，能够开发出高质量的产品和项目，能够进行高效率的协同工作，持续的集成和自动化构建交付物。</p>
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/paulwong/aggbug/391406.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-11-16 00:12 <a href="http://www.blogjava.net/paulwong/archive/2012/11/16/391406.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAZZ资源</title><link>http://www.blogjava.net/paulwong/archive/2012/10/31/390567.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 31 Oct 2012 14:14:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/10/31/390567.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/390567.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/10/31/390567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/390567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/390567.html</trackback:ping><description><![CDATA[扩展 Rational Team Concert 进行缺陷和代码质量分析 
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodequalityanddefectanalysis/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodequalityanddefectanalysis/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>基于 Rational Team Concert 和 Maven 的差分发布</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmavendifferentiatedrelease/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmavendifferentiatedrelease/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>利用 Rational Team Concert 实现 Rational Functional Tester 自动化测试脚本的版本控制</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rfttestscriptversioncontrolinrtc/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rfttestscriptversioncontrolinrtc/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>在敏捷开发中如何使用 Rational Quality Manager 缩短软件测试周期</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rqmshortenagiletestcycle/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rqmshortenagiletestcycle/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>《孙子兵法》在敏捷项目管理中的应用</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-sunzibingfainagileprojectmanagement/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-sunzibingfainagileprojectmanagement/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>Rational Team Concert 用户的自动化管理</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/automate-management-rational-team-concert-users/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/automate-management-rational-team-concert-users/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>敏捷项目管理实战之进度管理</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-agileprojectprogressmanagement/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-agileprojectprogressmanagement/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>基于 Rational Team Concert 实现持续集成</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccontinuousintegration/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rtccontinuousintegration/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>利用 Selenium 和 Rational Performance Tester 轻松实现 Web 性能测试</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-seleniumrptwebtesting/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-seleniumrptwebtesting/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>急速性能测试之旅: 使用 Rational Performance Tester 8.2 完成 web 应用性能测试，第 2 部分</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rpt82webtest2/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rpt82webtest2/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div>用 Rational Team Concert SCM Tool 实现代码自动化部署</div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscmtool/index.html" target="_blank">http://www.ibm.com/developerworks/cn/rational/r-cn-rtcscmtool/index.html</a><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div><img src ="http://www.blogjava.net/paulwong/aggbug/390567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-10-31 22:14 <a href="http://www.blogjava.net/paulwong/archive/2012/10/31/390567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在 Rational Team Concert 中多个 stream 代码同步的方法</title><link>http://www.blogjava.net/paulwong/archive/2012/10/31/390564.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 31 Oct 2012 13:36:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/10/31/390564.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/390564.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/10/31/390564.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/390564.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/390564.html</trackback:ping><description><![CDATA[<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="1.stream简介"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">stream 简介</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Stream（流）是 Jazz 源代码管理系统中的重要成员，体现项目开发中的一个版本，由一个或者多个 component（ 组件）构成。流的建立使得团队成员在不同的版本之间进行代码的共享与管理，满足项目迭代开发中代码管理的需要，促进团队成员之间更好的协作。组件是代码共享与管理的基本单位，由一个文件或者文件夹所构成，团队成员可以通过使用流中的组件进行代码的共享。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="2.多个stream的应用场景"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">多个 stream 的应用场景</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">目前，软件开发中迭代开发非常普遍，项目的开发经常涉及两个或多个版本。即在一个版本尚未发布就需要进入下一个软件版本的开发，这样使得项目开发人员需要同时维护多个软件版本。特别是一个缺陷需要在多个版本上解决，这样在这些不同的软件版本上进行代码同步就成为团队开发人员日常的工作内容。如何简化代码同步的流程，提高多个软件版本代码同步的效率以及减少在多个软件版本中由于代码同步引起的缺陷数，对于降低软件开发成本和提高软件质量具有重要的意义。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="3.RTC对多stream代码同步的支持"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">RTC 对多 stream 代码同步的支持</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">源代码管理与共享是项目开发中的重要内容，而 RTC 作为主流的源代码管理工具，对项目的源代码的管理与共享提供了很好的机制。在实际的项目开发过程中，项目拥有者需要在远程 Jazz 服务器上创建 stream，项目开发人员在远程 Jazz 服务器上基于此 stream 创建自己的版本库工作空间。除此之外，开发人员还需要在本地的机器上创建自己的本地工作空间。开发人员通过 Check-in 操作将本地工作空间的改动同步到远程 Jazz 服务器上的自己的版本库工作空间，通过 Deliver 操作将远程版本库工作空间的代码同步到团队共享的 stream 上。其他团队人员则通过 Accept 操作将代码从 stream 同步到自己远程的版本库工作空间，并通过 Load 操作将版本库工作空间的源代码下载到本地的工作空间。依此类推，RTC 就可以同时管理多个 stream 并进行有效的共享，其具体的源代码管理与共享机制如图 1 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig1" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 1. RTC 中多 stream 源代码管理与共享机制</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 1. RTC 中多 stream 源代码管理与共享机制" height="362" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image001.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">通过 RTC 中对源代码的管理与共享机制可以看出，如果不进行任何修改与配置，在多个 stream 上，开发人员只能通过单独维护每个 stream 上的源代码，并在这些 stream 上进行代码的来回复制达到多 stream 上的源代码同步，这样无疑增加了维护和同步多个 stream 上的源代码成本。事实上 RTC 可以通过更改相应的 flow target（目标流指向）来简化多 stream 上的源代码同步，有效的提高项目开发的效率。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">总的来说，RTC 对多 stream 上源代码的同步提供了三种方式：各 stream 单独同步，stream 由低版本向高版本同步及 stream 由高版本向低版本同步，具体操作如下图所示（图中以两个 stream 为例，多个 stream 可以依此进行类推）：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig2" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 2. 各 stream 单独同步</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 2. 各 stream 单独同步" height="531" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image002.png" width="494" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig3" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 3. stream 由低版本向高版本同步</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 3. stream 由低版本向高版本同步" height="442" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image003.png" width="503" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig4" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 4. stream 由高版本向低版本同步</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 4. stream 由高版本向低版本同步" height="440" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image004.png" width="510" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">从图 2 可以看出，同步 stream1 和 stream2 上的源代码需要在每个 Local workspace 上 Check-in 相应的代码，在同步第二个 stream 时需要从一个 Local workspace 上拷贝源代码到另一个 Local workspace 上，这样加大了开发人员的工作量，并且增加了一些由拷贝源代码所造成的缺陷。图 3 与图 4 的同步机制没有多大差别，图 3 所示的为源代码从低版本（stream1）向高版本（stream2）同步，开发人员先将代码提交到 stream1，然后改变 stream2 的目标流指向，接受之前提交到 stream1 上的变更集，最后通过 Jazz Server 上的 Repository workspace 将变更集提交到 stream2 上。图 4 所示为源代码从高版本（stream2）低高版本（stream1）同步，具体过程与低版本（stream1）向高版本（stream2）同步相反。由于高版本往往会包含低版本没有实现的功能，所以对于多 stream 的源代码同步，采用从低版本向高版本同步的方式遇到的潜在的源代码冲突相对较少，开发人员解决这些冲突并合并变更集所付出的成本也随之降低。因此，在实际项目开发中，对于多 stream 的源代码同步，采用低版本（stream1）向高版本（stream2）同步的方式最佳。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.RTC中多stream代码同步的示例"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">RTC 中多 stream 代码同步的示例</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">由于多 stream 从低版本中向高版本同步时潜在的冲突最少，因此本文将以这种同步方式作为示例说明如何在两个 stream 实现源代码的同步。对于三个或三个以上 stream 的代码同步，读者可以依此类推。在示例中，我们拥有两个 stream，6.3.1.1 和 6.3.2。并且我们已经创建好两个 stream 上对应的两个我们自己的版本库工作空间。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.1.无代码冲突情况下的代码同步"><span class="smalltitle" style="font-size: 1.2em; font-weight: bold; ">无代码冲突情况下的代码同步</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">打开 Pending Changes 视图，在 6.3.1.1 版本库工作空间上有个新的可交付变更集，右击选择 deliver 对其进行交付，具体操作如图 5 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig5" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 5. 交付变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 5. 交付变更集界面" height="242" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image005.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">打开更新版本的 6.3.2 版本库工作空间，更改其 Flow Targets 到 6.3.1.1 stream。如图 6 所示，将 6.3.1.1 stream 置成当前 flow target 且是默认 flow target，然后确认保存。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig6" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 6. 版本库工作空间界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 6. 版本库工作空间界面" height="230" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image006.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">保存后结果如图 7 所示。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig7" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 7. 更改 Flow Target 界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 7. 更改 Flow Target 界面" height="230" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image007.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">如图 8 所示，此时再次查看 Pending Changes，6.3.2 版本库工作空间已经指向 6.3.1.1 stream，刚才在 6.3.1.1 版本库工作空间中交付的变更集出现在 6.3.2 版本库工作空间的可接受变更集中。此时该变更集与 6.3.2 版本库工作空间中代码不存在冲突，可以直接选择接受。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig8" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 8. 接受 Incoming 变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 8. 接受 Incoming 变更集界面" height="165" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image008.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">接受后，将 6.3.2 版本库工作空间的 flow target 改回 6.3.2 stream ，如图 9 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig9" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 9. FlowTarget 配置界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 9. FlowTarget 配置界面" height="174" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image009.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">从图 10 中可以看出，在 Pending Changes 中，6.3.2 版本库工作空间中有了新的可交付变更集，该变更集正是 6.3.1.1 版本库工作空间之前交付的变更集。由于不存在冲突，我们可以直接将该变更集交付到 6.3.2 stream 中，从而实现两个 stream 上针对该变更集的源代码同步。在下一节中我们将给出存在代码冲突的同步示例，为了模拟这种情况，我们暂且不交付此变更集。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig10" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 10. 交付 Outgoing 变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 10. 交付 Outgoing 变更集界面" height="269" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image010.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.2.有代码冲突情况下的代码同步"><span class="smalltitle" style="font-size: 1.2em; font-weight: bold; ">有代码冲突情况下的代码同步</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">同样，打开 Pending Changes 视图，在 6.3.1.1 版本库工作空间提交一个新的变更集模拟代码冲突，右击选择 deliver 对其进行交付，具体操作如图 11 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig11" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 11. 交付 Outgoing 变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 11. 交付 Outgoing 变更集界面" height="198" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image011.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">更改 6.3.2 版本库工作空间 flow target 到 6.3.1.1 stream。从 Pending Changes 视图中可以看到 6.3.1.1 版本库工作空间中新提交的变更集。该变更集前出现橙色高亮，说明该变更集和 6.3.2 版本库工作空间中可交付的变更集存在代码冲突。具体操作如图 12 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig12" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 12. 接受 Incoming 变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 12. 接受 Incoming 变更集界面" height="153" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image012.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">选择接受该变更集，此时会弹出是否自动解决冲突的对话框如图 13，我们这里建议选择 Resolve Later，以防止出现代码合并错误的情况发生。下面我会给出具体的情况说明在接受冲突变更集后如何 Resolve。Resolve 有两种方法：自动合并和手动合并。什么时候选择自动合并，什么时候需要手动合并，这对于维护代码的同步和准确性十分重要。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig13" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 13. 冲突提示界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 13. 冲突提示界面" height="185" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image013.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">选择 Resolve Later 后，将 6.3.2 版本库工作空间的 flow target 改回 6.3.2 stream。如图 14 所示，出现未解决代码冲突。双击打开冲突比较视图。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig14" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 14. 未解决冲突界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 14. 未解决冲突界面" height="214" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image014.png" width="544" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">如果视图中仅有蓝色标识，说明没有严重冲突。如图 15 所示，可以选择 Auto Merge 自动合并代码。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig15" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 15. 自动解决冲突操作</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 15. 自动解决冲突操作" height="352" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image015.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image015_lg.png" target="_blank" style="color: #996699; ">图 15 大图</a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">如果视图中有红色标识，说明存在严重冲突，自动合并代码将导致代码错乱。如图 16 所示，将红色部分右侧代码拷贝覆盖到左侧，手工完成覆盖后，选择 Resolve As Merge 完成合并。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig16" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 16. 手动解决冲突界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 16. 手动解决冲突界面" height="314" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image016.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a href="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image016_lg.png" target="_blank" style="color: #996699; ">图 16 大图</a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在弹出的对话框中选择 OK 确定手动合并操作，如图 17 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig17" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 17. 手动解决冲突确认界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 17. 手动解决冲突确认界面" height="396" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image017.png" width="495" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">这样合并完成后，6.3.2 版本库工作空间可交付变更集如图 18 所示。此时可看到被合并的原变更集后出现 1 merged 字样，合并操作完成。对其交付后，6.3.1.1 stream 和 6.3.2 stream 在该变更集存在冲突的情况下实现了代码同步。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig18" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 18. 交付合并后变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 18. 交付合并后变更集界面" height="305" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image018.png" width="555" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.3.撤销已交付的错误代码"><span class="smalltitle" style="font-size: 1.2em; font-weight: bold; ">撤销已交付的错误代码</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在同步两个或多个 stream 的时候，很可能误将不属于本 stream 的代码 deliver 到 stream 上。如果错误交付的代码过多的话，手动去删除错误交付的代码将会需要花费很大的工作量来将代码还原到原来的状态。而且，还会带来代码被错误修改的风险。而 RTC 提供了一种回退（Reverse）的功能，将错误交付的代码自动清除掉，并恢复到原来的状态。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">回退（Reverse）功能的具体操作步骤如下：</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="1" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">右击错误提交的代码所相关的 work iteam，并单击弹出的 Reverse 菜单。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig19" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 19. work iteam 的回退</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 19. work iteam 的回退" height="149" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image019.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="2" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">点击 Reverse 菜单后，会弹出如下图 20 所示的窗口，指示修改前的文件将会在 Pending Patches 以 patch 的形式显示出来。然后，点击 OK 按钮。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig20" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 20. 添加到 Pending Changes</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 20. 添加到 Pending Changes" height="255" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image020.png" width="539" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="3" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">如图 21 所示，在 patch 中你可以通过双击 java 文件来查看原来文件里的内容和错误交付代码后的文件的差异，来查看是否是你想要恢复的结果。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig21" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 21. Patch 显示界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 21. Patch 显示界面" height="177" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image021.png" width="525" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="4" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">将这个 patch 添加到现有的 workspace 上面，从而将原有的变更集先恢复到本地的 workspace 上。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig22" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 22. 合并 Patch 界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 22. 合并 Patch 界面" height="131" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image022.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="5" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">原有的文件将会作为未提交的文件显示出来。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig23" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 23. 未解决冲突界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 23. 未解决冲突界面" height="162" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image023.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="6" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">通过将原有的代码重新 check-in 和 deliver，从而将被错误修改的代码从项目组共享的 stream 上删除出去。</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig24" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 24. Check-in 变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 24. Check-in 变更集界面" height="478" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtcmultistreams/image024.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">如果将代码错误提交到 stream 后，有其他开发人员提交了自己的代码，这个时候要进行回退的时候，需要查看需要回退的文件是否和其他开发人员修改的文件有冲突。如果有冲突，可以通过前面提过的方法进行代码冲突的整合；或者把错误提交代码以后其他开发人员提交的代码先回退回去，在把错误提交的代码从 stream 上删除以后，重新将其他开发人员提交的代码 deliver 到 stream 上。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="5.致谢"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">致谢</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">衷心的感谢钱巧能工程师在本文大纲方面的讨论所提供的意见和支持。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="6.结束语"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">结束语</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">本文详细介绍了 RTC 代码同步的原理，并且比较了目前 RTC 中多 stream 上代码同步的几种方法，最后以具体示例说明了如何在 RTC 中进行多 stream 的代码同步，解决代码同步中出现的冲突及如何撤销错误的代码同步。读者可以通过阅读本文，掌握各种在 RTC 中多 stream 代码同步的方法，并根据项目实际情况选择，灵活运用，提高项目开发的整体效率。</p>
<img src ="http://www.blogjava.net/paulwong/aggbug/390564.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-10-31 21:36 <a href="http://www.blogjava.net/paulwong/archive/2012/10/31/390564.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 IBM Rational Team Concert（RTC）进行代码评审</title><link>http://www.blogjava.net/paulwong/archive/2012/10/31/390563.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 31 Oct 2012 13:19:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/10/31/390563.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/390563.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/10/31/390563.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/390563.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/390563.html</trackback:ping><description><![CDATA[<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="1.简介"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">简介</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">本文介绍了 IBM Rational Team Concert（RTC）的代码评审功能（Code Review）。这一功能可以使代码评审流程变得更加规范，完善代码提交流程；对于不同区域的成员可以更高效的协同工作，在代码提交前发现到潜在的问题，尽快修复，提高代码质量，有效减少缺陷数。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="2.代码评审的重要性"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">代码评审的重要性</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">多数情况下，评审者能够发现开发人员自身不能发现的问题或潜在问题，毕竟思维方式和考虑的点等会有差异</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">优秀的评审者通过评审，不仅可以发现开发人员的不足，更可以通过开发人员的代码学到很多知识</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">对团队而言，通过评审以及互相评审，了解到其他团队成员负责的任务，必要时互相帮忙，互为后援，提高项目开发效率，降低项目风险</li>
</ul>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="3.代码评审的规则"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">代码评审的规则</span></a></p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">从逻辑上讲，本次修改是否符合需求，是否有类似的地方需要修改</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">可读性上，是否有足够的解释说明，以便以后维护</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">就代码规范而言，是否符合公司代码规范，以保持代码风格一致性</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">从代码性能上讲，是否有更有效的方案可以实现</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">单元测试（如果必要），测试用例是否能覆盖本次的修改</li>
</ul>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.RTC对代码评审的支持"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">RTC 对代码评审的支持</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">作为目前主流的代码管理工具，RTC 对代码评审的功能已经有了很好的支持，比如利用邮件作为代码提交者与评审者通信的工具，代码评审过程中各个角色的划分，代码提交的权限设置等等，本节将具体介绍 RTC 在代码评审过程中所涉及的概念及详细配置。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.1.对邮件的支持"><span class="smalltitle" style="font-size: 1.2em; font-weight: bold; ">对邮件的支持</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在整个代码评审过程中，邮件是作为代码提交者及其他相关人员之间的重要通信工具，比如在代码评审前提交、对代码添加修改意见，团队相关人员都应收到相应的邮件提醒，用户可以通过如下配置是否启用邮件支持：</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="1" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">打开 Repository Connections 界面并连接</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig1" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 1. Repository 连接界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 1. Repository 连接界面" height="129" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image001.gif" width="385" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="2" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">打开用户编辑窗口，如图 2 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig2" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 2. Open My User Editor</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 2. Open My User Editor" height="106" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image002.gif" width="395" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="3" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">找到 Mail Configuration 页面，进行相应的配置并保存，如图 3 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig3" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 3. 邮件配置界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 3. 邮件配置界面" height="468" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image003.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.2.代码评审中所涉及的角色的划分"><span class="smalltitle" style="font-size: 1.2em; font-weight: bold; ">代码评审中所涉及的角色的划分</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在整个代码评审过程中，RTC 将会涉及到如下几种角色</p>
<ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Submitter：代码提交者，由实现新功能的开发者自己担任，可执行的操作有 Submit for review、Check-in，Deliver、Add Approver 等等。</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Review：代码审查人员，负责代码提交前细粒度的代码审查工作，排除潜在的缺陷，一般由团队中对所要修改的代码比较熟悉的人员担任。可执行的操作有 Add comment、Rejected、Approved 等。</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Approver：代码评阅者，负责代码提交前粗粒度的代码审查工作，一般由资深开发人员及 tech lead 担任，可执行的操作有 Add comments，Rejected、Approved 等。</li>
     <li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; ">Verifier：功能的验证者，对功能的实现作一些单元测试等等。</li>
</ul>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">事实上对于以上这些角色，Submitter，Reviewer 和 Approver 是必须，Verifier 是可选的，用户可以根据团队实际情况决定在代码评审过程中是否需要 Verifier。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="4.3.代码提交前的权限控制"><span class="smalltitle" style="font-size: 1.2em; font-weight: bold; ">代码提交前的权限控制</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">RTC 在代码提交时有了较好权限配置的支持，用户（一般由 Project owner 或团队的 tech lead 配置此权限）可以根据如下步骤进行配置：</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="4" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">连接自己所在的项目并打开，如图 4 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig4" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 4. 项目连接界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 4. 项目连接界面" height="331" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image004.png" width="444" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="5" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">切换到 Project Area 中的 Process Configuration 页面，如图 5 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig5" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 5. 流程配置界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 5. 流程配置界面" height="300" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image005.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="6" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">双击 Team Configuration 中的 Operation Behavior 选项，如图 6 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig6" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 6. 操作行为界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 6. 操作行为界面" height="406" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image006.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="7" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">从右边列表中选择 Source Control 中的 Deliver（server）选项，双击对应 Everyone(default) 图标，并双击 Add ... 按钮添加代码提交时的 Preconditions. 如图 7 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig7" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 7. Add Preconditions</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 7. Add Preconditions" height="512" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image007.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="8" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">在弹出的 Add Preconditions 对话框中选择 Require Work Item Approval 选项，如图 8 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig8" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 8. Add Preconditions 界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 8. Add Preconditions 界面" height="386" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image008.gif" width="385" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="9" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">双击 Required approvals 栏中 new ... 按钮添加代码提交时的 Required Approval，针对不同的 Approval 类型选择相应的 Approvers，单击 ok 按钮，最后保存所有配置。如图 9 所示：</li>
</ol>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig9" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 9. 添加 Approval</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 9. 添加 Approval" height="423" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image009.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">经过上述一系列配置后，代码提交者必须先取得相应的 Approval 之后才能提交代码，从而达到代码提交时的权限控制，保证代码的质量。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="5.RTC代码评审使用示例"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">RTC 代码评审使用示例</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 RTC 中，代码评审的流程大致如下，各个团队可以根据实际情况进行优化。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig10" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 10. 代码评审时序图</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 10. 代码评审时序图" height="395" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image010.png" width="526" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">下面我将以一个简单的实例来说明在 RTC 中是如何进行代码评审的：</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="1" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">Check in 变更集</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">修改源代码，在 RTC 客户端中找到 Pending Changes 视图，并将这些变更集 check in 到在 Jazz repository 上的 workspace，如图 11 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig11" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 11. Check in 变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 11. Check in 变更集界面" height="192" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image011.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="2" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">关联 work item</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Pending Changes 视图中，将 check in 的变更集关联到相应的 work item(story 上的 task work item 或者是 issue 类型的 work item) 上。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig12" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 12. 关联 work item 界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 12. 关联 work item 界面" height="191" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image012.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="3" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">提交代码给相应的 approver review</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在 Pending Changes 视图中，找到相应的 Outgoing 变更集，点击右键菜单中的 Submit for Review... 选项。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig13" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 13. Submit for Review 界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 13. Submit for Review 界面" height="244" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image013.gif" width="501" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="4" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">添加注释和相应的 Approver</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">在弹出的 submit for review 的对话框中添加相应的注释及添加相应的 Approver 类型（具体类型请参考 RTC 中对代码评审章节）。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig14" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 14. 添加注释和 Approver 对话框</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 14. 添加注释和 Approver 对话框" height="471" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image014.gif" width="446" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="5" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">确定需要评审代码关联的 work item</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Approver 将会根据 RTC 中关于代码评审的邮件找到相应的 work item，并从 work item 中找到链接页面。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig15" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 15. work item 链接界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 15. work item 链接界面" height="354" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image015.png" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="6" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">查找对应的变更集</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">Approver 从链接页面中找到需要评审的变更集，双击此变更集，变更集将会在 RTC 客户端的变更视图中显示。</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig16" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 16. 查看变更集界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 16. 查看变更集界面" height="215" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image016.gif" width="448" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="7" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">给出评审结果及意见</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">每个 Approver 根据代码评审的实际情况给出相应的修改意见和评审意见，如对于哪一行代码需要修改或者同意提交等等，具体操作如图 17 所示：</p>
<br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<a name="fig17" style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; "><strong style="padding: 0.3em 5px 0.7em; font-size: 0.76em; font-family: arial, sans-serif; ">图 17. 代码评审界面</strong></a><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<img alt="图 17. 代码评审界面" height="366" src="http://www.ibm.com/developerworks/cn/rational/r-cn-rtccodereview/image017.gif" width="572" style="border: 0px; padding: 0.3em 5px 0.7em; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " /><span style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; ">&nbsp;</span><br style="font-family: Times; font-size: medium; line-height: normal; text-align: left; background-color: #ffffff; " />
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">如果给出的评审结果为同意提交，则 submitter 直接进入代码提交阶段。如在此阶段给出的评审结果为拒绝，则 submitter 需要从 work item 的 overview 视图或 RTC 邮件中查看 Approver 添加的修改意见，并根据意见进行代码修改，重新提交代码评审。</p>
<ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; font-family: Times; line-height: normal; text-align: left; background-color: #ffffff; ">
     <li value="8" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; ">代码提交</li>
</ol>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">代码 Submitter 在 Pending Changes 视图中找到相应的 Outgoing 变更集并提交。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="6.RTC代码评审的注意事项"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">RTC 代码评审的注意事项</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">一次代码评审和所提交的一个变更集是一一对应的关系，当对一个变更集提交代码评审后，这个变更集就被冻结，此后对其中任何文件的修改都将通过另一新的变更集来跟踪。所以，对于新的修改，需要再次提交代码评审。</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">评审者在应用被评审者的变更集进行代码评审时，有时会和评审者本地的变更集产生冲突，此时只要将产生冲突的本地变更集暂停（Suspend），就能暂时避免冲突从而继续进行评审。</p>
<div class="ibm-alternate-rule" style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-color: #ffffff; height: 1px; font-family: Times; font-size: medium; line-height: normal; text-align: left; background-repeat: repeat no-repeat; "></div>
<p class="ibm-ind-link ibm-back-to-top" style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 5px; font-size: 0.76em; clear: both; text-align: right; height: 14px; line-height: normal; background-color: #ffffff; "><br />
</p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; "><a name="7.RTC代码评审的不足及展望"><span class="atitle" style="font-size: 1.5em; font-weight: bold; ">RTC 代码评审的不足及展望</span></a></p>
<p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0.7em; font-size: 0.76em; line-height: normal; text-align: left; background-color: #ffffff; ">虽然 RTC 已经能够支持完整的代码评审功能，但在实际使用中还有一些改进之处。比如无法动态嵌入或链接到评论所涉及的代码中的指定行，方便被评审者阅读修改意见。而且评审的粒度较大，基于每个评审者的修改意见无法针对每条评论进行接收或拒绝。此外，如果加入代码静态分析功能，就能更快的找到问题，避免人为的疏漏。</p>
<img src ="http://www.blogjava.net/paulwong/aggbug/390563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-10-31 21:19 <a href="http://www.blogjava.net/paulwong/archive/2012/10/31/390563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAZZ-TEAM LEAD</title><link>http://www.blogjava.net/paulwong/archive/2012/10/31/390519.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 31 Oct 2012 05:31:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/10/31/390519.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/390519.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/10/31/390519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/390519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/390519.html</trackback:ping><description><![CDATA[TEAMLEAD这部分指任务分配 <br />
<ol><li>PROJECT AREA<br />根据计划来，不同的计划建立不同的PROJECT AREA。<br /></li><li>TIME LINE FOR PROJECT AREA<br />定义起尺和结束时间，也指一组ITERATION和TEAM AREA的组合。<br />一个PROJECT AREA可以搞几个TIME LINE。<br /></li><li>ITERATION FOR TIME LINE<br />一个TIME LINE可以分若干个ITERATION阶段去完成。<br /></li><li>TEAM AREA FOR TIME LINE<br />这段时间的TIME LINE的PROJECT 是需要人来完成，先定义TEAM AREA。就是USER的组合。<br /></li><li>USER FOR TEAM AREA<br />就是TEAM AREA的组织成员。<br /></li><li>CATEGROY FOR TEAM AREA<br />CATEGORY就是WORK ITEM的类型，但要和TEAM AREA关联。<br /></li><li>PLAN FOR ITERATION<br />在上面的时间段ITERATION增加PLAN，也是一组WORK ITEM的组合。<br /></li><li>WORK ITEM FOR ITERATION，USER<br />工作内容，父类是ITERATION，USER等。<br /><br /></li></ol>上面的这八项的建立顺序是从前到后，只有前面建立了，才能建后面的。<br /><br />如何与SOURCE CONTROL结合？每次提交代码的时候，要指定CHANGE SET，CHANGE SET的名字取WORK ITEM的名字，这样就可以关联上了。<br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/390519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-10-31 13:31 <a href="http://www.blogjava.net/paulwong/archive/2012/10/31/390519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAZZ，一站式配置管理工具</title><link>http://www.blogjava.net/paulwong/archive/2012/10/28/390364.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 28 Oct 2012 11:50:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/10/28/390364.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/390364.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/10/28/390364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/390364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/390364.html</trackback:ping><description><![CDATA[配置管理中的一站式工具，JAZZ，需求人员可以录入需求，项目管理人员可以录入计划，开发人员可以从上面领取任务，测试人员可以提交BUG。 
<div><br /></div>
<div><a href="http://dev.yesky.com/jazzshow/" target="_blank">http://dev.yesky.com/jazzshow/</a><br /><br /></div>
<div><a href="https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=ed57568b-156b-47ab-b4d7-1fd6fc805bde" target="_blank">https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=ed57568b-156b-47ab-b4d7-1fd6fc805bde</a><br /><br /></div>
<div><a href="http://www.ibm.com/developerworks/cn/education/rational/r-cn-rtcentcasestudy/index.html" target="_blank">http://www.ibm.com/developerworks/cn/education/rational/r-cn-rtcentcasestudy/index.html<br /></a><br /></div>
<div><a href="http://www.ibm.com/developerworks/cn/rational/08/0701_ellingsworth/" target="_blank">http://www.ibm.com/developerworks/cn/rational/08/0701_ellingsworth/</a><br /></div><img src ="http://www.blogjava.net/paulwong/aggbug/390364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-10-28 19:50 <a href="http://www.blogjava.net/paulwong/archive/2012/10/28/390364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>配置管理入门</title><link>http://www.blogjava.net/paulwong/archive/2009/03/16/259965.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 16 Mar 2009 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2009/03/16/259965.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/259965.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2009/03/16/259965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/259965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/259965.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 软件开发过程中通常会产生各种产品，如代码，文档（需求文档、设计文档等）和交互文档（记录与客户开会情况），而这些产品可能被多人，多次修改过，因此需要管理，如记录谁在什么时候改过什么等，这就叫做配置管理。这些产品就叫做配置项。&nbsp;&nbsp;<a href='http://www.blogjava.net/paulwong/archive/2009/03/16/259965.html'>阅读全文</a><img src ="http://www.blogjava.net/paulwong/aggbug/259965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2009-03-16 11:19 <a href="http://www.blogjava.net/paulwong/archive/2009/03/16/259965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>