﻿<?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-lsbwahaha-随笔分类-敏捷</title><link>http://www.blogjava.net/lsbwahaha/category/46953.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 29 Oct 2011 10:08:07 GMT</lastBuildDate><pubDate>Sat, 29 Oct 2011 10:08:07 GMT</pubDate><ttl>60</ttl><item><title>遵循Scrum的一些规则来使你的产品开发取得成功</title><link>http://www.blogjava.net/lsbwahaha/archive/2010/11/29/339292.html</link><dc:creator>胡鹏</dc:creator><author>胡鹏</author><pubDate>Mon, 29 Nov 2010 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/lsbwahaha/archive/2010/11/29/339292.html</guid><wfw:comment>http://www.blogjava.net/lsbwahaha/comments/339292.html</wfw:comment><comments>http://www.blogjava.net/lsbwahaha/archive/2010/11/29/339292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lsbwahaha/comments/commentRss/339292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lsbwahaha/services/trackbacks/339292.html</trackback:ping><description><![CDATA[<br />
1. 需要有全职的有威信，有能力的产品负责人（PO-Product Owner).<br />
2. PO要和Scrum Team、其他的利益相关者（stakeholder)一起工作<br />
3. 有PO来创建和管理产品backlog.<br />
4. Scrum每日站会必须的3个问题（完成了什么，准备做什么，有什么障碍）。<br />
5. Scrum每日站会要在固定的地方时间不要超过15分钟。<br />
6. 有规律的Sprint长度(不超过30天)<br />
7. 在Sprint计划会议上创建Sprint Backlog和经过详细估算的任务列表。<br />
8. 一定要有Sprint的燃尽图。<br />
9. Team必须的设备及相关的供应要齐全。<br />
10. 使用回顾会议确保过程在不断提升。<br />
11. 有明确的对于&#8220;任务完成&#8221;的定义。<br />
12. 按照合理的速率给出承诺（根据Sprint的工作量估计)。<br />
13. 团队大小在7 +/- 2,最多不能超过12人<br />
14. 跨职能的团队包括Scrum Master和PO.<br />
15. 自组织的团队 - 团队成员志愿挑选任务。<br />
16. Scrum master要跟踪进度，并且为团队扫清障碍。<br />
17. 确保Team不被外界干扰。<br />
18. Sprint之间不能间断。<br />
19. 合理的节奏 - 根据固定时间段来确定任务量, 不只是一个进度表。<br />
20. 质量是第一，不需要在质量上讨价还价 - 代码缺陷永远位于Backlog的最上层。<br />
<br />
<br />
<img src ="http://www.blogjava.net/lsbwahaha/aggbug/339292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lsbwahaha/" target="_blank">胡鹏</a> 2010-11-29 10:20 <a href="http://www.blogjava.net/lsbwahaha/archive/2010/11/29/339292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Scrum敏捷团队的必备技能(转)</title><link>http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337563.html</link><dc:creator>胡鹏</dc:creator><author>胡鹏</author><pubDate>Mon, 08 Nov 2010 11:08:00 GMT</pubDate><guid>http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337563.html</guid><wfw:comment>http://www.blogjava.net/lsbwahaha/comments/337563.html</wfw:comment><comments>http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337563.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lsbwahaha/comments/commentRss/337563.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lsbwahaha/services/trackbacks/337563.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp; 转载于：http://www.infoq.com/cn/articles/skills-for-scrum-agile-teams&nbsp; <br />
<br />
敏捷项目的工程独特性<br />
<br />
&nbsp;&nbsp; 1. <strong>设置开发环境<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong>在传统项目中，团队可以投入充分的时间来设置开发环境；而在敏捷团队里面，他们需要从第一刻时间起就能产出。根据我们的经验，我们认识到缺乏设置开发环境的相关文档是设置环境如此耗时的一个关键原因。第二个关键原因是在设置过程中涉及的手工步骤数。在第0次sprint，我们必须记录每一件开发人员必须做了才能开始编写代码，并集成团队其他人工作的小事。<br />
<br />
<br />
&nbsp;&nbsp; 2. <strong>自动构建<br />
</strong>&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 让我们尽早失败！我们领悟到，手工构建可能既脆弱，又特定于某一台机器，而且当时间耗费在手工构建的基础工作上面时，开发和测试的时间就被挤占掉了。除去最小的项目，自动构建过程对于每一个项目都是必不可少的。我们认识到，即使需要抽出时间来创建自动构建的环境，你以后是能把这些时间赚回来的。这也使得我们更易于确保项目有一个人人共有的标准化构建。<br />
<br />
&nbsp;&nbsp; 3. <strong>持续集成<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong>根据我们过去的经验，我们领悟到，等到最后的几个星期才去把不同团队成员的代码集成到一起是一个灾难。如果你已经拥有了自动构建，接下来的事情就是持续集成。当然，版本控制（或者软件配置管理——另一个更为正式的和令人印象深刻的名字）是自动构建和持续集成环境的前提。我们学到的一个重要教训是，你越快识别出集成的错误，你就能越快地解决这些问题。我们曾经使用过的主要工具包括
<a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a>、<a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.Net</a>和<a href="http://www.atlassian.com/software/bamboo/">Bamboo</a>。&nbsp; hadson，基础集成还是不错的。<br />
<br />
&nbsp;&nbsp; 4. <strong>单元测试<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; </strong>在高度流动的环境中，随着多个开发人员一起工作、需求的变更和优先级的不断变化，确保昨天可以运行的东西今天也能运行，这是至关重要的。此外，我们还要与集成出现的错误为战。一种方法（我们从艰难岁月中学习得来）是使用单元测试，这样代码的更改不会破坏现有的功能。我们也开始在开发编码之前编写单元测试用例。我们曾经使用过的主要工具包括<a href="http://www.junit.org/">JUnit</a>（以及其他的xUnit工具如<a href="http://www.nunit.org/">NUnit</a>、<a href="http://httpunit.sourceforge.net/">HttpUnit</a>等）和<a href="http://sourceforge.net/projects/mockobjects/">MockObjects</a>。&nbsp; <br />
<br />
&nbsp;&nbsp; 5. <strong>重构<br />
<br />
</strong>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在传统的项目中，通常有一个人保护他们的代码库，直到代码集成阶段。但是在敏捷里面，我们持代码集体所有制的观点——所有的代码属于所有的开发人员，只要开发人员认为有必要，每个人都能不受约束地去改善代码。在一段时间里面，我们的代码库开始出现奇怪的行为——解决办法就是重构（感谢Martin
Fowler在他的<a href="http://books.google.com/books?id=1MsETFPD3I0C">同名著作</a>中把重构一词推广开来）。重构的本质归结为修改代码以改善代码的结构和清晰度，但不改变代码的功能。我们学到的一个重要教训是在重构代码之前使用单元测试作为安全网，我们曾经使用过的一些主要工具包括<a href="http://eclipse.org/">Eclipse</a>、<a href="http://netbeans.org/">NetBeans</a>、<a href="http://www.jetbrains.com/idea/">IntelliJ IDEA的</a>和<a href="http://msdn.microsoft.com/en-us/vstudio/default.aspx">Visual
Studio.NET</a>。</p>
<p><br />
</p>
<h2>在敏捷团队之中工作所必备的行为特征</h2>
<p>由于敏捷团队不同于普通的团队，并且非常倚赖于有效果和有效率的沟通和快速执行，敏捷团队更需要使用软技能。如果我们意识到这一点，并积极鼓励使用这些特征和技能，我们可以使得敏捷团队更有价值和富有成效。</p>
<p>自组织往往倚赖于诸如正反馈、负反馈、深度探索和广度调研之间取得平衡以及多重互动的基本要素。根据我们的经验，团队可能由于许多文化和社会因素无法给予正确的反馈或者回避人与人之间的互动。</p>
<p>根据我个人的经验，这仍然是一个&#8220;神话&#8221;。我们总是倾向于患有&#8220;可预测性综合症&#8221;——如果我们做更多的规划，我们将更加功能预测。</p>
<p>团队需要有良好的纪律、有能力承担责任、尽忠尽责以及承担职责和所有权。</p>
<p>团队需要拥有的关键技能之一是有能力寻求帮助，并寻求他人的评价。在某些情形下，我们已经看到了&#8220;自我&#8221;因素表现为一个主要的障碍。</p>
<p>有些时候，承担责任，尽忠尽责和协作精神是理所当然的，但是根据以往的经验，为了这些能够出现，我们有时需要外部干预。</p>
<p>有些我们常常倾向于忽视的关键技能是积极主动、在激烈的环境中享受工作和易于适应新的形势和框架。</p>
<p>我们的大多数项目都是分布式的，这意味着在客户和服务供应商之间将会共同使用Scrum。在这种情况下，诸如管理多样化团队、时间管理、外交技巧和领导力等技能是非常关键的。</p>
<h2>敏捷团队的成功&#8220;咒语&#8221;</h2>
<p>对于任何一个希望成功和高效的敏捷项目，团队需要对<strong>向同侪学习</strong>（不管资历和专业知识）<strong>表现</strong>出更大<strong>的热情</strong>和正确的态度。必须保证一个无畏表达的<strong>安全网</strong>，这样才会展现出<strong>真正的友情</strong>，而这反过来会增强团队成员对团队目标的关注，而不是&#8220;哪些由我来做&#8221;？</p>
<h2>结论</h2>
<p>根据我个人的经验和观察，对于提高生产率所需的技能，敏捷项目与传统项目有所不同。本文定义了团队提高生产率所需的行为和技术技能。具有这些&#8220;delta&#8221;
特征的人应该具备了合适的行为和技术技能，这些技能使得他们在敏捷项目中的工作能够富有成效。对于这些技能的总结请见下表。</p>
<h2>技能表</h2>
<table border="1" cellpadding="0">
    <tbody>
        <tr>
            <td valign="top" width="112">
            <p><strong>角色</strong></p>
            </td>
            <td valign="top" width="267">
            <p><strong>技术技能（在不同的方面）</strong></p>
            </td>
            <td valign="top" width="201">
            <p><strong>行为技能</strong></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="112">
            <p>开发人员</p>
            </td>
            <td valign="top" width="267">
            <p>CRUD操作，开发框架不同层之间的调用</p>
            <p>单元测试（工具——NUnit、JUnit）</p>
            <p>代码覆盖率的概念和工具</p>
            <p>代码审查的概念和工具</p>
            <p>持续集成工具</p>
            <p>重构的概念</p>
            <p>代码味道的概念</p>
            <p>Scrum过程</p>
            </td>
            <td valign="top" width="201">
            <p>沟通</p>
            <p>合作</p>
            <p>时间管理/计划</p>
            <p>思维</p>
            <p>冲突管理</p>
            <p>处理更改/灵活性</p>
            <p>决策</p>
            <p>团队合作/团队建设</p>
            <p>处理压力</p>
            <p>问题解决</p>
            <p>领导</p>
            <p>外交</p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="112">
            <p>QA</p>
            </td>
            <td valign="top" width="267">
            <p>&#8220;完成&#8221;的定义 —&gt; 验收标准</p>
            <p>测试管理</p>
            <p>自动化/脚本</p>
            <p>环境设置</p>
            <p>数据库概念</p>
            </td>
            <td valign="top" width="201">
            <p>与开发人员相同</p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="112">
            <p>Scrum Master</p>
            </td>
            <td valign="top" width="267">
            <p>Scrum过程</p>
            <p>模板和使用</p>
            <p>项目管理工具</p>
            <p>持续集成工具</p>
            <p>设置开发环境</p>
            </td>
            <td valign="top" width="201">
            <p>开发人员的技能+推动力</p>
            </td>
        </tr>
    </tbody>
</table>
<p><strong>作者简介</strong></p>
<p>Prasad，拥有10年的IT服务行业经验，他第一次接触敏捷项目是在2005年微软的一个项目；从那时起，他为许多公司如GE、思科、可口可乐等，针对敏捷及其变体提供了解决方案开发、培训、咨询以及指导。目前他正在<a href="http://www.symphonysv.com/">Symphony
Services</a>的敏捷实验室担任经理。Symphony40％的项目都是关于敏捷或其不同的形式，并且自2004年起就通过敏捷为客户提供商务的关键价值。你可以通过<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#112;&#114;&#97;&#98;&#104;&#97;&#107;&#64;&#115;&#121;&#109;&#112;&#104;&#111;&#110;&#115;&#121;&#115;&#118;&#46;&#99;&#111;&#109;">pprabhak@symphonsysv.com</a>与他联系。</p>
<p><strong>查看英文原文：</strong><a href="http://www.infoq.com/articles/skills-for-scrum-agile-teams">Skills for
Scrum Agile Teams</a></p>
<br />
 <img src ="http://www.blogjava.net/lsbwahaha/aggbug/337563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lsbwahaha/" target="_blank">胡鹏</a> 2010-11-08 19:08 <a href="http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>敏捷介绍</title><link>http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337562.html</link><dc:creator>胡鹏</dc:creator><author>胡鹏</author><pubDate>Mon, 08 Nov 2010 11:03:00 GMT</pubDate><guid>http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337562.html</guid><wfw:comment>http://www.blogjava.net/lsbwahaha/comments/337562.html</wfw:comment><comments>http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lsbwahaha/comments/commentRss/337562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lsbwahaha/services/trackbacks/337562.html</trackback:ping><description><![CDATA[<br />
<br />
&nbsp; 敏捷最大的特点是：不但快，反应要更快。<br />
<br />
&nbsp; 最终的目的是：提升效率。<br />
<br />
&nbsp;&nbsp;&nbsp; 敏捷是一种思想:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 沟通：个体交互<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简单：快速交付<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 反馈：客户合作<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 勇气：响应变化<br />
<br />
&nbsp;&nbsp;&nbsp; 关键条件还是目标一直的团队<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 共同愿景<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高效沟通<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 互相信任<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 严格执行<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 迅速迭代，越变越美，允许试错<br />
<span style="background-color: yellow;"><span style="color: red;">
&nbsp;&nbsp;&nbsp;&nbsp; 敏捷精华：</span></span> 小胜+ 反思<br />
<img src ="http://www.blogjava.net/lsbwahaha/aggbug/337562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lsbwahaha/" target="_blank">胡鹏</a> 2010-11-08 19:03 <a href="http://www.blogjava.net/lsbwahaha/archive/2010/11/08/337562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>