﻿<?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-周行－－专注于Java-随笔分类-项目管理</title><link>http://www.blogjava.net/zhouxing/category/16700.html</link><description>&lt;a href="" alt="周行" title="周行－－专注于Java 致力于JEE项目管理的研究"&gt;致力于JEE项目管理的研究&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 19:22:09 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 19:22:09 GMT</pubDate><ttl>60</ttl><item><title>软件过程</title><link>http://www.blogjava.net/zhouxing/archive/2006/11/30/84534.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Thu, 30 Nov 2006 05:30:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/11/30/84534.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/84534.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/11/30/84534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/84534.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/84534.html</trackback:ping><description><![CDATA[
		<p>
				<strong>1. 什么是软件过程？</strong>
				<br />软件过程（<font face="Verdana">Software Process）</font>是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关Artifacts（计划、文档、模型、编码、测试、手册等）组成。目前有三种方法：UP（the unified process），The OPEN Process，OOSP(The Object-Oriented Software Process)。 </p>
		<p>
				<font face="Verdana">软件过程(Software Procedure)是指软件生存周期所涉及的一系列相关过程。过程是活动的集合；活动是任务的集合；任务要起着把输入进行加工然后输出的作用。活动的执行可以是顺序的、重复的、并行的、嵌套的或者是有条件地引发的。</font>
		</p>
		<p>
				<font face="Verdana">软件过程可概括为三类：基本过程类、支持过程类和组织过程类。基本过程类包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。组织过程类包括基础设施过程、改进过程以及培训过程。</font>
		</p>
		<p>
				<font face="Verdana">软件过程主要针对软件生产和管理进行研究。为了获得满足工程目标的软件，不仅涉及工程开发，而且还涉及工程支持和工程管理。对于一个特定的项目，可以通过剪裁过程定义所需的活动和任务，并可使活动并发执行。与软件有关的单位，根据需要和目标，可采用不同的过程、活动和任务。</font>
		</p>
		<p>
				<strong>2. 为什么我们需要一个软件过程？ <br /></strong>有效的软件过程可以提高组织的生产能力： <br />■理解软件开发的基本原则，可以帮我们做出明智的决定； <br />■可以标准化你的工作，提高软件的可重用性和Team间的协作； <br />■我们所采用的这种机制本身是不断提高的，我们可以跟上潮流，使自己不断接收新的，最好的软件开发经验； <br /><br />有效的软件过程可以改善我们对软件的维护： <br />■有效地定义如何管理需求变更，在未来的版本中恰当分配变更部分，使之平滑过渡； <br />■首先在具体操作和相关支持中定义如何平滑地改造软件，并且这种具体操作和支持是可实施的；不可实施的软件过程将很快被束之高阁； <br /><br />为什么要采用软件过程？归根结蒂，形势所逼！ <br /><br /><strong>3. 实施软件过程的必要条件</strong><br />CMM(Capability Maturity Modeling)作出了明确的定义(由The Software Engineering Institute提出 http://www.sei.cmu.edu ) <br /><br /><strong>4. 五个成熟等级</strong><br />第一级：初始级 <br />在初始级，企业一般不具备稳定的软件开发与维护的环境。常常在遇到问题的时候，就放弃原定的计划而只专注于编程与测试。处于这一等级的企业，成功与否在很大程度上决定于有杰出的项目经理与经验丰富的开发团队。因此，能否雇请到及保有能干的员工成了关键问题。项目成功与否非常不确定。虽然产品一般来说是可用的，但是往往有超经费与不能按期完成的问题。 <br /><br />第二级：可重复级 <br />在这一级，建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。基于过往的项目的经验来计划与管理新的项目。企业实行了基本的管理控制。符合实际的项目承诺是基于以往项目以及新项目的具体要求而作出的。项目经理不断监视成本、进度和产品功能，及时发现及解决问题以便实现所作的各项承诺。 <br />通过具体地实施这一级的各个关键过程领域的要求，企业实现了过程的规范化、稳定化。因而，曾经取得过的成功成为可重复达到的目标。 <br /><br />第三级：定义级 <br />在这一级，有关软件工程与管理工程的一个特定的、面对整个企业的软件开发与维护的过程的文件将被制订出来。同时，这些过程是集成到一个协调的整体。这就称为企业的标准软件过程。 <br />　这些标准的过程是用于帮助管理人员与一般成员工作得更有效率。如果有适当的需要，也可以加以修改。在这个把过程标准化的努力当中，企业开发出有效的软件工程的各种实践活动。 <br />　同时，一个在整个企业内施行的培训方案将确保工作人员与管理人员都具备他们所需要的知识与技能。 <br />　非常重要的一点是，项目小组要根据该项目的特点去改编企业的标准软件过程来制订出为本项目而定义的过程。 <br />　一个定义得很清楚的过程应当包括：准备妥当的判据，输入，完成工作的标准和步骤，审核的方法，输出和完成的判据。因为过程被定义得很清楚，因此管理层就能对所有项目的技术过程有透彻的了解。 <br /><br />第四级：定量管理级 <br />在这一级，企业对产品与过程建立起定量的质量目标，同时在过程中加入规定得很清楚的连续的度量。作为企业的度量方案，要对所有项目的重要的过程活动进行生产率和质量的度量。软件产品因此具有可预期的高质量。 <br />　一个企业范围的数据库被用于收集与分析来自各项目的过程的数据。这些度量建立起了一个评价项目的过程与产品的定量的依据。项目小组可以通过缩小他们的效能表现的偏差使之处于可接受的定量界限之内，从而达到对过程与产品进行控制的目的。 <br />　因为过程是稳定的和经过度量，所以在有意外情况发生时，企业能够很快辨别出特殊的原因并加以处理 <br /><br />第五级：（不断）优化级 <br />在这个等级，整个企业将会把重点放在对过程进行不断的优化。企业会采取主动去找出过程的弱点与长处，以达到预防缺陷的目标。同时，分析有关过程的有效性的资料，作出对新技术的成本与收益的分析，以及提出对过程进行修改的建议。整个企业都致力于探索最佳软件工程实践的创新。 <br />　项目小组分析引起缺陷的原因，对过程进行评鉴与改进，以便预防已发生的缺陷再度发生。同时，也把从中学到的经验教训传授给其他项目。 <br />　降低浪费与消耗也是这个等级的一个重点。 <br />　处于这一等级的企业的软件过程能力可被归纳为不断的改进与优化。它们以两种形式进行。一种是逐渐地提升现存过程，另一种是对技术与方法的创新。虽然在其他的能力成熟度等级之中，这些活动也可能发生，但是在优化级，技术与过程的改进是作为常规的工作一样，有计划地在管理之下实行的。 <br /><br /><strong>5. 关键过程领域</strong><br />第一级：初始级（Level1: Initial）（无关键过程区域） <br /><br />第二级：可重复级 <br />■需求管理（Requirements Management） <br />需求管理的目的是建立和维护用户和软件项目间的关于该软件如何实现用户需求的共识。 <br />需求管理包括： <br />a. 建立和维护分配该给软件项目的需求的基线。 <br />b.核查该软件项目的计划，活动和正在开发中的产品以确保它们是与分配该给软件项目的需求一致。 <br /><br />■软件项目计划（Software Project Planning） <br />软件计划的目的是建立合理的计划用作软件开发与软件项目控制。 <br />软件计划包含： <br />a.选择一种软件生命周期 <br />b.建立一个开发工作的分解构造 <br />c.对与开发工作有关的、重要的计划参数进行估计。 <br />d.识别软件项目的风险。 <br />e.作出必要的承诺。 <br />f.制订软件开发工作的计划。 <br /><br />■软件项目控制（Software Project Control） <br />软件项目控制的目的是为软件项目的过程提供足够的能见度，从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行动。 <br />软件项目控制包括： <br />a.追踪软件项目的进展与表现，从而与所作的估计、承诺和计划作出对比。 <br />b.追踪软件项目的风险。 <br />c.在发生对计划的严重偏离时采取更正行动。 <br /><br />■软件获取管理（Software Acuisition Management） <br />软件获取管理的目的是有效地管理从软件项目外部来源获取软件。 <br />软件获取管理包括： <br />a.找出软件项目对取得外部软件的需要。 <br />b.识别和选择供应者。 <br />c.与供应者达成协议。 <br />d.处理与供应者之间的关系。 <br />e.收取软件项目所需的外部软件。 <br />f.安排对所取得的外部软件的维护与支持。 <br /><br />■软件质量保证（Software Quality Assurance） <br />软件质量确保的目的是为了客观地核实软件项目的实施行动与开发中的产品遵从于对应的需求、过程描述、标准及规程。 <br />软件质量确保包括： <br />a.客观地核实软件项目的实施行动与开发中的产品遵从于对应的需求、过程描述、标准及规程。 <br />b.找出及记录所发现的不一致的问题。 <br />c.向项目成员与经理提供反馈。 <br />d.确保那些不符的问题得到处理。 <br /><br />■软件组配管理（Software Configuration Management） <br />软件结构配置管理(SCM)的目的是贯穿软件生命周期，建立和维持软件项目的产品完整性。 <br />软件结构配置管理包括： <br />a.确定开发中的软件产品在某一特定时刻的结构配置。 <br />b.控制结构配置的组份的变更。 <br />c.从结构配置库中去制作开发的软件产品。 <br />d.贯穿软件生命周期，维持维软件产品基线的完整性。 <br /><br />第三级：定义级 <br />■企业对过程的重视（Organization Process Focus） <br />企业对过程的重视的目的是建立和维护对企业的软件过程的理解和协调企业的件工程过程的改进活动。 <br />企业对过程的重视包括： <br />a.评估企业和项目的软件过程。 <br />b.建立起一个计划去改进软件过程。 <br />c.对建立、维护、改进和使用整个企业内共有的软件过程的活动进行协调。 <br /><br />■企业过程定义（Organization Process Definition） <br />企业过程定义的目的是建立与维护一套可用的软件过程资源去改进整个企业的程过程效果及为企业的积累性的长期收益提供一个坚实的基础。 <br />企业过程定义所建立的软件过程资源包括： <br />a.一套企业的标准软件工程过程。 <br />b.对每一种经审核批准用于工程项目的软件生命周期模型的描述。 <br />c.关于如何剪裁企业标准的软件过程以适应具体项目需要的原则和指导方针。 <br />d.企业的软件测量结果数据库。 <br />e.企业的与软件过程有关的文件资料库。 <br /><br />■企业的培训方案（Organization Training Program） <br />企业的培训计划的目的是增进工作人员的技能和知识，使他们能实质地和高效地担当其软件角色。 <br />企业的培训计划包含： <br />a.找出什么是企业的软件培训需要。 <br />b.取得与提供所需的培训。 <br /><br />■集成化的软件管理（Integrated Software Management） <br />集成软件管理的目的是把软件工程与管理集成为一个连贯涵接的、详细定义了、基于企业标准软件过程而剪裁出来的软件过程。 <br />集成软件管理包括： <br />a.使用企业的软件过程财富，并对之作出贡献。 <br />b.基于企业标准软件过程而剪裁出详细定义了的软件过程。 <br />c.积极主动地使用这个定义了的软件过程。 <br />d.积极主动地对软件的风险进行管理。 <br /><br />■软件产品工程（Software product Engineering） <br />软件产品工程的目的是始终如一地执行明确定义了的、集成了所有软件项目的术活动的工程过程，去实质地和高效率地制造正确的、稳定的软件开发产品。 <br />软件产品工程包含： <br />a.按照项目的软件过程，执行工程的各项任务去规定，设计，制造，递交，和维护软件。 <br />b.检验与证实软件产品满足其产品技术需求。 <br /><br />■项目间的协调（Project Interface Coordination） <br />项目界面协调的目的是确保软件工程人员主动地与企业内的其他功能部门交流协调和合作，以便更好地满足客户的需求。这些功能部门包括技术的功能(例如，系统测试)，支持功能(例如，记录)，和组上的功能(例如，培训和合同)。 <br />项目界面协调牵涉到经埋与员工，其内容包含： <br />a. 与项目内其他功能部门一道处理系统要求，计划，目标，困难问题和风险。 <br />b. 确定与维持对其他涉及项目的功能部门的承诺。 <br />c. 辨明、跟踪和解决项目内功能间配合的行动与问题。 <br /><br />■交换审核（Peer Reviews） <br />交互审核的目的是尽早地和有效地从开发中的软件产品中除去缺陷。一个重要的必然结果是对软件过程和开发中的软件产品有一个更好的理解，从能够预防缺陷产生。 <br />交互审核是由软件写作者的同事使用既定的办法去对开发中的软件产品进行检查来找出缺陷与需要作出更改的地方。 <br />交互审核办法的例子包括：检查，结构化走通和积极审核。 <br /><br />第四级：定量管理级（Level4: Quatitative Management） <br />■企业软件资产共通性（Organization Software Asset Commonality） <br />企业软件资源共通性的目的是找出企业软件产品之间的共通性，以便在成本，量和生命周期等方面取得收益。 <br />企业软件资源共通性包含： <br />a. 与企业的其他功能部门合作去定义出共同软件资源的技术要求，从而使项目与企业的战略经营目标保持一致。 <br />b. 建立与维护一套能用于各个项目的开发与产品维护的共同软件资源。 <br />c. 协调对企业内所有项目的共同软件资源的部署，以便取得在成本、质量和生命周期等方面的得益。 <br /><br />■企业过程表现（Organization Process Performance） <br />企业过程效能的目的是建立和维护用于重要的过程和产品特性的测量、数据与分折技术，去支持对企业与项目的软件过程进行运用统计学方法的管理。 <br />企业过程效能包括： <br />a. 定义出表征企业软件过程效能的各种测量项目和与之关联的过程效能模型。 <br />b. 从各个软件项目收集这些过程效能的测量结果。 <br />c. 使用这些测量数据来表征企业的标准软件过程。 <br />d. 使用这些测量数据来为整个企业建立软件过程效能模型。 <br /><br />■统计法过程管理（Statistical Process Management） <br />统计法的过程管理的目的是使所选择到的所有次级过程稳定化及透彻掌握它们的能力，从而达到统计法意义上的产品质量及过程效能的目标。 <br />统计法的过程管理包括： <br />a. 建立产品质量及过程效能的目标。 <br />b. 选择项目的设定过程中的一些次级过程来进行运用统计法的管理。 <br />c. 找出、测量和分析那些（被选中的）次过程的关键产品和过程的属性持征。 <br />d. 确定每个次过程的关键的属性特征的自然界限。 <br />e. 使得（选中的）次过程成为可预测的。 <br />f. 测量与分析（选中的）次过程的过程效能。 <br />g. 把产品质量和过程效能的测量结果与所定的目标进行比对以便确定相关过程的能力。 <br /><br />第五级：（不断）优化级（Level: Optimizing） <br />■缺陷预防（Defect Prevention） <br />缺陷预防的目的是找出缺陷和其他问题产生的共同原因。采取行动去预防它们再次发生，或者采取措施去克服那些产生不及格的过程效能的原因。 <br />缺陷预防包括： <br />a. 分析过去产生的缺陷和其他的问题。 <br />b. 采取特定的行动来预防那些类型的缺陷与问题在将来再次出现。 <br />c. 采取持定的改进行动去纠正那些产生不及迅程格效能的共同原因。 <br /><br />■企业过程与技术创新（Organization Process and Technology Innovation） <br />企业过程与技术创新的目的是找出那些能够在一定程度上改进企业的软件过程而有助于达到企业改进软件过程的目标的过程与技术上的改进。 <br />企业过程与技术创新包括： <br />a. 建立和维护企业的定量法的软件过程改进目标。 <br />b. 收集与评价软件过程改进的建议。 <br />c. 找出与评价潜在的软件过程和技术的创新。 <br />d. 选择在全企业展开改革与创新的候选项目。 <br /><br />■企业改进开展（Organization Improvement Deployment） <br />企业改进的开展的目的是通过把改进转变为一种系统性的行为方式去持续地和计量地改进企业的软件过程。 <br />企业改进的开展包括： <br />a. 评价软件过程改进的候选项目。 <br />b. 选择要进行开展的软件改进项目。 <br />c. 开展改进。 <br />d. 测量改进的效果。 <br /><br />从整体来说软件能力成熟度级别从低到高的变化代表了企业的生产活动由高风险低效率到高质量、高生产率的进展。 <br />这儿要注意的一点是每个能力成熟级别的关键过程区域是累加到上一级去的，例如在第三级时就要满足所有第二级与第三级的关键过程领域的目标。 <br />如果要用简单的一句话来表达从一级到高一级所需要的努力的话，我们可以有： <br />　从一级到二级的转化：规范化过程 <br />　从二级到三级的转化：标准化、稳定的过程 <br />　从三级到四级的转化：可预测的过程 <br />　从四级到五级的转化：继续不断地改进过程 </p>
<img src ="http://www.blogjava.net/zhouxing/aggbug/84534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-11-30 13:30 <a href="http://www.blogjava.net/zhouxing/archive/2006/11/30/84534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>团队</title><link>http://www.blogjava.net/zhouxing/archive/2006/11/20/82173.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Mon, 20 Nov 2006 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/11/20/82173.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/82173.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/11/20/82173.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/82173.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/82173.html</trackback:ping><description><![CDATA[
		<font face="Verdana">      </font>
		<font face="Verdana">团队</font>
		<font face="Verdana">（</font>
		<font face="Verdana">Team</font>
		<font face="Verdana">）是由员工和管理层组成的一个共同体，它合理利用每一个成员的知识和技能协同工作，解决问题，达到共同的目标。团队的构成要素总结为5P，分别为目标、人、定位、权限、计划。团队和群体有着根本性的一些区别，群体可以向团队过渡。一般根据团队存在的目的和拥有自主权的大小将团队分为三种</font>
		<font face="Verdana">类型</font>
		<font face="Verdana">：问题解决型团队、自我管理型团队、多功能型团队。<br /><br /><strong>一、团队的定义</strong> <br />      团队是由员工和管理层组成的一个共同体，该共同体合理利用每一个成员的知识和技能协同工作，解决问题，达到共同的目标。<br /><br /><p><font face="Verdana"><strong>二、团队的构成要素</strong></font></p><p><font face="Verdana">　　团队有几个重要的构成要素，总结为5 P</font></p><p><font face="Verdana"><strong>　　1．目标(Purpose)</strong></font></p><p><font face="Verdana">　　团队应该有一个既定的目标，为团队成员导航，知道要向何处去，没有目标这个团队就没有存在的价值。</font></p><p><font face="Verdana"><strong>　　2．人(People)</strong></font></p><p><font face="Verdana">　　人是构成团队最核心的力量。3个(包含3个)以上的人就可以构成团队。目标是通过人员具体实现的，所以人员的选择是团队中非常重要的一个部分。在一个团队中可能需要有人出主意，有人定计划，有人实施，有人协调不同的人一起去工作，还有人去监督团队工作的进展，评价团队最终的贡献。不同的人通过分工来共同完成团队的目标，在人员选择方面要考虑人员的能力如何，技能是否互补，人员的经验如何。</font></p><p><font face="Verdana"><strong>　　3．团队的定位(Place)</strong></font></p><p><font face="Verdana">　　团队的定位包含两层意思：</font></p><p><font face="Verdana">　　△ 团队的定位，团队在企业中处于什么位置，由谁选择和决定团队的成员，团队最终应对谁负责，团队采取什么方式激励下属?<br />　　△ 个体的定位，作为成员在团队中扮演什么角色?是订计划还是具体实施或评估?</font></p><p><font face="Verdana"><strong>　　4．权限(Power)</strong></font></p><p><font face="Verdana">　　团队当中领导人的权利大小跟团队的发展阶段相关，一般来说，团队越成熟领导者所拥有的权利相应越小，在团队发展的初期阶段领导权是相对比较集中。<br />团队权限关系的两个方面：<br />　　(1)整个团队在组织中拥有什么样的决定权?比方说财务决定权、人事决定权、信息决定权。<br />　　(2)组织的基本特征。比方说组织的规模多大，团队的数量是否足够多，组织对于团队的授权有多大，它的业务是什么类型。</font></p><p><font face="Verdana"><strong>　　5.计划(Plan)</strong></font></p><p><font face="Verdana">　　计划的两层面含义：<br />　　(1)目标最终的实现，需要一系列具体的行动方案，可以把计划理解成目标的具体工作的程序。<br />　　(2)提前按计划进行可以保证团队的顺利进度。只有在计划的操作下团队才会一步一步的贴近目标，从而最终实现目标。<br /><br /></font></p><p><font face="Verdana"><strong>二、团队和群体的区别</strong></font></p><p><font face="Verdana"><strong>　　群体的概念：</strong></font></p><p><font face="Verdana">　　两个以上相互作用又相互依赖的个体，为了实现某些特定目标而结合在一起。群体成员共享信息，作出决策，帮助每个成员更好地担负起自己的责任。</font></p><p><font face="Verdana"><strong>　　团队和群体的差异</strong><br />　　<br />　　团队和群体经常容易被混为一谈，但它们之间有根本性的区别，汇总为六点：</font></p><p><font face="Verdana">　　(1)在领导方面。作为群体应该有明确的领导人；团队可能就不一样，尤其团队发展到成熟阶段，成员共享决策权。<br />　　(2)目标方面。群体的目标必须跟组织保持一致，但团队中除了这点之外，还可以产生自己的目标。<br />　　(3)协作方面。协作性是群体和团队最根本的差异，群体的协作性可能是中等程度的，有时成员还有些消极，有些对立；但团队中是一种齐心协力的气氛。<br />　　(4)责任方面。群体的领导者要负很大责任，而团队中除了领导者要负责之外，每一个团队的成员也要负责，甚至要一起相互作用，共同负责。<br />　　(5)技能方面。群体成员的技能可能是不同的，也可能是相同的，而团队成员的技能是相互补充的，把不同知识、技能和经验的人综合在一起，形成角色互补，从而达到整个团队的有效组合。<br />　　(6)结果方面。群体的绩效是每一个个体的绩效相加之和，团队的结果或绩效是由大家共同合作完成的产品。<br /><br />      <strong>团队的类型</strong></font></p><p>　　根据团队存在的目的和拥有自主权的大小可将团队分成三种类型。</p><p>   ◇问题解决型团队<br />   ◇自我管理型团队<br />   ◇多功能型团队 </p><p>　　问题解决型团队<br />　　问题解决型团队的核心点是提高生产质量、提高生产效率、改善企业工作环境等。在这样的团队中成员就如何改变工作程序和工作方法相互交流，提出一些建议。成员几乎没有什么实际权利来根据建议采取行动。<br />     自我管理型团队<br />　  质量圈对表现企业的质量行之有效，但团队成员在参与决策方面的积极性显得不够，企业总是希望能建立独立自主、自我管理的团队——自我管理型团队。<br /><br />     多功能型团队<br />多功能型团队是由来自同一种等级不同领域的员工组成，成员之间交换信息，激发新的观点，解决所面临的一些问题。</p></font>
<img src ="http://www.blogjava.net/zhouxing/aggbug/82173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-11-20 10:23 <a href="http://www.blogjava.net/zhouxing/archive/2006/11/20/82173.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RUP</title><link>http://www.blogjava.net/zhouxing/archive/2006/11/14/81111.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Tue, 14 Nov 2006 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/11/14/81111.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/81111.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/11/14/81111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/81111.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/81111.html</trackback:ping><description><![CDATA[         <font face="Verdana">RUP</font><font face="Verdana">（</font><font face="Verdana">Rational</font><font face="Verdana"> Unified Process，</font><font face="Verdana">统一软件开发过程</font><font face="Verdana">，</font><font face="Verdana">统一软件过程</font><font face="Verdana">)是一个</font><font face="Verdana">面向对象</font><font face="Verdana">且基于网络的</font><font face="Verdana">程序</font><font face="Verdana">开发方法论。根据Rational(</font><font face="Verdana">Rational Rose</font><font face="Verdana">和</font><font face="Verdana">统一建模语言</font><font face="Verdana">的开发者)的说法，好像一个在线的指导者，它可以为所有方面和层次的程序开发提供指导方针，模版以及事例支持。 RUP和</font><font face="Verdana">类</font><font face="Verdana">似的产品--例如面向</font><font face="Verdana">对象</font><font face="Verdana">的</font><font face="Verdana">软件过程</font><font face="Verdana">（OOSP），以及OPEN Process都是理解性的</font><font face="Verdana">软件工程</font><font face="Verdana">工具--把开发中面向过程的方面（例如定义的阶段，技术和实践）和其他开发的</font><font face="Verdana">组件</font><font face="Verdana">（例如文档，模型，手册以及代码等等）整合在一个统一的</font><font face="Verdana">框架</font><font face="Verdana">内。<br />    
<p><font face="Verdana"><strong>一、六大经验</strong></font></p><p><font face="Verdana">      迭代式开发。在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上，我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化，通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险，而且每个迭代过程以可以执行版本结束，可以鼓舞开发人员。</font></p><p><font face="Verdana">      管理需求。确定系统的需求是一个连续的过程，开发人员在开发系统之前不可能完全详细的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化，用例和脚本的使用以被证明是捕获功能性需求的有效方法。</font></p><p><font face="Verdana">      基于组件的体系结构。组件使重用成为可能，系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于管理复杂性，提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。</font></p><p><font face="Verdana">       可视化建模。RUP往往和UML联系在一起，对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模，获取有关体系结构于组件的结构和行为信息。</font></p><p><font face="Verdana">      验证软件质量。在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动，而是内建于过程中的所有活动，这样可以及早发现软件中的缺陷。</font></p><p><font face="Verdana">      控制软件变更。迭代式开发中如果没有严格的控制和协调，整个软件开发过程很快就陷入混乱之中，RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过软件开发过程中的制品，隔离来自其他工作空间的变更，以此为每个开发人员建立安全的工作空间。<br /></font></p><p><font face="Verdana"><strong>二、统一软件开发过程RUP的二维开发模型</strong></font></p><p><font face="Verdana">　　<font face="Verdana">RUP软件开发生命周期是一个二维的软件开发模型</font>。横轴通过时间组织，是过程展开的生命周期特征，体现开发过程的动态结构，用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone)；纵轴以内容来组织为自然的逻辑活动，体现开发过程的静态结构，用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。<br /><br /><strong>三、统一软件开发过程RUP核心概念<br /><br /></strong>      角色：描述某个人或者一个小组的行为与职责。RUP预先定义了很多角色。<br />      活动：是一个有明确目的的独立工作单元。<br />      工件：是活动生成、创建或修改的一段信息。<br /></font></p><p><strong>四、统一软件开发过程RUP裁剪</strong></p><p>      RUP是一个通用的过程模板，包含了很多开发指南、制品、开发过程所涉及到的角色说明，由于它非常庞大所以对具体的开发机构和项目，用RUP时还要做裁剪，也就是要对RUP进行配置。RUP就像一个元过程，通过对RUP进行裁剪可以得到很多不同的开发过程，这些软件开发过程可以看作RUP的具体实例。RUP裁剪可以分为以下几步：</p><p>1) 确定本项目需要哪些工作流。RUP的9个核心工作流并不总是需要的，可以取舍。</p><p>2) 确定每个工作流需要哪些制品。</p><p>3) 确定4个阶段之间如何演进。确定阶段间演进要以风险控制为原则，决定每个阶段要那些工作流，每个工作流执行到什么程度，制品有那些，每个制品完成到什么程度。</p><p>4) 确定每个阶段内的迭代计划。规划RUP的4个阶段中每次迭代开发的内容。</p><p>5) 规划工作流内部结构。工作流涉及角色、活动及制品，他的复杂程度与项目规模即角色多少有关。最后规划工作流的内部结构，通常用活动图的形式给出。<br /><br /></p><p><strong>五、开发过程中的各个阶段和里程碑</strong></p><p>　　RUP中的软件生命周期在时间上被分解为四个顺序的阶段，分别是：初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。每个阶段结束于一个主要的里程碑(Major Milestones)；每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话，可以允许项目进入下一个阶段。 </p><p>1． 初始阶段</p><p>　　初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体，在较高层次上定义交互的特性。本阶段具有非常重要的意义，在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲，初始阶段可能很短。 初始阶段结束时是第一个重要的里程碑：生命周期目标(Lifecycle Objective)里程碑。生命周期目标里程碑评价项目基本的生存能力。</p><p>2． 细化阶段 </p><p>　　细化阶段的目标是分析问题领域，建立健全的体系结构基础，编制项目计划，淘汰项目中最高风险的元素。为了达到该目的，必须在理解整个系统的基础上，对体系结构作出决策，包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境，包括创建开发案例，创建模板、准则并准备工具。 细化阶段结束时第二个重要的里程碑：生命周期结构(Lifecycle Architecture)里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻，要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。</p><p>3． 构造阶段 </p><p>　　在构建阶段，所有剩余的构件和应用程序功能被开发并集成为产品，所有的功能被详细测试。从某种意义上说，构建阶段是一个制造过程，其重点放在管理资源及控制运作以优化成本、进度和质量。 构建阶段结束时是第三个重要的里程碑：初始功能(Initial Operational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻，要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。</p><p>4． 交付阶段 </p><p>　　交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代，包括为发布做准备的产品测试，基于用户反馈的少量的调整。在生命周期的这一点上，用户反馈应主要集中在产品调整，设置、安装和可用性问题，所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。 在交付阶段的终点是第四个里程碑：产品发布(Product Release)里程碑。此时，要确定目标是否实现，是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。<br /></p><p><strong>六、统一软件开发过程RUP的核心工作流(Core Workflows)</strong></p><p>　　RUP中有9个核心工作流，分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段，但应注意迭代过程中的阶段是完全不同的，这些工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中轮流被使用，在每一次迭代中以不同的重点和强度重复。</p><p><strong>1． 商业建模(Business Modeling)</strong></p><p>      商业建模工作流描述了如何为新的目标组织开发一个构想，并基于这个构想在商业用例模型和商业对象模型中定义组织的过程，角色和责任。 </p><p><strong>2． 需求(Requirements)</strong></p><p>　　需求工作流的目标是描述系统应该做什么，并使开发人员和用户就这一描述达成共识。为了达到该目标，要对需要的功能和约束进行提取、组织、文档化；最重要的是理解系统所解决问题的定义和范围。</p><p><strong>3． 分析和设计(Analysis &amp; Design)</strong></p><p>　　分析和设计工作流将需求转化成未来系统的设计，为系统开发一个健壮的结构并调整设计使其与实现环境相匹配，优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象，由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem)，而描述则体现了类的对象如何协同工作实现用例的功能。 设计活动以体系结构设计为中心，体系结构由若干结构视图来表达，结构视图是整个设计的抽象和简化，该视图中省略了一些细节，使重要的特点体现得更加清晰。体系结构不仅仅是良好设计模型的承载媒介，而且在系统的开发中能提高被创建模型的质量。 </p><p><strong>4． 实现(Implementation)</strong></p><p>　　实现工作流的目的包括以层次化的子系统形式定义代码的组织结构；以组件的形式(源文件、二进制文件、可执行文件)实现类和对象；将开发出的组件作为单元进行测试以及集成由单个开发者（或小组）所产生的结果，使其成为可执行的系统。 </p><p><strong>5． 测试(Test)</strong></p><p>测试工作流要验证对象间的交互作用，验证软件中所有组件的正确集成，检验所有的需求已被正确的实现, 识别并确　　认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法，意味着在整个项目中进行测试，从而尽可能早地发现缺陷，从根本上降低了修改缺陷的成本。测试类似于三维模型，分别从可靠性、功能性和系统性能来进行。</p><p><strong>6． 部署(Deployment)</strong></p><p>　　部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动，包括：软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下，还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。</p><p><strong>7． 配置和变更管理(Configuration &amp; Change Management)</strong></p><p>　　配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体，跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。</p><p><strong>8． 项目管理(Project Management)</strong></p><p>　　软件项目管理平衡各种可能产生冲突的目标，管理风险，克服各种约束并成功交付使用户满意的产品。其目标包括：为项目的管理提供框架，为计划、人员配备、执行和监控项目提供实用的准则，为管理风险提供框架等。</p><p><strong>9． 环境(Environment)</strong></p><p>　　环境工作流的目的是向软件开发组织提供软件开发环境，包括过程和工具。环境工作流集中于配置项目过程中所需要的活动，同样也支持开发项目规范的活动，提供了逐步的指导手册并介绍了如何在组织中实现过程。<br /><br /></p><p><strong>七、RUP的迭代开发模式</strong></p><p>　　RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环，产生一个可执行的产品版本，是最终产品的一个子集，它增量式地发展，从一个迭代过程到另一个迭代过程到成为最终的系统。 传统上的项目组织是顺序通过每个工作流，每个工作流只有一次，也就是我们熟悉的瀑布生命周期。这样做的结果是到实现末期产品完成并开始测试，在分析、设计和实现阶段所遗留的隐藏问题会大量出现，项目可能要停止并开始一个漫长的错误修正周期。<br />     一种更灵活，风险更小的方法是多次通过不同的开发工作流，这样可以更好的理解需求，构造一个健壮的体系结构，并最终交付一系列逐步完成的版本。这叫做一个迭代生命周期。在工作流中的每一次顺序的通过称为一次迭代。软件生命周期是迭代的连续，通过它，软件是增量的开发。一次迭代包括了生成一个可执行版本的开发活动，还有使用这个版本所必需的其他辅助成分，如版本描述、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过，这些工作流至少包括：需求工作流、分析和设计工作流、实现工作流、测试工作流。其本身就像一个小型的瀑布项目。<br />     与传统的瀑布模型相比较，迭代过程具有以下优点：</p><p>　　降低了在一个增量上的开支风险。如果开发人员重复某个迭代，那么损失只是这一个开发有误的迭代的花费。</p><p>　　降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险，可以尽早来解决而不至于在开发后期匆匆忙忙。 </p><p>　　加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在，他们的工作会更有效率。</p><p>　　由于用户的需求并不能在一开始就作出完全的界定，它们通常是在后续阶段中不断细化的。因此，迭代过程这种模式使适应需求的变化会更容易些。<br /><br /></p><p><strong>八、统一软件开发过程RUP的十大要素</strong></p><p>1. 开发前景 <br />2. 达成计划 <br />3. 标识和减小风险 <br />4. 分配和跟踪任务。。 <br />5. 检查商业理由 <br />6. 设计组件构架 <br />7. 对产品进行增量式的构建和测试 <br />8. 验证和评价结果 <br />9. 管理和控制变化 <br />10. 提供用户支持 </p><p>让我们逐一的审视这些要素，看一看它们什么地方适合ＲＵＰ，找出它们能够成为十大要素的理由。<br /> <br /><strong>1. 开发一个前景</strong><br />      有一个清晰的前景是开发一个满足涉众真正需求的产品的关键。 前景抓住了ＲＵＰ需求流程的要点：分析问题，理解涉众需求，定义系统，当需求变化时管理需求。 前景给更详细的技术需求提供了一个高层的、有时候是合同式的基础。正像这个术语隐含的那样，它是软件项目的一个清晰的、通常是高层的视图，能被过程中任何决策者或者实施者借用。它捕获了非常高层的需求和设计约束，让前景的读者能理解将要开发的系统。它还提供了项目审批流程的输入，因此就与商业理由密切相关。最后，由于前景构成了“项目是什么？”和“为什么要进行这个项目？”，所以可以把前景作为验证将来决策的方式之一。 对前景的陈述应该能回答以下问题，需要的话这些问题还可以分成更小、更详细的问题： ? 关键术语是什么？（词汇表） ? 我们尝试解决的问题是什么？（问题陈述） ? 涉众是谁？用户是谁？他们各自的需求是什么？ ? 产品的特性是什么？ ? 功能性需求是什么？（Ｕｓｅ Ｃａｓｅｓ） ? 非功能性需求是什么？ ? 设计约束是什么？ </p><p><strong>2. 达成计划</strong><br />        “产品的质量只会和产品的计划一样好。” (2) 在ＲＵＰ中，软件开发计划（ＳＤＰ）综合了管理项目所需的各种信息，也许会包括一些在先启阶段开发的单独的内容。SDP必须在整个项目中被维护和更新。 ＳＤＰ定义了项目时间表（包括项目计划和迭代计划）和资源需求（资源和工具），可以根据项目进度表来跟踪项目进展。同时也指导了其他过程内容（原文：process components）的计划：项目组织、需求管理计划、配置管理计划、问题解决计划、QA计划、测试计划、评估计划以及产品验收计划。 </p><p>      在较简单的项目中，对这些计划的陈述可能只有一两句话。比如，配置管理计划可以简单的这样陈述：每天结束时，项目目录的内容将会被压缩成ZIP包，拷贝到一个ZIP磁盘中，加上日期和版本标签，放到中央档案柜中。 软件开发计划的格式远远没有计划活动本身以及驱动这些活动的思想重要。正如Dwight D.Eisenhower所说：“plan什么也不是，planning才是一切。” “达成计划”—和列表中第3、4、5、8条一起—抓住了RUP中项目管理流程的要点。项目管理流程包括以下活动：构思项目、评估项目规模和风险、监测与控制项目、计划和评估每个迭代和阶段。 </p><p><strong>3. 标识和减小风险</strong><br />      RUP的要点之一是在项目早期就标识并处理最大的风险。项目组标识的每一个风险都应该有一个相应的缓解或解决计划。风险列表应该既作为项目活动的计划工具，又作为确定迭代的基础。 </p><p><strong>4. 分配和跟踪任务</strong><br />      有一点在任何项目中都是重要的，即连续的分析来源于正在进行的活动和进化的产品的客观数据。在RUP中，定期的项目状态评估提供了讲述、交流和解决管理问题、技术问题以及项目风险的机制。团队一旦发现了这些障碍物（篱笆），他们就把所有这些问题都指定一个负责人，并指定解决日期。进度应该定期跟踪，如有必要，更新应该被发布。（原文：updates should be issued as necessary。） 这些项目“快照”突出了需要引起管理注意的问题。随着时间的变化/虽然周期可能会变化（原文：While the period may vary。），定期的评估使经理能捕获项目的历史，并且消除任何限制进度的障碍或瓶颈。 </p><p><strong>5. 检查商业理由</strong><br />      商业理由从商业的角度提供了必要的信息，以决定一个项目是否值得投资。商业理由还可以帮助开发一个实现项目前景所需的经济计划。它提供了进行项目的理由，并建立经济约束。当项目继续时，分析人员用商业理由来正确的估算投资回报率(ROI，即return on investment)。 商业理由应该给项目创建一个简短但是引人注目的理由，而不是深入研究问题的细节，以使所有项目成员容易理解和记住它。在关键里程碑处，经理应该回顾商业理由，计算实际的花费、预计的回报，决定项目是否继续进行。 </p><p><strong>6. 设计组件构架</strong><br />      在RUP中，件系统的构架是指一个系统关键部件的组织或结构，部件之间通过接口交互，而部件是由一些更小的部件和接口组成的。即主要的部分是什么？他们又是怎样结合在一起的？ RUP提供了一种设计、开发、验证构架的很系统的方法。在分析和设计流程中包括以下步骤：定义候选构架、精化构架、分析行为（用例分析）、设计组件。 要陈述和讨论软件构架，你必须先创建一个构架表示方式，以便描述构架的重要方面。在RUP中，构架表示由软件构架文档捕获，它给构架提供了多个视图。每个视图都描述了某一组涉众所关心的正在进行的系统的某个方面。涉众有最终用户、设计人员、经理、系统工程师、系统管理员，等等。这个文档使系统构架师和其他项目组成员能就与构架相关的重大决策进行有效的交流。 </p><p><strong>7. 对产品进行增量式的构建和测试</strong><br />      在RUP中实现和测试流程的要点是在整个项目生命周期中增量的编码、构建、测试系统组件，在先启之后每个迭代结束时生成可执行版本。在精化阶段后期，已经有了一个可用于评估的构架原型；如有必 要，它可以包括一个用户界面原型。然后，在构建阶段的每次迭代中，组件不断的被集成到可执行、经过测试的版本中，不断地向最终产品进化。动态及时的配置管理和复审活动也是这个基本过程元素（原文：essential process element）的关键。 </p><p><strong>8. 验证和评价结果</strong><br />      顾名思义，RUP的迭代评估捕获了迭代的结果。评估决定了迭代满足评价标准的程度，还包括学到的教训和实施的过程改进。 根据项目的规模和风险以及迭代的特点，评估可以是对演示及其结果的一条简单的纪录，也可能是一个完整的、正式的测试复审记录。 这儿的关键是既关注过程问题又关注产品问题。越早发现问题，就越没有问题。（原文：The sooner you fall behind, the more time you will have to catch up.） </p><p><strong>9. 管理和控制变化</strong><br />      RUP的配置和变更管理流程的要点是当变化发生时管理和控制项目的规模，并且贯穿整个生命周期。其目的是考虑所有的涉众需求，尽可能的满足，同时仍能及时的交付合格的产品。 用户拿到产品的第一个原型后（往往在这之前就会要求变更），他们会要求变更。重要的是，变更的提出和管理过程始终保持一致。 在RUP中，变更请求通常用于记录和跟踪缺陷和增强功能的要求，或者对产品提出的任何其他类型的变更请求。变更请求提供了相应的手段来评估一个变更的潜在影响，同时记录就这些变更所作出的决策。他们也帮助确保所有的项目组成员都能理解变更的潜在影响。 </p><p><strong>10. 提供用户支持</strong><br />      在RUP中，部署流程的要点是包装和交付产品，同时交付有助于最终用户学习、使用和维护产品的任何必要的材料。 项目组至少要给用户提供一个用户指南（也许是通过联机帮助的方式提供），可能还有一个安装指南和版本发布说明。 根据产品的复杂度，用户也许还需要相应的培训材料。最后，通过一个材料清单（BOM表，即Bill of Materials）清楚地记录应该和产品一起交付哪些材料。 关于需求 有人看了我的要素清单后，可能会非常不同意我的选择。例如，他会问，需求在哪儿呢？他们不重要吗？我会告诉他我为什么没有把它们包括进来。有时，我会问一个项目组（特别是内部项目的项目组）：“你们的需求是什么？”，而得到的回答却是：“我们的确没有什么需求。” 刚开始我对此非常惊讶（我有军方的宇航开发背景）。他们怎么会没有需求呢？当我进一步询问时，我发现，对他们来说，需求意味着一套外部提出的强制性的陈述，要求他们必须怎么样，否则项目验收就不能通过。但是他们的确没有得到这样的陈述。尤其是当项目组陷入了边研究边开发的境地时，产品需求从头到尾都在演化。 因此，我接着问他们另外一个问题：“好的，那么你们的产品的前景是什么呢？”。这时他们的眼睛亮了起来。然后，我们非常顺利的就第一个要素（“开发一个前景”）中列出的问题进行了沟通，需求也自然而然的流动着（原文：and the requirements just flow naturally.）。 也许只有对于按照有明确需求的合同工作的项目组，在要素列表中加入“满足需求”才是有用的。请记住，我的清单仅仅意味着进行进一步讨论的一个起点。 </p><p><strong>九、总结</strong></p><p>　　RUP具有很多长处：提高了团队生产力，在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面，针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导，并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构，为开发过程提供较大的通用性。但同时它也存在一些不足： RUP只是一个开发过程，并没有涵盖软件过程的全部内容，例如它缺少关于软件运行和支持等方面的内容；此外，它没有支持多项目的开发结构，这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端，但并不完美，在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。</p></font><img src ="http://www.blogjava.net/zhouxing/aggbug/81111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-11-14 22:09 <a href="http://www.blogjava.net/zhouxing/archive/2006/11/14/81111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件生命周期</title><link>http://www.blogjava.net/zhouxing/archive/2006/11/09/80089.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Thu, 09 Nov 2006 03:50:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/11/09/80089.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/80089.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/11/09/80089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/80089.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/80089.html</trackback:ping><description><![CDATA[
		<font face="Verdana">      </font>
		<font face="Verdana">软件生命周期</font>
		<font face="Verdana">(</font>
		<font face="Verdana">SDLC</font>
		<font face="Verdana">，</font>
		<font face="Verdana">软件生存周期</font>
		<font face="Verdana">)是</font>
		<font face="Verdana">软件</font>
		<font face="Verdana">的产生直到报废的生命周期，周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段，这种按时间分程的思想方法是</font>
		<font face="Verdana">软件工程</font>
		<font face="Verdana">中的一种思想原则，即按部就班、逐步推进，每个阶段都要有定义、工作、审查、形成文档以供交流或备查，以提高软件的质量。但随着新的</font>
		<font face="Verdana">面向对象</font>
		<font face="Verdana">的设计方法和技术的成熟，软件生命周期设计方法的指导意义正在逐步减少。<br /><br /><p><font face="Verdana"><strong>一、软件生命周期(SDLC)的六个阶段</strong></font></p><p><font face="Verdana">1、问题的定义及规划<br />      此阶段是软件开发方与需求方共同讨论，主要确定软件的开发目标及其可行性。</font></p><p><font face="Verdana">2、需求分析<br />      在确定软件开发可行的情况下，对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段，这一阶段做得好，将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。"，同样需求也是在整个软件开发过程中不断变化和深入的，因此我们必须制定需求变更计划来应付这种变化，以保护整个项目的顺利进行。<br /><br />3、软件设计<br />      此阶段主要根据需求分析的结果，对整个软件系统进行设计，如系统框架设计，数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。<br /><br /></font></p><p><font face="Verdana">4、程序编码<br />      此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一，符合标准的编写规范。以保证程序的可读性，易维护性，提高程序的运行效率。</font></p><p><font face="Verdana">5、软件测试<br />      在软件设计完成后要经过严密的测试，以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试，以减少测试的随意性。<br /><br /></font></p><p><font face="Verdana">6、运行维护<br />      软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后，由于多方面的原因，软件不能继续适应用户的要求。要延续软件的使用寿命，就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。</font></p><p><font face="Verdana"><strong>二、软件生命周期模型</strong></font></p><p><font face="Verdana">　　任何软件都是从最模糊的概念开始的：为某个公司设计办公的流程处理；设计一种商务信函打印系统并投放市场。这个概念是不清晰的，但却是最高层的业务需求的原型。这个概念都会伴随着一个目的，例如在一个"银行押汇系统" 的目的是提高工作的效率。这个目的将会成为系统的核心思想，系统成败的评判标准。99年政府部门上了大量的OA系统，学过一点Lotus Notes的人都发了财（IBM更不用说了），但是更普遍的情况是，许多的政府部门原有的处理模式并没有变化，反而又加上了自动化处理的一套流程。提高工作效率的初衷却导致了完全不同的结果。这样的软件究竟是不是成功的呢？ </font></p><p><font face="Verdana">　　从概念提出的那一刻开始，软件产品就进入了软件生命周期。在经历需求、分析、设计、实现、部署后，软件将被使用并进入维护阶段，直到最后由于缺少维护费用而逐渐消亡。这样的一个过程，称为"生命周期模型"（Life Cycle Model）。 </font></p><p><font face="Verdana">　　典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。<br /><br />      瀑布模型（Waterfall Model）首先由Royce提出。该模型由于酷似瀑布闻名。在该模型中，首先确定需求，并接受客户和SQA小组的验证。然后拟定规格说明，同样通过验证后，进入计划阶段…可以看出，瀑布模型中至关重要的一点是只有当一个阶段的文档已经编制好并获得SQA小组的认可才可以进入下一个阶段。这样，瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到，因为整个的模型几乎都是以文档驱动的，这对于非专业的用户来说是难以阅读和理解的。想象一下，你去买衣服的时候，售货员给你出示的是一本厚厚的服装规格说明，你会有什么样的感触。虽然瀑布模型有很多很好的思想可以借鉴，但是在过程能力上有天生的缺陷。 <br /><br />      迭代式模型是RUP推荐的周期模型，也是我们在这个系列文章讨论的基础。在RUP中，迭代被定义为：迭代包括产生产品发布（稳定、可执行的产品版本）的全部开发活动和要使用该发布必需的所有其他外围元素。所以，在某种程度上，开发迭代是一次完整地经过所有工作流程的过程：（至少包括）需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上，它类似小型的瀑布式项目。RUP认为，所有的阶段（需求及其它）都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品，这个产品是最终产品的一个子集<br /><br />      迭代和瀑布的最大的差别就在于风险的暴露时间上。"任何项目都会涉及到一定的风险。如果能在生命周期中尽早确保避免了风险，那么您的计划自然会更趋精确。有许多风险直到已准备集成系统时才被发现。不管开发团队经验如何，都绝不可能预知所有的风险<br /><br />      由于瀑布模型的特点（文档是主体），很多的问题在最后才会暴露出来，为了解决这些问题的风险是巨大的。"在迭代式生命周期中，您需要根据主要风险列表选择要在迭代中开发的新的增量内容。每次迭代完成时都会生成一个经过测试的可执行文件，这样就可以核实是否已经降低了目标风险。 </font></p><p><font face="Verdana">　　快速原型（Rapid Prototype）模型是我喜欢采用的另一种模型。快速原型模型在功能上等价于产品的一个子集。注意，这里说的是功能上。瀑布模型的缺点就在于不够直观，快速原型法就解决了这个问题。一般来说，根据客户的需要在很短的时间内解决用户最迫切需要，完成一个可以演示的产品。这个产品只是实现部分的功能（最重要的）。它最重要的目的是为了确定用户的真正需求。在我的经验中，这种方法非常的有效，原先对计算机没有丝毫概念的用户在你的原型面前往往口若悬河，有些观点让你都觉得非常的吃惊。在得到用户的需求之后，原型将被抛弃。因为原型开发的速度很快，设计方面是几乎没有考虑的，如果保留原型的话，在随后的开发中会为此付出极大的代价。至于保留原型方面，也是有一种叫做增量模型是这么做的，但这种模型并不为大家所接受，不在我们的讨论之内。 </font></p><p><font face="Verdana">　　上述的模型中都有自己独特的思想，其实现在的软件组织中很少说标准的采用那一种模型的。模型和实用还是有很大的区别的。 </font></p><p><font face="Verdana">　　软件生命周期模型的发展实际上是体现了软件工程理论的发展。在最早的时候，软件的生命周期处于无序、混乱的情况。一些人为了能够控制软件的开发过程，就把软件开发严格的区分为多个不同的阶段，并在阶段间加上严格的审查。这就是瀑布模型产生的起因。瀑布模型体现了人们对软件过程的一个希望：严格控制、确保质量。可惜的是，现实往往是残酷的。瀑布模型根本达不到这个过高的要求，因为软件的过程往往难于预测。反而导致了其它的负面影响，例如大量的文档、繁琐的审批。因此人们就开始尝试着用其它的方法来改进或替代瀑布方法。例如把过程细分来增加过程的可预测性。<br /></font></p></font>
<img src ="http://www.blogjava.net/zhouxing/aggbug/80089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-11-09 11:50 <a href="http://www.blogjava.net/zhouxing/archive/2006/11/09/80089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP 极限编程 </title><link>http://www.blogjava.net/zhouxing/archive/2006/11/07/79691.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Tue, 07 Nov 2006 12:38:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/11/07/79691.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/79691.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/11/07/79691.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/79691.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/79691.html</trackback:ping><description><![CDATA[
		<font face="Verdana">      极限编程</font>
		<font face="Verdana">（Extreme Programming</font>
		<font face="Verdana">，</font>
		<font face="Verdana">X</font>
		<font face="Verdana">P）是一门针对业务和软件开发</font>
		<font face="Verdana">的规则，它的作用在于将两者的力量集中在共同的、可以达到的目标上。它是以符合客户需要的软件</font>
		<font face="Verdana">为目标而产生的一种方法论，XP使开发者能够更有效的响应客户的需求</font>
		<font face="Verdana">变化，哪怕是在软件生命周期</font>
		<font face="Verdana">的后期。它强调，软件开发是人与人合作进行的过程，因此成功的软件开发过程应该充分利用人的优势，而弱化人的缺点，突出了人在软件开发过程中的作用。极端编程属于轻量级的方法，认为文档、架构</font>
		<font face="Verdana">不如直接编程来的直接。</font>
		<p>
				<font face="Verdana">      XP实际上是一种经历过很多实践考验的一种软件开发的方法，它诞生了大概有5 年，它已经被成功的应用在许多大型的公司，如：Bayeris che Landesbank，Credit Swis s Life，DaimlerChrysler，First Union National Bank　Ford Motor Company and UBS.XP 的成功得益于它对客户满意度的特别强调，XP 是以开发符合客户需要的软件为目标而产生的一种方法论，XP 使开发者能够更有效的响应客户的需求变化，哪怕在软件生命周期的后期。</font>
		</p>
		<p>
				<font face="Verdana">　　同时，XP 也很强调团队合作。团队包括：项目经理，客户，开发者。他们团结在一起来保证高质量的软件。XP 其实是一种保证成功的团队开发的简单而有效的方法。 </font>
		</p>
		<p>
				<font face="Verdana">　　XP 强调四种价值：交流，简易，回馈，勇气。XP 程序员之间紧密的相互交流，XP 程序员也和客户紧密的交流。他们总是保持他们的设计简单明了。项目一开始，XP 就强调通过对软件的不断测试来获得反馈，程序员尽可能早的把软件交给客户，并实现客户对软件需求提出的变化，有了这些基础，XP 程序员就可以自信的面对需求和软件技术的变化。</font>
		</p>
		<p>
				<font face="Verdana">　　XP 是与众不同的，它有点象快步的舞蹈。XP 开发过程包括许多的小卡片，独立的看，这些小卡片没有什么意义，但是当它们组合在一起，一幅完整的美丽的图片就可以看见，XP方法有别于传统软件开发，它是软件开发的一种新的重要的发展。它改变了我们开发程序的传统思维方式。下面我们将介绍它带给我们那些改变。<br /> <br />　　XP属于轻量开发方法中较有影响的一种方法。轻量开发方法是相对于传统的重量开发方法而言。简单地理解，“量”的轻重是指用于软件过程管理和控制的、除程序量以外的“文档量”的多少。XP等轻量开发方法认识到，在当前很多情况下，按传统观念建立的大量文档，一方面需要消耗大量开发资源，同时却已失去帮助“预见、管理、决策和控制的依据”的作用。因此必须重新审视开发环节，去除臃肿累赘，轻装上阵。</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>一、XP的核心思想</strong>
				</font>
		</p>
		<p>
				<font face="Verdana">      从长远看，早期发现错误以及降低复杂度可以节约成本。极限编程强调我们将任务/系统细分为可以在较短周期解决的一个个子任务/模块，并且强调测试、代码质量和及早发现问题。通常，通过一个个短小的迭代周期，我们就可以获得一个个阶段性的进展，并且可以及时形成一个版本供用户参考，以便及时对用户可能的需求变更作出响应。</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>二、XP的十二种方法</strong>
				</font>
		</p>
		<p>
				<font face="Verdana">      规划策略(The Planning Game)；<br />      结对编程(Pair programming)<br />      测试(Testing)<br />      重构(Refractoring)<br />      简单设计(Simple Design)<br />      代码集体所有权(Collective Code Ownership)<br />      持续集成(Continuous Integration)<br />      现场客户(On-site Customer)<br />      小型发布（Small Release）<br />      每周40小时工作制（40-hour Week）<br />      编码规范（Code Standards）<br />      系统隐喻（System Metaphor） </font>
		</p>
		<p>
				<font face="Verdana">
						<strong>三、XP的四个核心价值</strong>
				</font>
		</p>
		<p>
				<font face="Verdana">      极限编程中有四个核心价值是我们在开发中必须注意的：沟通（Communication）、简单（Simplicity）、反馈（Feedback）和勇气（Courage）。 </font>
		</p>
		<p>
				<font face="Verdana">　　XP用“沟通、简单、反馈和勇气”来减轻开发压力和包袱；无论是术语命名、专著叙述内容和方式、过程要求，都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践，在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。</font>
		</p>
		<p>
				<font face="Verdana">　　XP精神可以启发我们如何学习和对待快速变化、多样的开发技术。成功学习XP的关键，是用“沟通、简单、反馈和勇气”的态度来对待XP；轻松愉快地来感受XP的实践思想；自己认真实践后，通过对真实反馈的分析，来决定XP对自己的价值；有勇气接受它，或改进它。</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>四、XP 带给我们的变化</strong>
				</font>
		</p>
		<p>
				<font face="Verdana">　　通过软件工程设计的简单而优美的软件并不比那些设计复杂而难以维护的软件有价值。这是真的吗？XP认为事实并非如此。</font>
		</p>
		<p>
				<font face="Verdana">　　一个典型的项目花在人力上的金钱是花在硬件上的时间的20 倍，这意味着一个项目每年要花200 万美元在程序员身上，而仅仅花10 万美元在电脑设备上。很多聪明的程序员说：“我们如此聪明，发现一种方法可以节省20%的硬件开销”，然后他们使得源程序大而且难懂和难以维护，他们会说：“但是我们节省了20%或者2 万美元每年，很大的节省”。反之，如果我们写我们的程序简单而且容易扩展，我们将至少节省10%的人力开销，一笔更大的节省，这是你客户一定会注意到的一些事情。</font>
		</p>
		<p>
				<font face="Verdana">　　另外一个对客户来说很重要的问题就是程序的BUGS 。XP 不只是强调测试，而且要求正确的测试。测试必须是能自动进行的，以便为程序和客户提供一个安全的环境。在编码的所有阶段，我们不断增加测试用例。当找到bug 时，我们就添加新的测试，一个紧密的安全网就这样产生了。同一个BUG 不出现两次，这些一定会引起用户的注意。你的客户必须注意的另外一件事情：XP 开发者拥抱需求变化。XP 使我们能够接受需求的变化。</font>
		</p>
		<p>
				<font face="Verdana">　　一般情况下，客户只有在系统被开发完成以后能真正去体会它。XP 却不一样，它通过加强客户的反馈来缩短开发的周期，同时获得足够的时间来改变功能和获得用户的认同。在XP 中，你的客户应该明确的知道这一点。</font>
		</p>
		<p>
				<font face="Verdana">　　XP开发过程的大多的革命是在软件开发的方法上，代码质量的重要程度超出人们一般所认为的。仅仅因为我们的客户不能明白我们的源代码并不意味着我们可以不努力去管理代码的质量。</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>五、我们什么时候用XP</strong>
				</font>
		</p>
		<p>
				<font face="Verdana">　　XP方法的产生是因为难以管理的需求变化，从一开始你的客户并不是很完全的知道他们要的系统是怎么样的，你可能面对的系统的功能一个月变化多次。在大多数软件开发环境中不断变化的需求是唯一的不变，这个时候应用XP 就可以取得别的方法不可能取得的成功。XP 方法的建立同时也是为了解决软件开发项目中的风险问题。假如你的客户在特定的时间内，需要一个相当难开发的系统，而且对于你的项目组来说，这个系统是一个新的挑战（从来没有做过），那风险就更大了，如果这个系统对于整个软件行业来说都是新的挑战，那么它的风险就更大了，采用XP 将可以减少风险，增加成功的可能。</font>
		</p>
		<p>
				<font face="Verdana">　　XP方法是为小团体开发建立的，在2-10 个人之间。假如你的团体恰好合适，你就不需要用其他的软件工程方法了，就用XP ，但是要注意你不能将XP 方法应用于大团体的开发项目中。我们应该注意，在需求一惯呈动态变化或者高具有高风险的项目中，你就会发现XP 方法在小团体的开发中的作用要远远高于在大团体的开发。</font>
		</p>
		<p>
				<font face="Verdana">　　XP方法需要一个扩展的开发团体，XP 团体不仅仅包括开发者，经理、客户也是其中的一员，所有的工作一环扣一环，问问题，商讨方法和日程，增加功能测试，这些问题的解决不仅仅涉及到软件的开发者。</font>
		</p>
		<p>
				<font face="Verdana">　　另一个需要是可测试性，你必须能增加自动的单元测试和功能测试，然而在你进行这个需求的时候，你会发现有许多的问题很难测试，这需要充分发挥你的测试的经验和智慧，而且你有时还要改变你的设计以便它可以更容易的进行测试。记住：那儿有需求，那儿就应该有测试的方法。 </font>
		</p>
		<p>
				<font face="Verdana">　　在XP方法的好处的清单上，最后一条是生产力。在同样的合作环境下，XP 项目都一致的表现出比使用其他方法高的多的生产力。但这从来不是XP 方法学的真正目标。XP 真实追求的目标是：在规定的时间生产出满足客户需要的软件。假如对于你的开发来说，这是很重要的方面，你就可以选择XP 了。</font>
		</p>
		<p>
				<font face="Verdana">
						<strong>六、极限编程的有效实践</strong>
				</font>
		</p>
		<p>
				<font face="Verdana">1、完整团队 </font>
		</p>
		<p>
				<font face="Verdana">      XP项目的所有参与者（开发人员、客户、测试人员等）一起工作在一个开放的场所中，他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。 </font>
		</p>
		<p>
				<font face="Verdana">2、计划游戏 </font>
		</p>
		<p>
				<font face="Verdana">      计划是持续的、循序渐进的。每2周，开发人员就为下2周估算候选特性的成本，而客户则根据成本和商务价值来选择要实现的特性。 </font>
		</p>
		<p>
				<font face="Verdana">3、客户测试 </font>
		</p>
		<p>
				<font face="Verdana">      作为选择每个所期望的特性的一部分，客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。 </font>
		</p>
		<p>
				<font face="Verdana">4、简单设计 </font>
		</p>
		<p>
				<font face="Verdana">      团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试，不包含任何重复，表达出了编写者想表达的所有东西，并且包含尽可能少的代码。 </font>
		</p>
		<p>
				<font face="Verdana">5、结对编程 </font>
		</p>
		<p>
				<font face="Verdana">      所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。 </font>
		</p>
		<p>
				<font face="Verdana">6、测试驱动开发 </font>
		</p>
		<p>
				<font face="Verdana">      编写单元测试是一个验证行为，更是一个设计行为。同样，它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环，尤其是功功能能验证方面的反馈循环。程序员以非常短的循环周期工作，他们先增加一个失败的测试，然后使之通过。 </font>
		</p>
		<p>
				<font face="Verdana">7、改进设计 </font>
		</p>
		<p>
				<font face="Verdana">      随时利用重构方法改进已经腐化的代码，保持代码尽可能的干净、具有表达力。 </font>
		</p>
		<p>
				<font face="Verdana">8、持续集成 </font>
		</p>
		<p>
				<font face="Verdana">      团队总是使系统完整地被集成。一个人拆入（Check in）后，其它所有人责任代码集成。 </font>
		</p>
		<p>
				<font face="Verdana">9、集体代码所有权 </font>
		</p>
		<p>
				<font face="Verdana">      任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责，每个人都可以参与任何其它方面的开发。 </font>
		</p>
		<p>
				<font face="Verdana">10、编码标准 </font>
		</p>
		<p>
				<font face="Verdana">      系统中所有的代码看起来就好像是被单独一人编写的。 </font>
		</p>
		<p>
				<font face="Verdana">11、隐喻 </font>
		</p>
		<p>
				<font face="Verdana">      将整个系统联系在一起的全局视图；它是系统的未来影像，是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符，那么你就知道该模块是错误的。 </font>
		</p>
		<p>
				<font face="Verdana">12、可持续的速度 </font>
		</p>
		<p>
				<font face="Verdana">      团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作，他们保存精力，他们把项目看作是马拉松长跑，而不是全速短跑。</font>
		</p>
<img src ="http://www.blogjava.net/zhouxing/aggbug/79691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-11-07 20:38 <a href="http://www.blogjava.net/zhouxing/archive/2006/11/07/79691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CMM－－技术预研</title><link>http://www.blogjava.net/zhouxing/archive/2006/10/12/74832.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Thu, 12 Oct 2006 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/10/12/74832.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/74832.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/10/12/74832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/74832.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/74832.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">      技术预研（</span>
				<span lang="EN-US">Technical Pre-Research, TPR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）是指在立项之后到开发工作完成之前的时间内，对项目将采用的关键技术提前学习和研究，以便尽可能早地发现并解决开发过程中将会遇到的技术障碍。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研过程域是</span>
				<span lang="EN-US">SPP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模型的重要组成部分。本规范阐述了技术预研的规程，该规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span style="FONT-FAMILY: 宋体">本规范适用于国内<span lang="EN-US">IT</span>企业的软件研发项目。建议用户根据自身情况（如商业目标、研发实力等）适当地修改本规范，然后推广使用。</span>
		</p>
		<h1 style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-para-margin-top: 1.0gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: 1.0gd; mso-para-margin-left: 0cm" align="left">
				<a name="_Toc19500937">
				</a>
				<a name="_Toc520633995">
						<span style="mso-bookmark: _Toc19500937">
								<span lang="EN-US">
										<font size="5">1 </font>
								</span>
						</span>
				</a>
				<span style="mso-bookmark: _Toc520633995">
				</span>
				<span style="mso-bookmark: _Toc19500937">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
								<font size="5">介绍</font>
						</span>
				</span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在产品开发过程中，技术问题可能会层出不穷。如果一点技术障碍都没有遇到，要么是开发人员的技术水平实在太高了，要么是项目的技术含量实在太低了，这类情况比较少见。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一般说来，在设计或实现阶段遇到了技术障碍，才去攻克问题，其代价通常比较高。因为其他人的工作可能会被阻塞，已经投入的不少资源将被闲置。最糟糕的是，如果此技术障碍无法攻克，不得已要改变技术方案、重新设计系统，那么不仅浪费了人力、财力、时间，处理不好还会使开发队伍陷入混乱状态。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以开展技术预研工作至少有两大好处：</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">²<span style="FONT: 7pt 'Times New Roman'">        </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">帮助开发人员更好地进行需求开发、系统设计和程序设计。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">²<span style="FONT: 7pt 'Times New Roman'">        </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">防止开发进程被技术障碍打断，导致大量的相关工作被阻塞。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研的流程如下图</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所示。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">
						<br />
						<br />
						<strong>制定计划－－开展技术预研－－<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">撰写预研报告－－<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">工作成果介绍</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">技术评审</span><span lang="EN-US" style="mso-bidi-font-size: 12.0pt"><font face="Times New Roman">…</font></span></span></strong>
						<br />图</span> <span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt"></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt">技术预研流程</span></p>
		<p class="MsoNormal" style="MARGIN: 6pt 0cm 0pt; TEXT-INDENT: 21pt; mso-para-margin-top: .5gd">
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo6; tab-stops: list 21.0pt">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
				</span>
		</p>
		<a name="_Toc19500938">
				<span lang="EN-US">
						<font size="5">2 </font>
				</span>
		</a>
		<span style="mso-bookmark: _Toc19500938">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
						<font size="5">技术预研规程</font>
				</span>
		</span>
		<p>
		</p>
		<h2 style="MARGIN: 12pt 0cm; mso-para-margin-top: 1.0gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: 1.0gd; mso-para-margin-left: 0cm; mso-line-height-alt: 0pt">
				<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /?>
				<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
						<span style="mso-bookmark: _Toc19500939">
								<span lang="EN-US">   2.1</span>
						</span>
				</st1:chsdate>
				<span style="mso-bookmark: _Toc19500939">
						<span lang="EN-US">
						</span>
				</span>
				<span style="mso-bookmark: _Toc19500939">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目的</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l6 level1 lfo7; tab-stops: list 21.0pt">
				<a name="_Toc4159074">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提前发现并解决开发过程中将会遇到的技术障碍。</span>
				</a>
		</p>
		<h2 style="MARGIN: 12pt 0cm; mso-para-margin-top: 1.0gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: 1.0gd; mso-para-margin-left: 0cm; mso-line-height-alt: 0pt">
				<span style="mso-bookmark: _Toc4159074">
						<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
								<span style="mso-bookmark: _Toc19500940">
										<span lang="EN-US">   2.2</span>
								</span>
						</st1:chsdate>
						<span style="mso-bookmark: _Toc19500940">
								<span lang="EN-US">
								</span>
						</span>
				</span>
				<span style="mso-bookmark: _Toc4159074">
						<span style="mso-bookmark: _Toc19500940">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">角色与职责</span>
						</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l6 level1 lfo7; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目经理或技术负责人识别项目中的技术难题，指定技术预研人员攻克该问题。</span>
		</p>
		<h2 style="MARGIN: auto 0cm">
				<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
						<span style="mso-bookmark: _Toc4159075">
								<span style="mso-bookmark: _Toc19500941">
										<span lang="EN-US">   2.3</span>
								</span>
						</span>
				</st1:chsdate>
				<span style="mso-bookmark: _Toc4159075">
						<span style="mso-bookmark: _Toc19500941">
								<span lang="EN-US">
								</span>
						</span>
				</span>
				<span style="mso-bookmark: _Toc4159075">
						<span style="mso-bookmark: _Toc19500941">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">启动准则</span>
						</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目中的技术难题已经识别。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l2 level1 lfo4; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研人员已经指定。</span>
		</p>
		<h2 style="MARGIN: auto 0cm">
				<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
						<span style="mso-bookmark: _Toc4159076">
								<span style="mso-bookmark: _Toc19500942">
										<span lang="EN-US">   2.4</span>
								</span>
						</span>
				</st1:chsdate>
				<span style="mso-bookmark: _Toc4159076">
						<span style="mso-bookmark: _Toc19500942">
								<span lang="EN-US">
								</span>
						</span>
				</span>
				<span style="mso-bookmark: _Toc4159076">
						<span style="mso-bookmark: _Toc19500942">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输入</span>
						</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<a name="_Toc4159077">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一些用户需求文档和技术方案文档</span>
				</a>
		</p>
		<h2 style="MARGIN: auto 0cm">
				<span style="mso-bookmark: _Toc4159077">
						<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
								<span style="mso-bookmark: _Toc19500943">
										<span lang="EN-US">   2.5</span>
								</span>
						</st1:chsdate>
						<span style="mso-bookmark: _Toc19500943">
								<span lang="EN-US">
								</span>
						</span>
				</span>
				<span style="mso-bookmark: _Toc4159077">
						<span style="mso-bookmark: _Toc19500943">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">主要步骤</span>
						</span>
				</span>
		</h2>
		<h3 style="MARGIN: auto 0cm">
				<a name="_Toc4159078">
				</a>
				<a name="_Toc19500944">
				</a>
				<a name="_Toc7492423">
						<span style="mso-bookmark: _Toc19500944">
								<span style="mso-bookmark: _Toc4159078">
										<span lang="EN-US">
												<font size="3">   [Step1] </font>
										</span>
								</span>
						</span>
				</a>
				<font size="3">
						<span style="mso-bookmark: _Toc7492423">
								<span style="mso-bookmark: _Toc19500944">
										<span style="mso-bookmark: _Toc4159078">
												<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">制定计划</span>
										</span>
								</span>
						</span>
						<span style="mso-bookmark: _Toc4159078">
						</span>
				</font>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研人员制定《技术预研计划》，主要内容包括：</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l7 level1 lfo8; tab-stops: list 42.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   ²<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">确定技术预研的内容和目标。</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l7 level1 lfo8; tab-stops: list 42.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   ²<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">确定应递交的工作成果。</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l7 level1 lfo8; tab-stops: list 42.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   ²<span style="FONT: 7pt 'Times New Roman'">        </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分配任务，制定进度表。</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目经理或技术负责人审批该计划，如果该计划被批准，则转向</span>
						<b>
								<span lang="EN-US">[Step2]</span>
						</b>
				</span>
				<span style="mso-bookmark: _Toc4159078">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				</span>
		</p>
		<h3 style="MARGIN: auto 0cm">
				<span style="mso-bookmark: _Toc4159078">
						<a name="_Toc19500945">
						</a>
						<a name="_Toc7492424">
								<span style="mso-bookmark: _Toc19500945">
										<span lang="EN-US">
												<font size="3">   [Step2] </font>
										</span>
								</span>
						</a>
				</span>
				<span style="mso-bookmark: _Toc4159078">
						<span style="mso-bookmark: _Toc7492424">
								<span style="mso-bookmark: _Toc19500945">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
												<font size="3">开展技术预研</font>
										</span>
								</span>
						</span>
				</span>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研人员按照计划开展技术预研工作。</span>
				</span>
		</p>
		<h3 style="MARGIN: auto 0cm">
				<span style="mso-bookmark: _Toc4159078">
						<a name="_Toc19500946">
						</a>
						<a name="_Toc7492425">
								<span style="mso-bookmark: _Toc19500946">
										<span lang="EN-US">
												<font size="3">   [Step3] </font>
										</span>
								</span>
						</a>
				</span>
				<span style="mso-bookmark: _Toc4159078">
						<span style="mso-bookmark: _Toc7492425">
								<span style="mso-bookmark: _Toc19500946">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
												<font size="3">撰写技术预研报告</font>
										</span>
								</span>
						</span>
				</span>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在预研任务结束时，技术预研人员撰写《技术预研报告》。</span>
				</span>
		</p>
		<h3 style="MARGIN: auto 0cm">
				<span style="mso-bookmark: _Toc4159078">
						<a name="_Toc19500947">
								<span lang="EN-US">
										<font size="3">   [</font>
								</span>
						</a>
				</span>
				<span style="mso-bookmark: _Toc4159078">
						<span style="mso-bookmark: _Toc19500947">
								<font size="3">
										<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">后续活动</span>
										<span lang="EN-US">]</span>
								</font>
						</span>
				</span>
		</h3>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研人员向相关人员介绍工作成果。</span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo3; tab-stops: list 21.0pt">
				<span style="mso-bookmark: _Toc4159078">
						<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
								<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
						</span>
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目经理或技术负责人视具体情况决定是否对该预研成果进行技术评审。</span>
				</span>
		</p>
		<span style="mso-bookmark: _Toc4159078">
		</span>
		<h2 style="MARGIN: auto 0cm">
				<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
						<span style="mso-bookmark: _Toc4159083">
								<span style="mso-bookmark: _Toc19500948">
										<span lang="EN-US">      2.6</span>
								</span>
						</span>
				</st1:chsdate>
				<span style="mso-bookmark: _Toc4159083">
						<span style="mso-bookmark: _Toc19500948">
								<span lang="EN-US">
								</span>
						</span>
				</span>
				<span style="mso-bookmark: _Toc4159083">
						<span style="mso-bookmark: _Toc19500948">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">输出</span>
						</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l8 level1 lfo2; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">《技术预研报告》</span>
		</p>
		<h2 style="MARGIN: auto 0cm">
				<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
						<span style="mso-bookmark: _Toc4159084">
								<span style="mso-bookmark: _Toc19500949">
										<span lang="EN-US">      2.7</span>
								</span>
						</span>
				</st1:chsdate>
				<span style="mso-bookmark: _Toc4159084">
						<span style="mso-bookmark: _Toc19500949">
								<span lang="EN-US">
								</span>
						</span>
				</span>
				<span style="mso-bookmark: _Toc4159084">
						<span style="mso-bookmark: _Toc19500949">
								<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">结束准则</span>
						</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l8 level1 lfo2; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指定的预研任务已经完成，《技术预研报告》已经产生。</span>
		</p>
		<h2 style="MARGIN: auto 0cm">
				<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">
						<span style="mso-bookmark: _Toc19500950">
								<span lang="EN-US">      2.8</span>
						</span>
				</st1:chsdate>
				<span style="mso-bookmark: _Toc19500950">
						<span lang="EN-US">
						</span>
				</span>
				<span style="mso-bookmark: _Toc19500950">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">度量</span>
				</span>
		</h2>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l8 level1 lfo2; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研人员统计工作量和工作成果的规模，汇报给项目经理。</span>
		</p>
		<h1 style="MARGIN: 12pt 0cm; TEXT-ALIGN: left; mso-para-margin-top: 1.0gd; mso-para-margin-right: 0cm; mso-para-margin-bottom: 1.0gd; mso-para-margin-left: 0cm" align="left">
				<a name="_Toc19500951">
						<span lang="EN-US">
								<font size="5">3 </font>
						</span>
				</a>
				<span style="mso-bookmark: _Toc19500951">
						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
								<font size="5">实施建议</font>
						</span>
				</span>
		</h1>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术预研不同于真正地开发产品，投入人员与时间相对比较少。一个项目可以有多次技术预研，由项目经理或技术负责人视具体情况而定。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo9; tab-stops: list 21.0pt">
				<span lang="EN-US" style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings">
						<span style="mso-list: Ignore">   l<span style="FONT: 7pt 'Times New Roman'">         </span></span>
				</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对技术预研过程中产生的所有有价值的文档进行配置管理。</span>
		</p>
<img src ="http://www.blogjava.net/zhouxing/aggbug/74832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-10-12 17:49 <a href="http://www.blogjava.net/zhouxing/archive/2006/10/12/74832.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT应用软件项目管理</title><link>http://www.blogjava.net/zhouxing/archive/2006/09/05/67881.html</link><dc:creator>周行</dc:creator><author>周行</author><pubDate>Tue, 05 Sep 2006 11:53:00 GMT</pubDate><guid>http://www.blogjava.net/zhouxing/archive/2006/09/05/67881.html</guid><wfw:comment>http://www.blogjava.net/zhouxing/comments/67881.html</wfw:comment><comments>http://www.blogjava.net/zhouxing/archive/2006/09/05/67881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhouxing/comments/commentRss/67881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhouxing/services/trackbacks/67881.html</trackback:ping><description><![CDATA[
		<strong>项目管理意识</strong> <br />     <font size="2"> 项目经理兼顾项目管理和分析、设计、编码、测试等具体的技术实施工作；兼顾具体技术工作和各种项目管理任务（如：项目分析/评估、项目计划的制定/检查/调整、上下左右的沟通、专业资源调配、项目组织调整、项目财务控制、风险分析/对策等）。<br /></font><strong>项目成本基础</strong> <br />      <font size="2">项目管理的精髓是必须在规格（Specification）、成本（Cost、Resource）和进度（Schedule）之间取得平衡。</font><br /><strong>项目管理制度<br />     <font size="2"> </font></strong><font size="2">规范化而且切实可行的项目管理制度，必须因企业、因项目而异。一般而言，应是项目管理原理、企业/行业特点和项目规模/性质、企业开发文化/素质等各种因素综合的产物。产生的过程应是，由具一定的理论素养、丰富的规范化项目实施经验和总结能力的资深项目管理专家，结合企业的具体情况，有针对性地制定，并经培训、试行、调整予以落实贯彻。<br /></font><strong>专业服务组织</strong> <br />      <font size="2">国际上的企业级应用软件的开发组织，基本上分为产品研发和专业服务两类。国内由于市场成熟度低等原因，多以直接面向客户需求的项目型开发为主，应属专业服务型的技术组织结构。</font><br /><strong>项目计划<br />      </strong><font size="2">项目计划是项目经理实施项目管理控制的基础。项目计划的Breakdown或曰“粒度”，是一个需要小心把握平衡的问题。越细则控制力度越大，但项目管理的成本越高；反之亦然。</font><br /><strong>项目风险意识</strong> <br />      <font size="2">项目风险意识就是失败意识。每当我们启动一个项目的时候，我们往往憧憬项目投产之日的成功，但是否想过精疲力竭后失败的沮丧？做项目不比卖产品，产品卖出就是成功，项目投产才算成功；产品是静态的，项目是动态的；产品质量有问题可以包换、保修，项目一旦失败，时间不能倒流，客户损失的可能就是市场竞争优势和机遇。风险意识，就是对这种结局的可能性的警惕。如此，我们就会小心谨慎地处理许多项目业务需求、技术方案和组织管理的问题。</font><br /><strong>业务参与意识</strong> <br />      <font size="2">客户购买IT系统的目的是为了更好地发展自己的业务。应用软件将通用计算机变成了专用的业务系统，因此应用软件中渗透着业务制度、策略，成为应用软件甚至是IT系统的灵魂。因此，国际上成功的案例是业务部门贯穿始终地参与，作为确保项目成功的底线（Bottom Line）之一。</font><img src ="http://www.blogjava.net/zhouxing/aggbug/67881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhouxing/" target="_blank">周行</a> 2006-09-05 19:53 <a href="http://www.blogjava.net/zhouxing/archive/2006/09/05/67881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>