1、第 一 篇求生心态I北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 1/331下载第 1 章欢迎来到软件项目求生训练中心许多软件项目的生存机会看来不大,其实不然。想要生存的第一步是确定以良好的方式开始进行。有好的开始,生存的机会自然就大得多了。1北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 2/331你可能很难相信,一般人对软件产品的要求要比软件项目严格多了。使用软件的人希望软件产品可以连续使用好几个钟头,可以连续执行好几百万个程序命令而历久弥新。可是软件开发者对软件项目反而不抱太大期望。使用者与客户也许会抱怨项目慢了一个月、三个月甚至半年才推出,也许抱怨
2、程序不好用或缺乏几项重要功能。可是如果软件产品计划中的主体如期推出,即使不惜血本,大部分消费者还是会认为开发产品的项目成功了。我们看过太多失败的例子,所以我们认为只有完全像是扶不起的阿斗的项目才算是失败的。多年来,软件工业的高层人士对软件项目的要求总是爱之深、责之切。一个成功的项目应该尽可能满足成本与时间的需求, 以追求高质量的产品为目标, 不要瞻前顾后。确定了这点,就现阶段的技术还可以控制在百分之十上下的水准。一般的软件项目主管都可以做得到,即使是项目外的其他人,如高阶主管、经理、客户、投资人和使用者代表一样可以发挥相同影响力。一名 Construx Software Builders的首席
3、软件工程师请我去看他们一些失败的案例。在专家眼里,失败的原因通常很明显。中型软件项目的失败( 20 000250 000行源4微软项目求生法则 下载北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 3/331代码)其实很容易避免。此外我发现软件项目不是不能达到最短时程、最低成本、最佳质量或任何其他目标择一力臻完美。并非以上所有目标都能同时完成,本书想要告诉大家的是力求在众多目标之间取得平衡,让一个低成本而高质量的产品能如期推出。求生需求软件项目求生第一步就是确认生存的基本需要。Abraham Maslow观察出人类的需求依照程度由低到高 ,以自然阶层的形态呈现。 最低程度的需求
4、称做 “生理需求” ,这是人类生存所必需的最低要求。在我们满足上层的需求前,必须先满足图 1 - 1中在虚线以下部分的较低程度需求。所以要先满足对食物、空气、水的生理需求之后,我们才能够追求“归属感”与爱自尊与自我实现的满足。如同许多软件专家一样,我发现类似的需求阶层也可以套用在软件项目上。软件项目有一组基本需求必须先被满足,逐步攀爬到需求金字塔的上层,就可以大幅改善项目的质量与生产力。项目团队必须满足“一定会完成项目”的最低层次需5微软项目:求生法则欢迎来到软件项目求生训练中心下载北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 4/331下载求,接着再来考虑有关时间和预算目
5、标百分之十上下的问题。而且项目小组必须在有限的预算和时间之内,以现有的技术水准,努力推出预定计划中的最佳软件。图 1-1 Abraham Maslow的人类需求阶层图。在满足较高阶层的需求前,必须先满足较低阶层的需求如图 1 - 2所描述的,软件项目的需求阶层与制作项目的个人需求大相径庭。举例来说,开发人员会将他们的个人自尊摆在健全的团队动力之前。但就项目而言,健全的团队动力要比开发人员个人自尊更重要。6微软项目求生法则食物、空气、水等自我实现自尊社交接触,归属感与爱生理需求免于痛苦、恐惧与不安安全需求北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 5/331本书针对软件项目
6、需求中下阶层的部分讨论,只有当上层需求的方向影响下层需求的满足时,才会提到上一阶层的部分。图 1-2 软件项目需求阶层图。项目的需求大致与参与项目的个人相仿求生权利处境艰难的项目威胁到各相关人士的生存需求。客户担心项目到底能不能推出,结果会不会太慢或太贵。7微软项目:求生法则欢迎来到软件项目求生训练中心下载自我实现自尊生存需求安全需求持续专业发展感到有生产力,相信项目的重要性归属感与爱健全的团队动力满足个人对时间与功能的承诺项目不被取消;团队不被解聘;合理的工作条件等等北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 6/331主管担心客户会不会取消项目而导致失败,或者开发人员
7、能不能够完成。开发人员担心他 (她 )会不会丢掉饭碗,或是被迫牺牲数百小时的休闲时间表示他 (她 )真的全心投入工作了。每一种情形,每个人都退回到项目需求阶层的最底层部分 担忧是否能满足他们个人承诺的安全需求。这样的反应反而让他们放弃追求金字塔上层可达成最高质量与生产力的东西。如汤玛斯富比世( Thomas Hobbes)在十七世纪所作的观察, 1 7世纪时,专制制度下生活的人孤僻、穷困、难受、粗野而短命。软件项目求生的第一步就是让各相关人员能同意彼此以文明的方式对待。总结出一个结果,当文明的规范套用到软件项目上时,就成了“客户的人权法案” 。当项目不是针对特定客户而开发时,本来属于客户的权利
8、就会成为产品主管、行销代表或使用者代表所有。客户的人权法案我有以下权利:1. 设定项目目标,并让项目朝目标进行。2. 了解软件项目要花费的时间与成本。8微软项目求生法则 下载北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 7/331(续 )3. 决定产品中要有哪些功能。4. 在项目进行中对需求做合理改变,并了解进行改变所需的代价。5. 清楚可靠地了解项目进行的状态。6. 经常被告知会影响成本、时间表或质量的风险所在,并获得解决基本问题的选择权。7. 可探知项目过程中完成的部分。各种权利中,我最了解的就是美国人权法案中列举的各项权利。那些权利不只是“权利”而已,而是民主代议制度
9、的基本要求。同样这些软件的项目权利不只是让软件项目的推动更有乐趣,而是让项目运作的必要条件。与美国人权法案相似,个人在软件项目中拥有的权利也是他在项目中所需负起的义务。我们都享有言论自由,不过我们对言论自由的义务就是让别人也有言论自由的权利,即使我们不认同他人的言论或认为他人的言语侵犯了我们的权利。在一个软件项目中,客户的权利来自尊重下列这些项目小组的权利:9微软项目:求生法则欢迎来到软件项目求生训练中心下载北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 8/331项目小组的人权法案我有以下权利:1. 了解项目目标,并理清各顺序不明的目标之间的优先度。2. 了解我要建立的产品
10、细节,并理清产品定义不明之处。3. 随时让客户、主管、行销人员或其他负责决策的人能探知软件功能已完成的部分。4. 以技术上负责任的方式进行项目中各阶段的工作,特别是不因压力而提早进行项目中的程序写作。5. 估计被要求完成工作所需的努力与时间。这项权利包含只提供项目各阶段理论上约略可行的时间与成本类型,与争取建立有意义的估量所需要的时间,以及项目需求变化时重新测算各项时间与成本的权利。6. 将项目的推动状态明确报告给客户与上层主管得知。7. 获得一个免于被打扰而分心的生产工作环境,特别是在进行项目的关键部分时。项目成功的第一步在于让相关各方尊重彼此对项目成功的权利。第二步则在于让项目彻底满足各方
11、人士生存需求,使每个人都感受不到生存上的威胁。至于怎么做,就是本书接下来要讨论的了。求生检查每一章结尾都有个求生检查,列出你能从项目外进行10微软项目求生法则 下载北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 9/331检查的项目特性,以衡量项目的健全与否。成功的关键以楷体字表示,标上一个大拇指的符号( ),显示这些特性的项目在朝着成功方向前进。陷阱则以炸弹的符号 ( )标示,有这些特性的项目就危险了。项目的求生需求获得满足。客户与项目小组同意尊重彼此对软件项目的权利。原则上同意尊重彼此的权利,实际上却没做到。11微软项目:求生法则欢迎来到软件项目求生训练中心下载求生检查北斗成功社区 BeiDouW 助您解决成长中的问题 本书仅供试读 10/331