当前位置:首页 > 软件工程心得论文
个风险的概率,计算出对应的功能点,然后估算每个功能点的费用,从而得到比较理想的成本估算。在进度的估算上,推崇使用WBS(工作结构分解法),将项目任务进行合理的细分,分到可以确认的程度,然后估算每个WBS要素的时间,从而得出整个项目的时间。当然WBS也可以适用于估算项目的成本,这里因人,因项目而异。灵活使用不同的方法,可以进一步精确最终的估算值,将风险减小到最少,利于下个阶段的展开。
在整个需求分析阶段,要将需求做的更细,更准确为目标,不断地与客户沟通,严格杜绝使用习惯性的想法,去掩盖客户的真实需求,沟通应该具体到每个功能点,得到客户的肯定后,进行下个功能点的沟通。关注客户的颜色感官,操作习惯等细节方面。尽可能全面的从客户的角度去分析问题,然后结合公司的技术,给用户合理的反馈,得到最终双方都满意的结论。需求分析师需要具有良好的沟通能力外,也需要出色的理解分析能力,具备业务基础,项目成本评估,以及各种文档的编写能力。一个成熟的需求分析师,可以将沟通中信息的损耗减小到最低,提高用户的满意度,整理出比较全面的《需求规格说明书》,有利于系统架构师的工作开展。
《需求规格说明书》得到后,系统架构师需要在此基础上,完成系统的架构,整理《系统概要设计说明书》与《系统详细设计说明书》,完成系统的前期搭建工作。良好的系统架构师需要具有相关的知识与经验外,也需要很强的分析,解决问题的能力,战略规划能力,业务
5
流程建模能力,信息数据结构能力等多方面的素质。从细节方面分析,系统架构师需要从需求到设计的每个细节都要考虑,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等等。工具方面,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发,提高工作效率。在《系统详细设计说明书》完成后,参与项目的各成员需要进行评审工作,评审《需求规格说明书》与《系统详细设计说明书》,提出自己的看法与观点。在总的设计环境下,寻找不足与欠缺的地方,尽可能去完美这个设计,发现以后可能要面临的问题,提前思考与解决,降低系统的开发难度,利于编码工作有力进行。所以,各种文档的输出需要统一化,利于阅读人员的理解,也就是在书面的沟通上不会产生细想上的偏差,将理解上的风险降到最低。所以在开发的初期,参与项目的各个成员必须达成思想上的一致,可以细致到需求文档中每个功能都是一样的理解。如此,项目的最终产品,才会偏差最小,越接近用户的需求,达到更高的用户满意度,得到更好的业界好评。
综合考虑,需求分析阶段主要做四个方面的工作。1.问题的识别,即双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求等。2.分析与整合 ,导出软件的逻辑模型。3.各种文档的输出,即写出详细的需求规格说明书,用户使用手册,测试计划,测试用例,系统概要设计等文档。 4.评审与反馈,分为技术评审与需求评审,发现更多的问题,防范于未然。
6
编码阶段,主要为程序员之间的沟通,程序员与经理之间的沟通,程序员与系统架构师之间的沟通成为影响软件质量,项目进度的主要因素。
项目编码阶段,项目经理需要了解参与项目中的每个人的技术程度,这将是分配模块的困难程度的一个重要环节。简单的模块交给技术不好的人来做,难的模块交给技术达人来做。如果如此安排,新人还是新人,技术达人依然会更加忙碌,更加累,没有任何改变,也不利于公司的长远发展。所以合理的搭配难易程度,让新手在编程梯度渐增与技术达人的合作环境下,快速成长,同时也缓解了技术达人的压力,可以将更多地精力投入到技术难点中,提高项目组整体的效率。
编码期间,对成本与项目进度的控制,也是项目经理的一个重要任务。为了提前项目进度或者压缩项目成本,而采取不合理的工作安排,如经常性的加班,项目工作裁剪等手段,往往是非常致命的,不仅会使项目的质量整体下降,而且会使员工的凝聚力降低。虽然如此做可以完成项目的功能目标,但是项目的后期维护将会是一个灾难。而且不合理的时间安排,也会使员工心理产生不可控制的活动,从而对公司的长远发展产生隐性的影响。这些往往是大多数经理人不会考虑的,对员工的忽视,导致员工的离职,成为社会的一个主流,这对正在进行的项目来说,会造成很大的成本与风险压力。老员工的离职,新员工的进入,不仅仅是人员的改变,也是对开发团队的再一次整合,去熟悉新人的做事风格与思考问题的方式,期间所消耗的时间已远远
7
超过培训的时间,而结果往往会延误项目进度。通常当意识到进度的偏移时,下意识(以及传统)的反应是增加人力。这就像使用汽油灭火一样,只会使事情更糟。越来越大的火势需要更多的汽油,从而进入了一场注定会导致灾难的循环。
Brooks法则—“向进度落后的项目中增加人手,只会使进度更加落后”。落后的项目不增加技术人员,唯一的风险也就是进度的延期,而增加人手,改变计划往往将增大项目不可控制的风险,而这些风险常常是致命的。研究表明,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还要大。所以可控的项目进度,是项目经理所追求的,不断变化的环境,需要更加合理的方式去解决。理想中,已经计划好的进度不会实现,只会因为不确定的因素而改变。
实际工作中,遇到项目进度的偏移,采取必要的增加人手往往是唯一的办法。虽然每次估计项目的成本最终为人月的计算,但是人和月之间的互换,紧靠单纯的数据是显示不出来的。每个人的编程风格的不一致,技术水平的高低,理解能力的不同,会造成或多或少的时间损失与成本损失。更重要的是,每个人的性格不同,与人的沟通方式不同,融入新的团队,那么这会因为新人的加入而使整个团队发生”化学反应”,当然这里所说的化学反应可不是NBA那样,是促进型的。再加上彼此之间的磨合期,适应期,互相熟悉彼此的代码风格等等,这些都隐含的消耗掉大量时间。所以人月的互换,需要仔细的去更改原有的项目计划,以适应新的变化。如果仅仅靠增加人手,而对应的
8
共分享92篇相关文档