<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Ray's Blog</title><subtitle type="text">IT民工的生活～</subtitle><id>http://feed.cnblogs.com/blog/u/6965/rss</id><updated>2011-09-28T08:35:59Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/6965/rss"/><entry><id>http://www.cnblogs.com/Rayinuk/archive/2011/09/28/2194578.html</id><title type="text">【转】引入敏捷但不行之过甚</title><summary type="text">07.05.09 | Author: oscar | Posted in 敏捷项目管理 | No Comments &amp;#187;敏捷软件开发日益得到各方追捧。但是，“敏捷”二字到底意味着什么呢？是单元测试，持续集成，还是遵循 XP 或者 Scrum？在本文中，我们将探讨如何将敏捷方法引入出现问题和尚未使用敏捷方法的项目中。敏捷方法学这些年以来，已经有一些敏捷方法陆续浮出水面：极限编程（Extreme Programming，XP）、Scrum、Crystal、精益开发方法（Lean Development，LD）、动态系统开发方法（Dynamic System Development Meth</summary><published>2011-09-28T08:36:00Z</published><updated>2011-09-28T08:36:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2011/09/28/2194578.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2011/09/28/2194578.html"/><content type="html">&lt;div &gt;&#xD;
&lt;div &gt;07.05.09 | Author: &lt;a href="http://blog.thinklet.net/oscar/author/oscar/"&gt;oscar&lt;/a&gt; | Posted in &lt;a title="显示敏捷项目管理的所有日志" href="http://blog.thinklet.net/oscar/category/%e6%95%8f%e6%8d%b7%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86/" rel="category tag"&gt;敏捷项目管理&lt;/a&gt; | &lt;a title="&amp;#8220;【转】引入敏捷但不行之过甚&amp;#8221;的评论" href="http://blog.thinklet.net/oscar/2009/07/05/zhuanyinruminjiedanbuxingzhiguoshen/#respond"&gt;No Comments &amp;#187;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;p&gt;敏捷软件开发日益得到各方追捧。但是，&amp;#8220;敏捷&amp;#8221;二字到底意味着什么呢？是单元测试，持续集成，还是遵循 XP 或者 Scrum？在本文中，我们将探讨如何将敏捷方法引入出现问题和尚未使用敏捷方法的项目中。&lt;br /&gt;敏捷方法学&lt;br /&gt;这些年以来，已经有一些敏捷方法陆续浮出水面：极限编程（Extreme Programming，XP）、Scrum、Crystal、精益开发方法（Lean Development，LD）、动态系统开发方法（Dynamic System Development Method，DSDM）和特性驱动开发（Feature Driven Development，FDD）等等。尽管这些方法所强调的地方各有千秋，但是它们之间存在一些共同主题：成功完成开发，使设计能够演进，创建健壮的代 码，还有，最重要的是通过与客户的交互寻求反馈。&lt;br /&gt;不同的方法对于不同的人来说，意义各有不同。某些人认为，假如你不照本宣科地遵循XP的所有核心实践，那么你就不是在实践XP。XP有一些重要实践，Scrum也有自己的重要实践。此外，还有其它的重要实践可供使用，并取得成功。&lt;br /&gt;开发者们会问：&amp;#8220;我应该遵循哪个方法？&amp;#8221;&amp;#8220;我应该用 XP，还是 Scrum？对于项目出现的不利局面，我该做些什么才能扭转乾坤呢？&amp;#8221;这些问题都非常具有实质性，我们将在本文中逐一解决。&lt;br /&gt;为失败的项目引入敏捷特性&lt;br /&gt;方法学常常伴随着一些规程（ceremonies）而来。一些重量级的开发过程会非常规程化（或者说正规化）&amp;#8212;&amp;#8212;它们会要求你遵循一系列的步骤，编 写某些文档，等等。假如它真的能为你的成功带来影响的话，一定程度的规程是很好的。通常，敏捷方法会期望你去实践单元测试，举行站立会议（standup meetings）等等。这些同样也是规程，并且敏捷方法支持者们（包括你谦恭的作者）都会表示，这是一些应当遵从的好规程。但是，这些是你应当第一顺序 采用的实践方法吗？你应当采用所有提供给你的实践方法吗？你应该立刻全部采用它们吗？不必，当然不必。&lt;br /&gt;让我们打个比方。我们会同意，健康饮食加上锻炼是保持强健体魄的好习惯。然而，如果一个病人患了严重的胸痛，你肯定不会（也不想）听到医生说：&amp;#8220;如 果你饮食健康并且加强锻炼的话，你就不用到这儿来了。所以说现在给我爬起来，马上来跑步机上锻炼！&amp;#8221;这么做着实荒唐可笑，弄不好还可能把病人的性命搞丢。 我们必须先将病人稳定下来，直到病情得到改善，才能用强化训练的方法进行调整。&lt;br /&gt;假如你想在出现麻烦的项目中全盘引入敏捷方法，其结果也有可能是全盘皆输。在引入其它优秀的实践之前，让我们先探讨一些能帮助我们重建项目，并使其恢复元气的实践吧。&lt;br /&gt;采用迭代的步伐迈向敏捷&lt;br /&gt;假定你只有几个月时间来完成你的项目，然而项目团队仍远远地落在计划之后。此外，假设你的团队并不熟悉诸如单元测试和持续集成之类的大多数重要的敏 捷实践。为这样的团队引入单元测试，可能需要时间理解和熟练应用。尽管单元测试可以带来显著的益处，但是对你的团队来说，目前却可能并非合适的时间。&lt;br /&gt;比较稳健的做法，可以是一个渐进的（迭代且递增的）方式，使你的团队迈向敏捷。在入手解决问题之前，第一件事情应该是去了解问题到底是什么。为什么 你的团队会落后于计划？有哪些东西在妨碍他们？至少，世界上所有的好方法都无法马上见效。了解首要和迫切问题是什么，并且解决它们，是很重要的。一旦你解 决了首要问题，你就可以继续前进，进行改进和调整。&lt;br /&gt;使用迭代式敏捷方法的尝试&lt;br /&gt;我曾有这样一个机会参与到一个处于危机状态的项目中&amp;#8212;&amp;#8212;一位翘首企盼的客户在为他行将崩溃的项目紧急求援。这个项目进行了很长时间，却成效甚微。整 个项目团队并没有采取任何敏捷方法，他们没有进行交流，项目没有迭代周期。他们痛苦地挣扎着，以期能跟上进度，并努力尝试在编写新代码和修正 bug 之间寻找平衡。&lt;br /&gt;他们只剩下很短的几个月来完成这个项目；整个团队陷于一片恐慌之中，项目经理几近绝望。要求团队采取例如单元测试的方法，在当时看起来并不是一个稳 当的做法。那么我能尽可能少地采取哪些敏捷方法实践，来为这个项目逆转乾坤呢？根据当时项目和团队的现状，我们决定以其时看来最合乎逻辑的三个方法开始： 每周迭代并提交演示版本，每天举行站立会，以及划分优先级和回溯。&lt;br /&gt;每周迭代并提交演示版本&lt;br /&gt;整个团队埋头苦干，发了疯似地想把事情做好。他们看到的项目范围和任务列表上的任何时间满得让人脑袋发晕。团队成员中存在一些合理的顾虑：我应该修 改这些 bug 吗？我应该添加新特性吗？该是哪些新特性？那上周我开始着手的东西又该怎么办呢？还有两周前的呢？你要我一口气处理所有这些东西？就在现在？！&lt;br /&gt;如果项目团队能够清楚地专注于他们应该做的工作，那么结果肯定是颇有裨益的。通过确定按照以周为单位的迭代进行工作（不同的敏捷方法推荐一至六周的 时间作为迭代周期），我们可以每次定义出一周的工作范围。这样就为团队的每个成员和项目经理提供了一个让大家坐下来制定当前一周工作目标的机会。一旦用于 迭代的任务列表被制定下来以后，团队的每个人参与评审。谁也不想搞出一个失败的计划&amp;#8212;&amp;#8212;整个团队都必须统一口径，决定哪些要完成的东西是合理的。&lt;br /&gt;每个周末，我们向可能为项目提供关键性反馈的核心客户进行项目演示。项目团队进行这些演示的目标，就是为了符合客户的期望，每周进行一次。在演示 中，项目团队展示哪些东西已经被实际构建出来，阐明他们完成的特性，并且寻求反馈，从而了解哪些可以改进，哪些需要更改。我们也决定哪些任务应当在下周优 先执行。&lt;br /&gt;每天举行站立会议&lt;br /&gt;团队的成员们抱怨说，他们能听到的，仅仅是行军号角声，但没有人知道其他人到底走到了那儿。他们之间缺乏有效的交流。&lt;br /&gt;我们在这个项目中引入的第二个方法就是每天举行站立会（最先在 Scrum 方法中提出，并在 XP 中被采用）。每个团队成员都有机会进行一个简短的演讲。他们被要求集中讨论三件事情：前一天他们做了些什么，今天他们打算做些什么，还有哪些东西在妨碍他 们（如果有的话）。&lt;br /&gt;这样做使整个团队得以了解每个人在做哪些东西。而且，这对当天的准备也起到帮助作用，促使每个开发人员把重心放在自己当天的任务上。&lt;br /&gt;划分优先级和回溯&lt;br /&gt;一个困扰项目团队的问题是，他们很难将注意力集中在他们应当完成的工作上。开发工作就像玩&amp;#8220;抓螃蟹&amp;#8221;游戏一样&amp;#8212;&amp;#8212;他们被修复那些看似毫无规律地不断 冒出的问题，搞得手忙脚乱。他们主要使用电子邮件报告问题。不幸的是，这些邮件常常丢失，或者被其他堆积成山的正常邮件和垃圾邮件所掩埋。通过使用一个简 单的追踪系统，我们可以输入问题和错误，为它们分配优先级，并且检查开发人员的进度。这样也为项目带来了一些好处。&lt;br /&gt;其他实践方法&lt;br /&gt;在这个项目中，我们又进一步引入了其他有用的实践方法，但并不是一蹴而就的。这么做的目的，不是为了变得敏捷，而是为了成功。我们采取了一种为项目 团队带来自信的方式进行工作，并且让大家明白项目在前进。我们否决或者推迟了不会带来即时收益的方法，把带来长期收益的方法保留到之后进行。通过遵循一些 经过选择的有意义的方法，以及团队的帮助和对成功的恳切追求，项目提前于计划完成了&amp;#8212;&amp;#8212;这在以前是不可想象的。&lt;br /&gt;结语&lt;br /&gt;Ron Jeffries 明智而又贴切地表达了这样一个观点：&amp;#8220;采用XP本身并不能带来任何奖励。真正的奖励来自使用正确的实践组合做事，那就是成功。&amp;#8221;你要做的，是把注意力集中 在如何取得成功上，而不是照本宣科地去实践敏捷。首先，选好能实际解决你问题并且带来进展的实践方法。然后，继续采用其他使你和你的团队变得更好的方法。 你怎么知道你做的是正确的呢？除了成功，没有更好的证明方式。&lt;br /&gt;参考文献&lt;br /&gt;Kent Beck and Cynthia Andres, &amp;#8220;Extreme Programming Explained: Embrace [...]&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Rayinuk/aggbug/2194578.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Rayinuk/archive/2011/09/28/2194578.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2009/02/04/1383865.html</id><title type="text">&lt;&lt;Managing Multi-Location Team&gt;&gt; (管理多区域团队） -- 阅读记录</title><summary type="text">从PMI的杂志中找到这篇文章，是一个有着18年管理经验的印度IBM项目经理对多区域团队工作的一些心得，我记录了其中的几点。Multi-Location Team的优点： 能够在当地选择最合适项目的资源（包括人，环境，基础设施） 节约成本，没有众多人员来回奔波的差旅费及相关费用。 地域经济的不同能更有效的利用资源，使之效益最大化。Multi-Location Team的挑战： 团队成熟度 Team ...</summary><published>2009-02-04T06:30:00Z</published><updated>2009-02-04T06:30:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2009/02/04/1383865.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2009/02/04/1383865.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2008/04/10/1146965.html</id><title type="text">【讨论】项目管理的从前与现在</title><summary type="text">这是在阅读笔记的时候所理解的，不知道大家有没有什么意见呢？在早期时候（从前），项目管理是侧重资源的控制，即对人力，资金，时间等进行控制，其目的是控制成本，提高效率。说到底，既是节约，其项目的成功与否是以企业的评价来衡量的，能以较低的成本，高效率的完成项目，会获得企业的高度评价。而现在的项目管理（现在），则是创造价值，体现价值，目的是提高项目产出物的质量，其成功与否不再是以企业的评价来衡量，而是以客...</summary><published>2008-04-10T08:04:00Z</published><updated>2008-04-10T08:04:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2008/04/10/1146965.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2008/04/10/1146965.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2008/02/26/1082175.html</id><title type="text">【娱乐】Windows错误音做成的音乐以及一个有意思的签名</title><summary type="text">有意思的签名：丶丶丶当櫑欟欟櫑欟欟欟欟欟欟欟櫑欟櫑櫑翻麗謝叱丶丶丶丶丶丶丶丶覇竃櫑櫑欟欟欟欟欟欟欟櫑欟櫑欟欟欟層櫑艶旨丶丶丶丶丶丶丶層櫑欟欟欟欟欟欟欟欟欟嬲竃嬲竃竃欟櫑竃覇覇丶丶丶丶丶丶丶灑嬲欟欟嬲嬲嬲嬲嬲鬻辧卻眉贈幗層欟欟櫑竃櫑廴丶丶丶丶勹僧層櫑欟鬱綴綴局悦局局拇狐綴綴鋼幗幗竃欟竃櫑廬丶丶丶丶湘嬲嬲櫑欟辧綴仰災欠災沼卻局綴綴掴綱幗櫑嬲幗櫑廳丶丶丶丶勺覇欟櫑鬱即卻仰災災沿己卻凹句郊塀獅幗櫑櫑欟櫑勳...</summary><published>2008-02-26T06:00:00Z</published><updated>2008-02-26T06:00:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2008/02/26/1082175.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2008/02/26/1082175.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2008/02/26/1081945.html</id><title type="text">08年, 充电的无奈，CSDN的无奈，Google Group的无奈。。</title><summary type="text">先给大家拜个晚年了～过完了春节，懒散许久的心情多少有些恢复，最近在组里大家也都兴致勃勃的计划着新一年的充电安排。。也因此大家伙决定建立个不公开的Blog进行学习的交流。。结果遇到了些无奈的事情，着实让人小郁闷。。。1. CSDN不能公开。。由于CSDN强大的资源库，让我们做为首选，然而遗憾的是，其并不支持&amp;#8220;封闭式&amp;#8221;，必须是公开的 Blog。。无奈，放弃。。。2. Googl...</summary><published>2008-02-26T04:00:00Z</published><updated>2008-02-26T04:00:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2008/02/26/1081945.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2008/02/26/1081945.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2007/04/11/709336.html</id><title type="text">将一个DataTable分解成多个DataTable</title><summary type="text">- Ray Chang 2007年4月11日 这两天遇到一个问题，我们所接触的一个系统在导出数据到Excel的时候，产生了内存溢出的错误。原因在于数据过大，它导出是将所有数据存放在一个DataSet的一个表中，再将这个数据集放入session,在导出功能所在的页面再读取该session的值，并绑定在一个DataGrid，再进行相关导出处理。因为系统不是我们开发的，我们就打算在数据存入session...</summary><published>2007-04-11T10:04:00Z</published><updated>2007-04-11T10:04:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/11/709336.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/11/709336.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2007/04/06/702518.html</id><title type="text">[转] 关于ASP.NET页面打印技术的总结</title><summary type="text">这是我目前看到的最好的一篇关于Asp.NET中打印技术的文章，介绍的很全面，对于遇到ASP.NET页面中打印问题的朋友帮助很大，现转贴出来希望能帮助到大家。在这里非常感谢作者，可惜没看到原文，不知道作者是哪位了，这里真要谢谢你了！--Ray Chang 2007年4月6日 拜读=============================================================...</summary><published>2007-04-06T03:41:00Z</published><updated>2007-04-06T03:41:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/06/702518.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/06/702518.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2007/04/03/698096.html</id><title type="text">关于aspnet_profile表中的数据格式</title><summary type="text">关于aspnet_profile表中的数据格式作者：Ray日期：2007年4月3日上次谈membership的时候，说起这个表中的&amp;#8220;分隔符&amp;#8221;不知道是什么格式，查了以后，获取到了下面的信息。aspnet_profile有着属于自己的格式，例如：Department:S:0:12:Project:S:12:15:这里面，我们可以看到它们主要是利用 字母:数字1:数字2 来区分，...</summary><published>2007-04-03T04:44:00Z</published><updated>2007-04-03T04:44:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/03/698096.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/03/698096.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2007/04/02/696711.html</id><title type="text">初步掌握ASP.NET 2.0 Login控件 - 角色管理</title><summary type="text">初步掌握ASP.NET 2.0 Login控件 -角色管理作者：Ray 时间：2007年4月2日http://www.cnblogs.com/Rayinuk/archive/2007/04/02/696711.html总结一下角色管理方面的东西。先给出MSDN有关Role Manager的文章，大家可以去看看：http://msdn2.microsoft.com/en-us/library/ms9...</summary><published>2007-04-02T03:03:00Z</published><updated>2007-04-02T03:03:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/02/696711.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2007/04/02/696711.html"/></entry><entry><id>http://www.cnblogs.com/Rayinuk/archive/2007/03/30/694163.html</id><title type="text">初步掌握ASP.NET 2.0 Login控件 -  迁徙数据库，个性化Login控件</title><summary type="text">初步掌握ASP.NET 2.0 Login控件 - 迁徙数据库，个性化Login控件作者：Ray 时间：2007年3月30 http://www.cnblogs.com/Rayinuk/archive/2007/03/30/694163.html 太久没有接触开发，前不久才开始学习一下Visual Stuido 2005的一些新功能，结果刚上来个login 控件就把我拌了一下，呵呵。。Login一...</summary><published>2007-03-30T08:02:00Z</published><updated>2007-03-30T08:02:00Z</updated><author><name>Ray Chang</name><uri>http://www.cnblogs.com/Rayinuk/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Rayinuk/archive/2007/03/30/694163.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Rayinuk/archive/2007/03/30/694163.html"/></entry></feed>
