小软件项目开发的管理
创建成功的工程
成功项目管理的秘密
更好地领导一个项目的诀窍
参与变革,走向成功
CMM/TSP/PSP讲义稿
开发流程中的可用性
软件开发的管理和控制
如何组织软件开发团队
软件项目管理(CMM)经验谈
实施CMM/TSP/PSP的建议
软件开发质量保证体系
技术讨论指南
任务管理
项目管理软件
质量管理
团队管理
|
|
|
|
小软件项目开发的管理
一个企业的管理,大公司有大公司的方式,小公司也有小公司的方式,如果把别人的 经验生搬硬套到自己身上,可能会适得其反。同样,管理一个软件项目也一样,大项目和小项目的方式不完全一样。但从另一个角度来看,项目的大与小并没有本质的区别,很多方法是共通的。本文的目的是从作者的经验来谈谈小项目开发的管理。 一、小项目的特点 大家知道,“软件危机”的出现起源于一些大型项目的不断延迟甚至失败。小项目相比之下,具有以下特点: 二、小项目开发中常犯的错误 小项目看起来比较简单,比较容易成功,因而人们往往忽视了小项目的管理,其实这是一种误解,从本人的经验看来,小项目开发中容易犯以下的一些错误: 这种做法潜在的危险之一是有的人可能会对讨论出的接口、结构理解有偏差(应该承认人是会犯错误的)。一个误解可能造成以后的返工。 另一个潜在的危险是由于讨论时忽略了某些情况,等大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却形不成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。 三.合理的开发流程 合理的开发模式,一句话形容就是“麻雀虽小,五脏俱全”,即使是小型项目的开 发,仍然应该遵循软件开发的一般规律,必须的步骤不能省略。但是小项目有它自身的一些特点,实行起来可以相对灵活些。 1.需求获取 在进入正式开发之前,必须先从用户处获取准确的需求。在这上面花费相当时间是很必要的。 2.需求分析 在了解用户的需求之后,将需求用一种模型来表示,就是需求分析,目前比较流行的 分析方法是面向对象的方法,通过分析用户需求,用类、类之间的各种关系来表示整个系统。 三是分析与设计过程的衔接。 3.设计过程 设计阶段的工作包括: 4.编码 进入编码工作之后,可能会发现前面分析或设计阶段的某些错误,这时应返回到前面的阶段进行必要的修改。 5.测试 如前所述,即使是小项目,也应该严格地进行测试。 四、人员的安排比较小的项目,往往是几个人来完成,这几个人基本上从头到尾参加开发。在这几个人中,有一位项目负责人,负责分析、设计和协调的工作。由于项目小,项目负责人也要参加编程,那么这人必须把时间合理运用, 经验告诉我几条原则:
|
|
| ||
|
|
|
|
|
|
创建成功的工程
|
|
| ||
|
|
|
|
|
|
成功项目管理的秘密 摘自SDMagazine,Karl Wiegers著,UMLChina.Shids译
|
|
| ||
|
|
|
|
|
|
更好地领导一个项目的诀窍
....
|
|
| ||
|
|
|
|
|
|
参与变革
Lisa J. Roberts,译:umlchina.mirnshi(mirnshi@263.net)
|
|
| ||
|
|
|
|
|
| |||
| CMM、TSP、PSP讲义稿
Blueski
CMM提供了框架和目标,PSP针对个人进行优化,TSP针对团队进行优化。
以下提供的是一些CMM/TSP/PSP 介绍的幻灯片。压缩为cmmtsppsp.zip,打开后共有4个文件,其中cmmtsppss.ppt是主文件,带有对其它文件的连接。 点击下载:
下载-->> CMM、TSP、PSP讲义稿
此致
|
|
| |||
|
| |||||
|
|
| ||||
|
|
|
| |||
|
|
来源: http://www.microsoft.com/China/msdn/msdnonline/features/articles/uicycle.ASP Microsoft Corporation
摘要:本文讨论反复、周期性的设计过程,包括以用户为中心进行设计的四个原则、两种类型的产品设计过程,以及可用性活动如何渗透产品开发的各个阶段并为其带来益处。
目录 · 简介 · 构思阶段 · 规划阶段 · 开发阶段 · 稳定化阶段 · 为下一版本做准备
可用性测试为您带来的好处 简言之,如果将可用性测试从产品开发周期的一开始一直贯彻到项目的每一阶段中,将使您在最后的处理过程中省去重新开发这一环节。 本文首先讨论重复、周期性的设计过程。第一部分阐述了以用户为中心进行设计时的四个原则,这是由 Gould、Boies 和 Lewis 提出的。接下来介绍了两种类型的产品设计过程:“瀑布式”方法和“螺旋式”方法。本文的其余部分将简要介绍产品开发的各个阶段,并讨论可用性活动是如何渗透各个阶段并带来益处的。此处所述的开发阶段包括:构思、规划、开发、稳定化以及为下一版本做准备。 在您阅读各小节时,请注意用户将频繁地参与到各个过程中。用户对每个阶段的介入将会在项目的收尾阶段为您省去成本高昂的返工工作,而且这样开发出来的产品将使用户乐于使用、易于学习,并会长期使用。
反复、周期性的设计过程为以用户为中心进行的设计带来了极大的便利。以用户为中心的设计有四个重要原则,这些原则是由 Gould、Boies 和 Lewis 于 1991 年提出的: · 及早以用户为中心:设计人员应当在设计过程的早期就致力于了解用户的需要。 · 综合设计:设计的所有方面应当齐头并进发展,而不是顺次发展。使产品的内部设计与用户界面的需要始终保持一致。 · 及早并持续性地进行测试:当前对软件测试的唯一可行的方法是根据经验总结出的方法,即若实际用户认为设计是可行的,它就是可行的。通过在开发的全过程引入可用性测试,可以使用户有机会在产品推出之前就设计提供反馈意见。 · 反复式设计:大问题往往会掩盖小问题的存在。设计人员和开发人员应当在整个测试过程中反复对设计进行修改。 多年来,“瀑布式”的产品设计过程是软件设计的标准。在这一方法中,项目开发通过分阶段发展的、按顺序的各个阶段进行。这种方法使用重大事件作为转变点和评估点,并认为在下一阶段开始前,前面的每一阶段均已结束。“瀑布式”的方法对于复杂的项目很有效。在复杂的项目中,多个供应商负责项目的各个方面(例如,一个供应商负责需求分析,另一个负责规范,等等)。但是,使用这种方法可能导致随着项目的进展,对项目进行更改越来越难。 相形之下,“螺旋式”的产品设计过程却是反复、周期性的 (Software Engineering Economics, Barry W. Boehm, 1981)。这一过程允许更大地发挥创造性,并且更易于随着项目的进展而对项目进行修改。在进行螺旋式的设计过程时,您会发现可在各个阶段对产品各方面的功能进行设计。这种方法可为以用户为中心的产品开发过程带来便利。 螺旋式的产品设计过程有六个阶段:构思、规划、建模、开发、稳定化以及为下一版本做准备。
产品开发的构思阶段是确定项目的目标和范围的阶段。此阶段要确立构思陈述、设计目标、风险评估以及项目构架。 在构思阶段,通常进行下列可用性活动: 环境研究 基于 Beyer 和 Hotzblatt 于 1997 年出版的 Contextual Design 一书中所述的方法,此类型的研究包括观察用户的所做所为,使您更为直观地了解用户行为。如果您尚未决定究竟要开发何种软件,但认为存在市场机会,就可使用环境研究来对活动进行研究。您可了解可为用户做些什么以及实现的难易程度。不是寻求具体的功能,而是寻求设计机会。 环境研究为项目提供工作的重心。如果项目是全新的项目,或是较全面的升级,这种方法最为适用。在进行较全面的升级或开展全新项目时,您无法全面了解用户在做什么、如何做、以及他们所面临的问题或困扰。而进行较小的升级时,您有可能从产品支持部门、先前的研究等处获得这些信息。在这种情况下,您基本上是对现有的设计加以完善,所以环境研究并不是不可或缺的。 环境研究在以下情况最为适合:项目组进行跨学科的环境研究,小组由可用性工程师带领。 竞争性测试 通过竞争性可用性测试,您可以为产品设置量化的可用性目标 — 任务完成的速度、每项任务出错的数目,等等。这种方法可对项目的成功与否进行量化的度量,即使所进行的竞争只是人工过程,而您将对此过程进行自动化。竞争性测试经常用于市场开发。当市场开发代表对竞争对手进行评估时,他们只比较产品的功能。可用性测试则更侧重于使用这些功能完成任务时的性能。 竞争性测试对仅用于公司内部的产品来说,似乎不大适用。但是,如果仔细考虑,从理论上而言,您也是在与产品的先前版本或前一个流程竞争。内部产品可能与人工过程进行竞争 — 产品必须比现有的进程更有效、更好。 进行竞争性测试的方法之一是开展研究,比较与其相竞争的产品的性能。例如,对其他人员的产品进行性能研究。在选择要测试的竞争产品时,要考虑到计算机之外的产品:如果产品涉及在线交易,则竞争性产品就可以是电子货币。从研究结果中您可以确定使用最频繁的、最重要的功能。 用户/受众分析 了解您的用户!尽可能采取各种方法来了解您的用户的特点。考虑一下如果您基于产品最终用户的特点来开发软件,可减少多少技术支持电话的数量。设想一下用户是否认为产品易于使用并且包含了他们所需的功能。问自己“对于我要创建的产品,哪些用户特点是与之相关的?”,例如: · 计算机使用经验 · 年龄 · 接受培训的程度 · 用户群之间的社会关系 · 特殊要求(可访问性) 您可以通过环境研究来获得一些此类信息。例如,您可对一些用户进行观察以得出一些假设,然后通过调研或取样来验证这些假设。您的人力资源部门或培训部门可能会具有一些相关的信息;例如每个新雇员要接受多少培训。市场研究人员也可能有此类信息。对于公司内部使用的应用程序而言,收集这些信息有时会比对外出售的应用程序简便,因为您的用户是具体的群体而不是普通大众。
规划阶段是进行首次实际设计的阶段。在此阶段中,有关用户界面的早期设想将初步成形,并着重于先前阶段未涉及的知识。原始模型可以是任何形式,如描述概念或功能的卡片、屏幕的简单描绘图纸、打印在纸上的屏幕位图图形,用 Macromedia Director 之类的程序创建的带有有限交互功能(也称为“点阅”)的联机版本,或是用 HTML 或 Microsoft Visual Basic® 创建的带有大量交互功能的联机版本。在大多数情况下,您会发现原型具有的仿真度越高,用户建议进行重大修改的可能性就越低。所以,用写在纸上的原型来开始着手测试是非常值得采取的做法。 根据您所设计的产品种类,您可能需要进行下述的一些或所有活动。如果您在规划阶段花时间来完成这些任务并使用原型,则在开发阶段碰到的可用性问题将会大为减少。 用户情况 创建您自己的用户情况概要,列出产品的典型用户能做什么,不能做什么。通过早期的环境研究和用户/受众分析,您做出一些较高级别的决策,基于这些决策进行软件设计。使用用户情节,您可创建一个有关用户使用您所设计的软件的“故事”。这些情况可以是情节串联图板、联机 Macromedia Director 电影、简单的流程图、或简单的叙述性文本。一种比较精致的用户情节模式是“日常生活”录像。这种录像把演员作为“用户”显示,这些用户在日常活动中与模拟的系统进行交互。通过用户情节可得出您在任务分析时要寻找的具体细节。 任务分析 任务分析决定了在新产品中执行任务的方式。在撰写规范之前,必须首先进行任务分析。用任务分析来确定您所规划的支持的任务是否确实能够反映现实,这一点是很重要的。对任务的逼真度进行分析。就产品的特性而言,任务的完整性如何?分析逼真度意味着观察用户完成一项任务所必须执行的所有操作;或进行表象的观察,了解用户完成所有任务或功能所需执行的所有操作。无需担心过于详尽 — 把重点放在实质内容上。 一些要考虑的问题和活动: · 此环境中的任务是什么?环境研究应能帮助您找出并描述用户所执行的任务。 · 创建顺序图,描述用户执行的任务之间、用户和产品之间的相互作用。 · 在构思阶段确定功能的作用领域。提出问题:“我们要支持的具体任务是什么?” · 与产品设计者一起创建情节串联图板或顺序简图。 启发式评估 启发式评估涉及评估人员小组,这些评估人员查看界面并基于基本可用性原则来对其做出判断。启发式评估允许您在整个反复式设计过程中查找并更正可用性问题。如果您在工作进展的同时纠正问题,您将在收尾阶段节省大量工作。因为在收尾阶段,更改真实代码将更加困难而且成本更高。 如 Jakob Nielsen 在 Usability Engineering (1994) 中所述,启发式评估包括以下步骤: 1. 每个评估人员都浏览数遍界面,检查各种对话框元素,然后将其与一些已知的可用性原则相比较。 2. 评估人员相互合作,将结果合并到列表中,列出用户界面中的可用性问题,并注明设计方案中违反的相关可用性原则。 3. 一旦每个评估人员都分别执行了启发式评估后,他们就集中起来将其评估结果合并在一起。 在开发的早期阶段,启发式评估可能是发现可用性问题的非常有效的方法。 认知性遍历 认知性遍历的意思是,仔细检查界面要求用户执行多少步骤以及何种步骤后,才能完成某项任务,其中包含用户必须经过思考才能完成的那些步骤。您需要关注的是用户必须调用什么或用户必须进行的计算 — 认知性任务决定学习和使用您的产品的难易程度。认知性遍历可帮助您找出潜在的可用性问题,以及找出您制订的规范中的破绽! 根据 Gregory Abowd 的 Performing a Cognitive Walkthrough,要进行认知性遍历活动,需要以下四个条件: 1. 对系统原型的详尽描述,例如初级规范可提供什么样的系统。这种描述不一定是完整的,但要相当详尽。诸如菜单的位置或措辞这样的细节也可能导致相当大的差异。 2. 对用户在系统中要完成的任务的描述。该任务应当是大多数用户将要执行的有代表性的任务。 3. 一个完整的、书面的操作清单,列出使用给定原型完成任务所需执行的操作。 4. 指出用户的身份,以及评估人员能够假定这些用户已具有哪一类别的知识和经验。 有了这些信息,评估人员可执行一遍上文第三项所列的操作,从而确定用户是否能够按预期要求合理执行这些步骤。 GOMS GOMS 是描述任务和用户执行该任务所需知识的方法,它是通过目标 (Goal)、操作符 (Operator)、方法 (Method) 以及选择规则 (Selection rule) 四个方面进行描述的。 Card、Moran 和 Newell 提出了原始的 GOMS 模式。他们还创建了一个简化的版本,即击键级别模型 (KLM)。Bonnie E. John 开发了并行活动版本 CPM-GOMS,而 David Kieras 则开发出定义更为严谨的版本:自然 GOMS 语言 (NGOMSL)。所有这些技术都基于同一 GOMS 概念。 · 不言自明,目标就是指用户的目标。用户使用软件要达到什么目的?在下一天、下几分钟、下几秒钟? · 操作符是指软件允许用户采取的操作。 · 方法是子目标和操作符经仔细设计后得出的序列,可用来实现诸如剪切和粘贴等目标。 · 选择规则是用户要遵守的判定规则,以确定在特定环境下要使用的方法。 GOMS 模型由对方法的描述组成,这些方法是达到目标所必需的。方法是一些步骤,这些步骤包括用户为达到目标所需执行的操作符。如果有一种以上的方法可以达到目标,则需使用选择规则来确定在此情况下哪种方法更为适用。 卡片排序 卡片排序是一种可用性技术,用于此阶段的早期,以了解用户关于信息的总体模型。卡片排序的基本任务是要让参与者按卡片上的说明对卡片进行组织,将属于同一类的项目堆放在一起。在创建好堆后,参与者还可为所创建的堆建立名称、标签或说明。 卡片排序用于: · 展示用户对于任务范围的总体模型。 · 展示用户如何对项目进行分组或分类的。 · 展示用户对项目之间的关系和相似性的看法。 · 将用户的概念模型转换为设计。 反复可用性测试 对原型设计的反复可用性测试是另一种很有价值的方法,用于在产品周期的早期阶段确定界面是否易于用户使用。在此阶段进行更改比等到开发阶段开始后再进行更改要更容易些,并且成本更低。 您从可用性实验室可以收集的数据量取决于原型的强健性。对于纸上原型测试,可用性工程师就是计算机,并且在测试的过程中与用户在一起。 在许多种情况下,严谨的可用性测试是过犹不及的。在建模阶段,您仍可使用简化的方法进行有效的可用性测试,这些方法通常称为“打折扣的”可用性测试。 如 Jakob Nielsen 所述,反复的可用性测试包括: 1. 用户和任务观察 — 观察用户,保持安静,让用户做一切通常情况下会做的操作。 2. 情况 — 使用一种可以减少功能数量、降低功能级别的建模方法。 3. 简化的对谈式测试 — 一次安排一个用户完成一组任务,并要求用户“发现问题就直接告知测试人员”。 4. 启发式评估 — 基于基本可用性原则来评价界面。
开发阶段是将产品用实际的代码来实现的阶段。在此阶段中,您可以对实际产品的早期版次进行可用性测试。您仍有可能不时要用到原型,但随着时间的推移产品将逐渐完善。不是所有的功能都将在开发阶段同时完成,所以您有可能在原型和实际代码之间往复转换。 在理想条件下,您将可以把大部分时间用来进行推敲,在建模阶段就能够找出主要问题。 真实代码测试 让用户测试真实代码版本可能会有助于针对在计算机上使用产品发现问题。这些问题更有可能是设计问题而非概念问题。它们通常涉及相当低级的交互作用问题,如在屏幕上选择项目、拖放,以及仅在实际产品中才有的动态图形。对于产品的大多方面,真实代码不一定比设计上的原型或其它模型的真实度更高,所以不要拖延到有真实代码后再进行可用性测试。 可用性实验室测试 在开发阶段,您可进行可用性实验室测试,该测试类似于规划阶段的反复可用性测试。但是,由于产品的更多部分已趋于完善,您可测试更多任务。您仍可在 Director 中使用模型,或将稍做修改的版次用在可用性测试中。随着时间的推移,产品会越来越完善,原型就越来越不象一个模型了。但是,用“已完成”产品进行测试的问题在于,由于已进行了如此之多的工作,剩下的时间如此之少,您就不能指望对发现的问题做太多的修改了。 注意: 作为此任务的一部分,您还可能进行焦点组分析或群集分析,以对产品进行可用性测试。
当开发结束、错误已修正后,就进入了稳定化阶段。在此阶段中,要创建一个可发售的稳定的产品。在此阶段对可用性进行测试的重点是进行微调。新的功能以及代价高昂的可用性增强功能应被记录下来,以备下一版本使用。 基准测试 对可用性进行基准测试类似于“质量保证”中的综合测试。基准测试的目的是通过测试用户想要完成的所有顶级任务,就产品的可用性提供可靠的量化数据。这些测试的目标与其说是要找出问题(虽然找出问题是大多数可用性测试的目的),不如说是要评估产品可用性的状态。 要进行基准测试,请首先观察产品的功能,然后将这些功能按任务细分。在稳定化阶段,特别是对于复杂的产品,您将不能对用户界面进行可提高每个任务性能的修改。理想情况下,您可以确定哪些是顶级任务,并且确保大多数顶级任务都是可用的。低优先级的任务的可用性可以较低,可记录下来在将来的版本中再作改进。
将此阶段视为开始对过程进行回顾的阶段。您将全面考虑在构思阶段和规划阶段所进行的许多相同任务。例如,您将进行: · 竞争性测试 — 在稳定化阶段,这种测试是对自己的产品进行测试,以将其与先前收集的有关竞争产品的数据作比较。 · 现场研究 — 类似于环境研究(该研究是要了解“我们要做什么软件?”),使用您已构建的软件来找出存在哪些问题,可在下一版本加以解决。 · 关于事件的工具化版本研究 — 软件的工具化版本基本上用来观测软件自身并在发生事件时记录数据。您在大量会话和用户的基础上对产品进行测量以找到使用趋势。
|
| |||
|
| |||||
|
|
| ||||
|
|
|
|
如何组织软件开发团队
专家、多面手还是他们的组合? Scott W. Ambler 本文来自IBM DeveloperWorks中国网站
如何构建软件开发团队取决于可供选择的人员、项目的需求以及组织的需求。本文阐述了各种团队组织的策略。 有效的软件项目团队由担当各种角色的人员所组成。每位成员扮演一个或多个角色;可能一个人专门负责项目管理,而另一些人则积极地参与系统的设计与实现。常见的一些项目角色包括: · 分析师 · 策划师 · 数据库管理员 · 设计师 · 操作/支持工程师 · 程序员 · 项目经理 · 项目赞助者 · 质量保证工程师 · 需求分析师 · 主题专家(用户) · 测试人员 您是如何组织项目团队的?是采用垂直方案、水平方案还是混合方案?以垂直方案组织的团队由多面手组成,每个成员都充当多重角色。以水平方案组织的团队由专家组成,每个成员充当一到两个角色。以混合方案组织的团队既包括多面手,又包括专家。 一个重要的考虑因素是可供选择的人员的性质。如果大多数人员是多面手,则您往往需要采用垂直方案,同样,如果大多数人员是专家,则采用水平方案。如果您正引入一些新人,即使这些人员都是合同工,则仍然需要优先考虑您的项目和组织。本文描述了形成团队组织的垂直、水平和混合方案,并指出了它们各自的优缺点。本次讨论的一个重要含意是您的团队组织和用于管理项目的手段之间应构成默契;任何方法上的失谐都很可能导致项目产生问题。
垂直团队组织
优点 · 以单个用例为基础实现平滑的端到端开发。 · 开发人员能够掌握更广泛的技能。
缺点 · 多面手通常是一些要价很高并且很难找到的顾问。 · 多面手通常不具备快速解决具体问题所需的特定技术专长。 · 主题专家可能不得不和若干开发人员小组一起工作,从而增加了他们的负担。 · 所有多面手水平各不相同。
成功因素 · 每个成员都按照一套共同的标准与准则工作。 · 开发人员之间需要进行良好的沟通,以避免公共功能由不同的组来实现。 · 公共和达成共识的体系结构需要尽早在项目中确立。
水平团队组织
优点 · 能高质量地完成项目各个方面(需求、设计等)的工作。 · 一些外部小组,如用户或操作人员,只需要与了解他们确切要求的一小部分专家进行交互。
缺点 · 专家们通常无法意识到其它专业的重要性,导致项目的各方面之间缺乏联系。 · “后端”人员所需的信息可能无法由“前端”人员来收集。 · 由于专家们的优先权、看法和需求互不相同,所以项目管理更为困难。
成功因素 · 团队成员之间需要有良好的沟通,这样他们才能彼此了解各自的职责。 · 需要制定专家们必须遵循的工作流程和质量标准,从而提高移交给其他专家的效率。
混合团队组织
优点 · 拥有前两种方案的优点。 · 外部小组只需要与一小部分专家进行交互。 · 专家们可集中精力从事他们所擅长的工作。 · 各个用例的实现都保持一致。
缺点 · 拥有前两种方案的缺点。 · 多面手仍然很难找到。 · 专家们仍然不能认识到其他专家的工作并且无法很好地协作,尽管这应该由多面手来调节。 · 项目管理仍然很困难。
成功因素 · 项目团队成员需要良好的沟通。 · 需要确定公共体系结构。 · 必须适当地定义公共流程、标准和准则。
项目团队士气是项目成功的一个因素
|
|
| ||
|
|
|
|
|
| 软件项目管理(CMM)经验谈
|
|
| ||
|
|
|
|
|
| 实施软件质量保障体系CMM/TSP/PSP的建议
软件产业的发展,在经历了从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代,到90年代中期,以CMM模型的成熟模型和日益为市场接受为标志,已经进入以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心的时代,而软件发展第三个时代,及软件工业化生产时代,从90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础,已经渐露端倪,估计到2005年,可以实现真正的软件工业化生产,这个趋势应该引起软件企业界和有关部门的高度重视,及早采取措施,跟上世界软件发展的脚步。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。软件过程改善是当前软件开发技术的核心问题。
国 际 软件过程的三个流派: 最初的软件质量保证系统是在70年代由欧洲首先采用的,其后在美国和世界其他地区也迅速地发展起来。目前,欧洲联合会积极促进软件质量的制度化,提出了如下ISO9000软件标准系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002。这一系列现已成为全球的软件质量标准。除了ISO9000标准系列外,许多工业部门、国家和国际团体也颁布了特定环境中软件运行和维护的质量标准,如:IEEE标准729-1983、730-1984、Euro Norm EN45012等。 总体上讲,国内对软件过程理论的讨论与实践正在展开,目标是使软件的质量管理和控制达到国际先进水平,中国的软件产业获得可持续发展的能力。专家分析,在未来两三年内,国内软件业势必将出现实施CMM的高潮。从这一趋势看,中国的软件企业已经开始走上标准化、规范化、国际化的发展道路,中国软件业已经面临一个整体突破的时代。 软件质量保障体系的实施 根据一直以来对国际上软件过程理论与实践的发展、尤其是近几年来着重在CMM、PSP和TSP以及ISO软件过程标准草案等方面的研究工作,国内专家学者建议,软件过程的改善应该从三方面着手进行: 2、 CMM的一些基本概念
3、 CMM模型概要 CMM的作用 CMM实施的思考 根据CMM的基本原理、基本内容和基本方法,对CMM提出4个问题供大家思考: 问题2:影响过程改进失败的因素有:无法实施计划和跟踪、突发事件或危险造成、时间和资源限制造成、知道应该做什么而不知道如何做造成。 在国内要想取得过程改进成功,作者认为: 如果企业出现如下情况,过程改进肯定就失败: 结论:CMM不是万能的,它的成功与否,与一个组织内部有关人员的积极参与和创造性活动是密不可分的。 CMM是对软件工程的工业实践所需的有关目标、方法和实践的最佳有效描述。问题是如何在一个实验室或者产业环境中做到CMM规则的应用? 个体软件过程(Personal Software Process ,PSP)是由美国Carnegie Mellon大学软件工程研究所(CMU/SEI)的Watts s. Humphrey领导开发的,于1995年它的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。 PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。根据对参加培训的104位软件人员的统计数据表明,在应用了PSP后,软件中总的差错减少了58.0%,在测试阶段发现的差错减少了71.0%,生产效率提高了20.0%。PSP的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段引发了3一5个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。因此,PSP保障软件产品质量的一个重要途径是提高设计质量。 个体软件过程PSP的现状 个体软件过程PSP的演化*
PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够: 个体软件过程PSP支持环境 北航软件工程研究所在研制的基于Internet的"个体软件过程支持环境",支持个体软件过程的定义、运作、度量、分析和优化,支持PSP在实际软件开发项目中的应用,支持PSP概念和方法的推广普及,支持软件工作人员软件工程方面素质的提高。 个体软件过程PSP的作用 l 使用自底向上的方法来改进过程,向每个软件工程师表明过程改进的原则,使他们能够明白如何有效地生产出高质量 的软件。 群组软件过程TSP概述 致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。 实现TSP方法需要具备的条件 按TSP原理对开发小组的基本度量要素 度量TSP实施质量的过程质量元素 PSP和TSP对CMM的支持*
l CMM/TSP/PSP代表了目前国际上软件过程工程研究方面最先进的成果,它们对促进软件生产的科学化管理,提高软件 生产能力意义重大。
CMM就如同软件生产的一面镜子,以之来衡量自己可以折射出企业发展的水平以及具体的差距。借鉴CMM的方法,改进软件研发项目管理,提高软件开发水平。软件研发项目管理管理是影响软件研发项目全局的因素,而技术只影响局部。建议以CMM为框架,先从PSP做起,然后在此基础上逐渐过渡到TSP,以保证CMM/PSP/TSP确实在企业中生根开花。我相信只要坚持改善软件工程的管理,并在实践中总结适合自身的经验,一定能取得很好的效果。
/* 本文来自-- http://www.china-pub.com/computers/eMook/0891/info.htm 中国互动出版网 2001-4-10 */
|
|
| ||
|
|
|
|
|
| 软件开发质量保证体系来自lannuo.533.net 1. 使用范围
|
|
| ||
|
|
|
|
|
| 技术讨论指南---如何“不战而胜”来自lannuo.533.net
|
|
| ||
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 任务管理来自lannuo.533.net
概述 一个工程项目是由一系列的任务组成,合理地安排这些任务单元并保证其按时完成,才能保证整个项目进度能够按时完成。为此我们制订以下方法加强任务管理。 一个任务是包含在一个整体计划环境中的,因此作为个体首先要服从于整体计划。 任务管理方法 任务安排: 采用明确任务、明确责任的方式来安排任务。 下达任务必须书面化。 方法: 我们定制格式化任务安排表,附录《任务安排工作单》即为一个实例。 协调及控制: 统一协调调度任务,及满足每个人的任务量,又避免超负荷。并监督任务能按时按质完成。
合理安排每个人的长期任务和紧急任务。 方法: 结果考评: 个人工作成绩通过任务完成情况纪录为依据。
任务等级定义 任务分为几个等级,在安排任务时确定轻重缓急,任务等级作为安排者和执行者间交流的一种简洁的信息,包含了安排者在全局的层次上对任务的一种认识和理解,并将这种理解记录下来,并传达给执行者,有利于执行者能理解并按统一调度执行任务。这样可以更好地控制进度,避免关键或紧急任务被拖后。 对执行者来说,可以有根据当前任务的优先级,有条理地安排工作。 任务等级可从以下方面来考虑: 紧急程度:(对任务过程的时间要求)
宽松:时限十分宽松,可以在其他任务后考虑。 注释:紧急程度可能随着时间变动。 重要程度:(对任务本身的影响及作用的估计)
不重要:任务失败不会造成严重结果,能够容忍。 任务排序优先级:(任务执行的先后次序,利于有条理的工作)
以上作为粗略地优先级别估计,方便于优先级的调整,缺省地,任务排序按照紧急在先、重要在先的原则排列。
表中符号代表分值: *:20 !:10 +:5 -:-5 /:不定义
附件一:任务汇总表(示例) 可打印格式见其word文档 - 任务管理 任 务 汇 总 表 项目简称: 阶段日期:
工作量:
d天 h小时 角色:M负责 A分析 D设计 P编码 T测试 J辅助参与 进度:已完成则打勾 附件二:任务单(示例) 可打印格式见其word文档 - 任务管理 任 务 单 任务编号
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||
| 项目管理篇系列之七 - 项目管理软件
摘自www.computerworld.com.cn
|
| ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
| |||||||||||||||||||||||||||||||
| 项目管理系列之六-质量管理
摘自www.computerworld.com.cn
|
| |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||
|
|
|
|
| |||||||||||||||||||||||||||||||||
| 项目管理系列之五-团队管理
摘自www.computerworld.com.cn
|
| |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
|
|
|