网站开发的推荐参考书,凡客诚品商城,如何注册网站,企业网站建设层次适应日益加剧的竞争环境、把握瞬息万变的市场信息是企业得以生存和发展的基础#xff0c;某大型IT公司估计其产品推迟上市一个月将导致收入减少530万#xff08;人民币#xff09;、利润减少265万、还要付出另外的研发费用37.5万。这就对产品研发项目提出了更高的要求#…适应日益加剧的竞争环境、把握瞬息万变的市场信息是企业得以生存和发展的基础某大型IT公司估计其产品推迟上市一个月将导致收入减少530万人民币、利润减少265万、还要付出另外的研发费用37.5万。这就对产品研发项目提出了更高的要求如何在有限的资源投入下以更快的速度满足或者超越用户的需求。本文汉捷咨询带大家浅析影响研发项目开发效率的因素。
在提高研发效率方面业界已经进行了大量有益的探索和实践下面是几种较有代表性的见解
l 过程/流程决定一切强调过程的重要性
l 人是生产力的决定因素强调人的重要性
l 采用XXX编程工具可以使您的开发效率提高一个数量级强调工具的重要性
l 良好的计划是项目成功的一半强调项目管理的重要性
……
尽管每种见解都有大量的拥趸无论处于业务还是商务角度但是仍然会遭到大量的挑战而不能自圆其说从研发项目的实践来看也同样反映了“瞎子摸象”的现象好像每种见解都是对的但是又不完全对。
根据美国项目管理协会的定义“项目管理是在项目活动中运用知识技能工具和技术以便达到项目要求”项目管理的目标是在给定的资源、预算和时间内安全地完成符合质量要求的项目。以上定义意味着项目的资源、预算、时间和项目范围有着内在的约束关系在这四个因素已经被“极其乐观”的限定的情况下项目最终无法完成——项目经理常常会遇到非常紧张的、不可能完成的Deadline如何应对项目范围的约束关系告诉我们手中的王牌包括增加人手有时候人多反帮倒忙可以参考《人月神话》、投入更多资源部分模块外包、使用COTS、购买最好的开发/管理工具、削减项目范围/需求承诺在后续版本中提供某些功能但是用户未必会认同、降低质量软件项目交付质量的降低往往意味着客户需求没有完全实现用户也未必会认同。
更深一个层次多个因素影响了研发项目的开发效率片面强调某一个因素而忽略其他的因素都无法揭示项目实践中遇到的问题。这里引用一个老笑话
有个警察看到个喝醉的人在路灯下找东西他就问你找什么那个醉鬼说车钥匙下车时掉了我在找。警察问你不在掉的车子附近找怎么到路灯下找呢。醉鬼说那里黑啊这里亮啊好找
其实很多项目经理或者咨询机构都在犯类似这个醉鬼的错误不管是有意或是无意的——试图在自己最熟悉、最容易控制的因素上寻求突破而对自己陌生的、难以控制的因素却置若罔闻尽管它可以为项目带来更大的回报。汉捷推测很大程度上是由于“人类本能的需要心理安全感”。
那么到底哪些因素影响了开发的效率、他们又能够在多大程度上造成影响下面的资料是Capers Jones在《Software Assessments, Benchmarks, and Best Practices》中使用的数据这是目前为止最新资料虽然量化管理是管理追求的较高层次但是现在度量方面的专著却几乎绝迹可能是商业利益使然。
影响软件项目生产率的积极因素以影响程度排序 项目因素影响程度(%)项目因素影响程度(%)高质量可交付产品复用350正式审查的使用15高水平的管理人员经验65好的办公室人体工程学15高水平的技术人员经验55低的项目复杂度13有效的方法与过程35适度的进度压力11有效的管理工具30生产率测量10有效的CASE工具27低的需求蔓延9高级程序设计语言2410天以上的年度培训8质量评估工具19开发团队分布集中8细的岗位分工18高昂的团队士气7有效的客户参与18分层管理机构5正式的成本与进度估计17 影响软件项目生产率的消极因素以影响程度排序 项目因素影响程度(%)项目因素影响程度(%)低质量可交付产品复用300拥挤的办公空间27管理人员缺乏经验90低级语言25技术人员缺乏经验87工作场所分散24高的需求蔓延77非正式的成本与进度估计22不适当的CASE工具75岗位分工不细15没有使用审查48没有客户参与13不适当的管理工具45没有年度培训12无效的方法与过程41平面式的管理结构8无质量评估40没有生产率测量7项目很复杂35低的团队士气6过大的进度压力30 从上面的数据中可以有很多新的发现当然是仁者见仁智者见智
l 同一要素的不同影响相同的项目因素例如“管理人员经验”对项目生产率的正面影响为65也就是说管理人员具备高质量的管理经验最高可以使生产率提升65而蹩脚的管理人员却对生产率造成最高90的下降。65对比90并不相同这一点在“需求蔓延”上面表现的最为突出是9对比77。这说明了相同的事情如果做的不好带来的负面影响远远大于将其做好而带来的积极影响
l 产品/模块复用复用可以包括平台化开发、模块重用等高质量产品复用所带来的收益是惊人的但是如果有问题的模块被复用就会对相关产品均造成负面影响这种影响被批量放大解决起来也更加困难
l 人的问题我们会发现管理人员、技术人员的能力经验对项目造成很大的影响在这方面的努力会得到很好的回报不少公司愿意在营销运作、过程改进、设备引进等方面投入巨资在引入和培训人才方面缺乏力度初衷是认为“人”在短期内不可改变即便是这样对“人”视而不见长期看来只能是在低水平踏步另一个问题项目经理往往会认为项目团队的成员是短板事实却常常相反项目失利源于经理的经验不足对项目丧失控制“能力越大责任越大”With Great Power, Comes Great Responsibility”, Uncle Ben to Peter Parker in Spider-Man”不断提升应该是管理者的必修课
l 需求产品需求可以看作射击的目标如果目标没有找准或是错误的项目必定走向失败。需求对于项目的重大意义无论怎么强调都是不为过的几乎每个项目经理都会被“需求蔓延/变更”折磨过但是真正能够从中吸取教训的比例却相当少
l 管理工具/编程语言运用恰当的管理工具/编程语言会极大的提高工作效率例如项目管理工具、配置管理工具、团队交流工具、集成开发环境等但是却不能指望工具可以改变项目的命运或者产生数量级的飞跃因为整个项目的工作不仅仅是编写代码需求分析、系统设计、测试设计、评审等活动不能由工具完全代劳此外过分迷信工具的效果反而会削弱对其他因素的关注程度
l 流程CMM/CMMI的影响已经将过程的重要性渲染得无以复加但是令人失望的是它只有3040的影响其实在其他因素不变的情况下哪怕只有10的改善已经非常可观了过程改进方面过犹不及不顾公司的商业收益而片面强调规范化、一味向某个所谓“业界最佳”实践看齐更像是一场无收效的做秀而不是真正的过程改进
l 进度估计与控制现在已经有很多成熟的估算方法和工具那些复杂的方法并不见得比相对简易的方法拥有更好的准确度关键是方法运用和熟悉的程度适当的进度压力可能刺激开发人员的工作积极性但是过大的进度压力却可能导致追求进度而放弃产品质量结果就是产品不稳定开发周期拖长直到大家都已经不耐烦了才勉强发布
l 团队士气尽管这个因素的影响程度并不大但是相比耗资巨大、周期漫长的过程改进活动其投资回报是非常高的。开发团队具备高昂士气并且由衷的愿意为项目做贡献就会主动的高质量完成工作这是任何流程规范无法比拟的。电影《勇敢的心》、《特洛依战争》、《魔戒》中在英雄们率领他的部队展开诗史般的冲锋之前都会发表一番激情洋溢的演说用意就是激励起部队斗志显然这样会比士气低落时的胜算要大很多。但是一味的强调“精神胜利”是不够的古人曾总结出“一鼓作气再而衰三而竭”试图激励士气并不是一件很容易的事情不过挫伤士气倒是轻而易举的
汉捷认为项目管理是一门寻求平衡的艺术即凭借有限的资源最大程度的满足项目干系人的期望上述的表格只是众多因素的一个子集不同的项目在不同的阶段可能会出现不同的短板这就是我们改进的机会所在。