项目的时间限制有两类。第一类,项目应该完成的日期写在合同中,如果延期了,则开发方要作出相应的赔偿。第二类是开发自己的软件产品,虽然只确定了该产品大致的发行日期并允许有延误,但如果拖延太久则会失去商机造成损失。
项目的资源分为三类:“人”、“可复用的软构件”和“软硬件环境”,如图3.1所示。(1)人是最有价值的资源。项目计划的制定者要确定开发人员的名单,要根据他们的专长进行分工。
(2)可复用的软构件是次有价值的资源。1.2.1节论述了复用软构件可提高软件的质量与生产率。软构件并非一定要用自己的,可以向专业的软件供应商购买。
(3)软硬件环境虽然不是最重要的资源,却是必需的资源。原则上软硬件环境只要符合项目的开发要求即可。有些项目可能要用到特殊的设备,则要事先作好准备,以免用时找不到而担搁了进程。
图3.1 项目的资源
3.1.2 进度安排
有一位程序员忙着编写程序,经理问他还需要多久才能完成。
“明天就可以完成。”程序员立即回答。
“我想这是不切实际的,实话实说,到底还要多少时间?”经理说。
“我还想加进一些新的功能,这需要花两个星期。”程序员想了一会儿说。
“即使这样也期望过高了,只要你编完程序时告诉我一声,我也就满足了。”经理说。
几年以后,经理要退休了。在他去退休午餐会时,发现那位程序员正趴在机器旁睡觉:可怜的家伙整个晚上都在忙于编写那个程序。[James 1999]
程序员也期望每天早晨能在7:00准时起床,可老是一觉醒来就到中午了。项目落后于进度表乃是家常便饭,不必大惊小怪。以下一些事件经常会导致项目被延误:
(1)上级领导主管臆断,制定了不现实的期限。项目经理与程序员们被迫按照不合理的进度表开展工作。
(2)客户的需求发生了变化,但没有对进度表作出相应的修改。
(3)低估了项目的规模与难度,导致投入的人力和物力不足。
(4)并未预见到存在难以克服的技术障碍。
(5)并未预见到开发人员会发生问题,如生病,辞职等等。
(6)开发人员之间不能很好的交流、协作,导致各阶段任务难以如期完成。
所以写进程表不能象小学生写决心书那样充满幻想。以下是一些有益的建议:
(1)制定进度表的人最好就是项目负责人,他最了解项目和开发人员。进度表要经过开发小组的讨论,在得到大部数人的支持后才能实施。避免出现一厢情愿的局面。
(2)进度安排并不见得一定要符合逻辑顺序。应尽可能地先做技术难度高的事,后做难度低的事。也就是辛苦在前,轻松在后。
小时候我对一位老先生吃饭很感兴趣:他总是先把一大盒的米饭吃光了,然后再幸福地品尝一小盒菜。父母告诉我这是中国的传统美德,叫“先苦后甜”。从此我铭记在心,按此道理去学习和工作。可如今在饭店里,人们总是先把菜吃完了,最后才吃点米饭。天哪,生活真是太复杂了,我究竟该“先吃饭” 还是“先吃菜”?
(3)开发一个大的软件项目,应该将进度表分为若干个里程碑。一个里程碑之内的多个任务可以同步进行。程序员极容易沉迷于技术,要么乐不思蜀,要么焦头烂额。里程碑就象心灵的灯塔,使忙碌的人群不混乱,不迷失方向。
(4)进度表中必须留有缓冲时间,并将缓冲时间用到不确定的事情上。因为人们对即将要做的事情知之甚少,所以要留一些时间以防不测。Microsoft公司的一些开发小组甚至制定了“50% 缓冲规则”[Cusumano 1996]。对许多项目经理而言,容忍进度表中存在缓冲时间,不啻为观念上的一个飞跃。
(5)如果发现项目应交付的期限非常不合理,就要跟领导或跟客户据理力争,请求放宽期限、调整进度。当客户的需求发生变化时,就要对进度表作出相应的修正。不要觉得修改进度表很困难很麻烦,不修改才会产生真真的麻烦。很多人认为戒烟很困难,但马克·吐温曾说:“戒烟很容易,我一年就戒几十次。”
3.2 零缺陷质量管理的观念
“零缺陷”质量管理的观念来源于一些国际上著名的硬件生产厂商。尽管软件的开发与硬件生产有极大的差别,但我们仍可以从“零缺陷”质量管理中得到启迪。“零缺陷”质量管理至少有两个核心内容:一是高目标,二是可执行的规范。
3.2.1 高目标
人在做一件事情时,由于存在很多不确定的因素,一般不可能100% 地达到目标。假设平常人做事能完成目标的80%。如果某个人的目标是100分,那么他最终成绩可达80分。如果某个人的目标只是60分,那么他最终成绩只有48分。我们在考场上身经百战,很清楚那些只想混及格的学生通常都不会及格,那些想得高分的学生也常为自己的失误而捶胸顿足。
做一个项目通常需要多个人的协作。假设项目的总质量(最高为1)是十个开发人员的工作质量之积。如果每个人的质量目标是0.95,那么十个人的累积质量不会超过0.19。如果每个人的质量目标是0.9分,那么十个人的累积质量不会超过0.03。只有每个人都做到1,项目总质量才会是1。
如果没有高目标,人的堕落就很快。如果没有“零缺陷”的质量目标,也许缺陷就会成堆。
3.2.2 可执行的规范
实现100分显然比实现80分要付出更多的努力。“零缺陷”质量目标不是随心所欲提出来的,做得到才有意义。实现高目标需要一套可执行的规范来保证。
50年代末,全国掀起了“浮夸风”。为了实现亩产数万斤推广各种方法,害得全国闹饥荒。想不到有数千年种粮经验的几亿中国农民就这么整齐地栽倒了。
好规范必须是本企业有能力执行的。一个普通企业照搬一流企业的规范未必行得通。软件工程的规范很容易从书籍中找到,但有了这些规范并不表明就能把软件做好。国内很多软件公司根本没有条件去执行业界推荐的软件工程规范。社会主义初级阶段的“草”与发达资本主义国家的“苗”的确有不同的培育方式。
软件是如此的灵活,如果没有规范来制约,就容易因无序的喜好而导致混沌;但规范如果太严密了,就会扼杀程序员生机勃勃的创造力。制定软件规范是进退两难的事。程序员必须深入了解软件多方面的质量因素,把那些能提高软件质量因素的各种规范植入脑中,才能在各个实践环节自然而然地把高质量设计到软件中。
3.3 软件的质量因素
“运行正确”的程序就是高质量的程序吗?
不贪污的官就是好官吗?
时下老百姓对一些腐败的地方政府深痛恶绝,对“官”不再有质量期望。只要当官的不贪污,哪怕毫无政绩,也算是“好官”。也有一些精明的老百姓打出旗号:宁要贪污犯,不要大笨蛋。相比之下,程序员是够幸福的了。因为我们能通过努力,由自己来把握软件的命运。那么就不要轻易放弃提高软件质量的权利了。
“运行正确”的程序不见得就是高质量的程序。这个程序也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,除了开发者本人谁也看不懂也不会使用。正确性只是反映软件质量的一个因素而已。
软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十几个)。这些质量因素之间“你中有我,我中有他”,非常缠绵。如果程序员每天要面对那么多质量因素咬文嚼字,不久就会迂腐得象孔乙已,并且有找不到女朋友的危险。
为了便于理解,可以参照武侠小说中的武学分类,将质量因素粗略地分成几大派。你想那武学源源流长,相互渗透,谁能数得清有多少江湖派别。但想在道上混,总得知道六大门派:“少林派”、“武当派”、“峨嵋派”、“华山派”、“昆仑派”和“崆峒派”。软件质量因素的分类如图3.2所示。其中“正确性与精确性”排在首位,地位如同“少林派”与“武当派”;而“性能与效率”,“易用性”,“可理解性与简洁性”和“可复用性与可扩充性”亦是举足轻重的质量因素,地位仿佛“峨嵋派”,“华山派”,“昆仑派”和“崆峒派”。其它的质量因素总可以在图3.2中找到合适的亲缘关系,本节不再一一细表。
图3.2 软件质量因素分类和武学分类
3.3.1 正确性与精确性
正确性与精确性之所以排在质量因素的第一位,是因为如果软件运行不正确或者不精确,就会给用户造成不便甚至造成损失。机器不会主动欺骗人,软件运行不正确或者不精确一般都是人造成的。即使一个软件能100% 地按需求规格执行,但是如果需求分析错了,那么对客户而言这个软件也存在错误。即使需求分析完全符合客户的要求,但是如果软件没有100% 地按需求规格执行,那么这个软件也存在错误。
小说推荐
- 软软入相思
- 都城白府,突然多出来了一位大小姐白木雨 众人好奇,却意外发现这被白家宝贝的女儿,脑子好像不大正常 一场宴会,众人得见盛装的白小姐 神祀下诏,白氏女,无根人 真龙之人得之,如虎添翼。旁人得之,不得善终>所以,是福?还是祸 半夜,白小姐的闺房里突然闯进来了个登徒子 自称对白小姐一见钟情,并决定要一缠二闹
- 都市言情言凝倪连载中
- 最新章:(两百三十五)我守着你
- 程心程意
- 从小老师就教育我们叔中自有黄金屋,叔中自有颜如玉。程锦之最大的愿望就是能嫁给隔壁老程直到有一天—程牧白:锦之,跟我回家。程锦之:那你不许勾搭别的女人!程牧白:除了你,我有过别人?从此双程合璧想想还有点小激动呢o 作者:所写的《程心程意》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情未知完本
- 最新章:第46章
- 程少的心尖小软糖
- 尹茜一直知道自己的婚姻不幸福,爹不疼娘不爱,丈夫更是不爱自己,在这场婚姻中,她也只不过是两个集团的交易品而已,可是让她没想到的是,亲手葬送她婚姻的竟然是她最好的闺蜜 而她一次次的忍气吞声,换来的却是丈夫当着她的面跟自己的闺蜜上演“动作戏。撕心裂肺后的她决定“我卖艺不卖身”尹茜的话让程天泽不退反进“卖
- 都市言情牛油果酥酥连载中
- 最新章:第1194章 大结局
- 在moto手机上使用的txt阅读软件
- 在moto手机上使用的txt阅读软件支持机型为:MOTOROLA系列:V3V300-V600(i)V360C501L7L6E398E375E680C650C381v635E1E2E680E680IA780A1200C975C980E1000E770V3IV3X诺基亚系列:32505140i60606
- 未知连载中
- 最新章:第1章
- TXT电子书批量转换中文Unicode编码的软件
- 经常看TXT电子书,但网上下载的经常不是Unicode编码的,打开后会出现乱码,要在电脑上转换,有了这个工具,可以批量转换了,不用一个个另存为Unicode编码了 作者:所写的《TXT电子书批量转换中文Unicode编码的软件》无弹窗免费全文阅读为转载作品,章节由网友发布
- 未知连载中
- 超级软件
- 众所周知,电脑只有装了软件,才会有各种功能,办公、上网、游戏、影音娱乐等等;如果人的大脑也能够安装软件,安装计算器,就能心算;千千静听,就能够歌唱;QQ、浏览器、暴风影音、WOW…一个平凡的少年,要做养家的爷们;一只手机从天而降,大脑安装软件,人生从此不同 作者:钓鱼所写的《超级软件》无弹窗免费全文
- 都市言情钓鱼完本
- 最新章:第四百零八章 向前看(全书完)
- 修仙软件
- 《修仙软件》作者:稀凤【完结】在无名之辈之中惊艳而出,在修仙世界里嚣张跋扈。一代修仙者的豪言!萧泽尧携带自己编程的修仙软件,闯入异界,开始修仙。这里有有被千年诅咒的情侣,生生世世轮回。神魔两道的第一次合作,以及,泉眼浩劫的镇压。萧泽尧的穿越,将改变整个修真史的历史。修仙成神的是惊艳之辈,超凡入圣的是
- 武侠小说未知连载中
- 最新章:第117章
- 人形软件
- 《人形软件》作者:谭剑【完结“我不写科幻本身,我写科幻世界中的真实人性”华语科幻星云奖,最佳长篇小说与最佳作家银奖,科幻小说的后科技之作。本书采用了畅销小说的写法,情节性颇强,时时引着读者读下去,其中对未来网路及灵魂上载的描写亦别开生面。它不仅展现了我们的替身在网路世界的传奇冒险,展现了虚拟生命对真
- 科幻小说未知连载中
- 最新章:第31章
- 我是杀毒软件
- 我游走在黑暗与光明之间,杀戮是我的挚友,邪恶是我的仆从,白骨累累化作我的权杖,鲜血殷殷染红我的披风,阴冷双翼所过之处,死亡的哭号必将震天动地 我是死神。同时也是一个杀毒软件。作者自定义标签:冷酷 作者:懒鸟所写的《我是杀毒软件》无弹窗免费全文阅读为转载作品,章节由网友发布
- 玄幻小说懒鸟连载中
- 最新章:没有后记的后记