
(智业人微信公众号:zoesoft,猛击关注)

带着问题读书:
1.我们公司有哪些常见问题?
2.这些问题是如何产生的呢?
3.有怎样的解决方案?

第4章 研发企业常见问题汇总
4.2组织结构和人力资源问题
组织结构常见问题如下:
(1)组织结构臃肿,工作效率低下。
(2)岗位和职责不清晰,而且经常变动,好多人不清楚自己的岗位和主要职责。责、权、利不明。
(3)项目矩阵关系比较复杂,项目成员不知道听“职能经理”还是“项目经理”指挥。
人力资源的常见问题如下:
(1)不能知人善用,无法发挥团队中每个人的价值,老抱怨员工素质低。
(2)重要岗位用错人。例如,把技术水平很高,但是情商低的人提拔到领导职位。不仅荒废了这个技术高手,而且带乱了队伍。
(3)优秀人才难招到,也难以留住。
(4)难以准确地评价研发人员的业绩,缺乏有效激励措施。
4.3跨部门协作问题
企业重要的部门如“研发、营销和服务"普遍存在跨部门协作问题如下:
(1)跨部门人员相互不熟悉对方的工作流程和规范,沟通费劲。
(2)上游传达给下游的需求不够清楚,各方理解有偏差,上游不断变更需求,导致下游不断修改工作成果,频繁浪费。
(3)上游不能及时了解下游的工作进展情况和负荷,不断传达新的任务,下游忙不过来。
(4)由于各部门的目标和利益不同,导致跨部门合作产生矛盾,例如,营销部门为了使客户满意增大销售额,答应了客户太多的需求,或者承接了过多低效益的项目,致使研发部门耗尽有限资源,疲于奔命,哪个项目都做不好。
企业不仅要让每个部门制定内部工作流程,还要把各部门的流程整合起来,形成整个企业的集成化流程跨部门协作的接口人,不仅要熟知本部门的流程,而且还要了解对方部门的流程,才能够主动灵活地处理比较复杂的跨部门问题。下游一定要有制约上游的机制,否则上游没有做好工作,将使苦难堆积到下游。
4.4需求问题
客户方的主要问题:客户说不清楚需求,客户经常变更需求。
在国内,客户说不清楚需求,不断变更需求是普遍现象。客户想到啥就说啥,没有系统性和逻辑,今天记不得昨天说了什么,客户说的需求有真有假(伪需求),甚至相互矛盾;即使你费了九牛二虎之力,把客户说的话全部都做了,他也不会满意,因为那不是他真正想要的东西,客户还会不断提出新的需求。
上述问题把开发方弄得疲惫不堪。
开发人员们梦想:要是客户能够说清楚需求、不变更需求那该多好啊?
要真是这样,那才惨呢!如果客户自己把最难的事情都做了,还用得着请软件公司来开发?我们都没有饭吃啦!所以不要抱怨“客户说不清楚需求、客户经常变更需求”。就如医生不能抱怨病人生病一样。
开发方的主要问题如下:
(1)没有熟练掌握需求工程的各项技能,如需求调研、需求分析、需求定义、需求评审、需求跟踪和需求变更控制等,开发人员在大学里面学了软件工程,教科书里讲的是掐头去尾的需求分析方法,在现实工作中是不够用的,仅仅是需求工程中的1/6活动。
(2)研发企业没有在战略高度上重视“领域需求研究",仅仅把需求分析当做项目中的一个环节看待。每个项目都从零开始做需求分析,被动地等待客户提出变更需求,而没有主动研究领域需求,提炼出领域需求的知识财富,从而引导客户消费。
4.5设计和开发问题
技术架构和平台策略问题如下:
(1)同一系列的产品、甚至一个产品之内,采用了多种编程语言和多种差异较大的技术。受制于原有的落后技术,先进技术难以无缝引入。若放弃老技术,用新技术重做,风险太大,不敢做。若放弃新技术,延用老技术开发新功能,又不甘心。
企业需优化技术方案,既不妨碍老客户和当前客户使用(试用)产品,又要使新技术尽快在不久的将来产生更高的效益。
(2)在很多项目中重复地开发相似的功能,互不通用,浪费生产力。没有提炼标准件,没有建设公共技术平台,就无法取得软件复用带来的高效率和高质量。
软件设计问题如下:
(1)软件的用户界面设计是大多数软件公司的弱项,人们不知道怎样才能设计出易用、美观的用户界面,凭着个人的经验与感觉设计软件的用户界面,这样产生的界面往往得不到大众用户的认可。
(2)只关心功能设计,却不会综合考虑产品的性能、可扩展性、可复用性等。
(3)软件设计应当“细到什么程度”很难把握。太粗了的话,对后续开发工作的指导价值不高。反之,太细的话,耗费时间就比较多,如果后面不断改进设计的话,前面的设计浪费太多。
软件实现问题如下:
(1)程序员的编程风格差异较大,代码质量有高有低。大多数软件机构没有编程规范,即使有程序员也没有很好地按规范编程。
(2)相当多的程序员没有养成自我测试的习惯,尤其是对自己代码进行“跟踪调试”的习惯,等到测试人员发现BUG之后自己再去改错,此时改错的代价已经增加了很多倍。
4.6项目管理问题
软硬件研发项目管理的独特之处是,它是建立在软件工程基础之上的专业化项目管理,一个没软件工程经验的人,即使他通读项目管理知识体系,哪怕是MBA毕业,也管不好软硬件研发项目。
大多数研发企业的项目管理可以用“三拍”来概括:领导拍脑袋做决定,项目经理拍胸脯作保证,员工拍屁股后走人。
软硬件研发项目管理的范围主要包括:立项管理、结项管理、任务进度管理、项目评审、软件质量管理,以及软件配置管理和文档管理等,每个领域都存在若干常见问题。
1.项目经理的问题
(1)大多数项目经理是搞技术出身的,没有系统性地学习过软件项目管理。他们不知道究竟要管什么,更谈不上有好的管理方法,基本上靠自己的威望和感觉来管理项目。这种情况下,项目的进度和质量难以预测。
(2)国内大部分项目经理有带头干活的权利和义务,他们对项目的进度和质量负最大责任,但是没有财务权。大部分项目没有经费,即使有经费,也得由上级领导审批使用,不能自己作主。有时团队加班干了不少活,项目经理却没有钱“意思意思”,很没有面子。由于项目经理没有财务权,他们就不会关心成本也不懂得如何控制成本。因管理混乱、工作效率低下、进度延误等问题导致“隐性成本”不断增加,钱在不知不觉地流失。
2.立项管理问题
(1)自主产品的立项问题:没有“立项调研、可行性分析、立项评审”活动,主要靠公司领导独断;项目团队只知道干活,却不了解产品的开发背景和目标,不清楚用户期望的产品应该是什么样的。在开发过程中经常迷失方向,导致进度延误、费用超支等问题。
(2)合同项目的立项问题:客户需求不清晰、合同内容空洞。开发方在签订合同时给出了一些空头承诺(例如对进度、质量、费用的估计过于乐观,在实际执行时却难以兑现这些承诺。)
3.结项管理问题
(1)项目结束时,都记得要吃顿饭,却忘记了要总结知识财富、经验教训,以便用于下个项目。
(2)开发人员干完活后,不知道自己的工作成果产生多大的效益,缺乏成就感。不能对员工的业绩进行公正考核,不能很好地激励员工。
(3)项目团队解散后,原项目遗留的问题没有人处理了,把毛病留给客户。
4.任务进度问题
(1)许多项目经理肩负重要的开发工作,他们往往把注意力集中在自己的开发工作上,却不知给组员们分配合适的任务。
(2)项目成员汇报工作时,记流水账,应付了事。懒得动脑筋分析项目遇到的一些问题,例如,某些任务的进度延误了,不分析为什么延误就顺延。导致问题越积越多。
(3)项目实际执行情况与原定的项目计划严重脱节,领导、客户、营销人员和开发团队都不了解项目真正的情况,项目计划形同虚设。
5.项目评审问题
没有界定哪些是“决策评审”,哪些是“技术评审”,没有清晰的评审准则和评审人员要求。每次评审会议都请来很多人,大家七嘴八舌,无法形成结论,浪费很多人的精力。
6.软件配置管理问题
(1)有些软件公司竟然不使用软件配置管理工具(如SVN、CVS等),用最原始的“复制文件或覆盖文件”方式来保存代码和文档,经常出现“版本混乱、文件无法追溯历史”等低级问题。
(2)不少软件公司已经按照CMMI要求制定了软件配置管理规范,该规范在理论上比较完善,面面俱到,但是实际操作比较麻烦,没有突出重点。久而久之,人们厌烦后就逐渐放弃了规范,按自己的习惯来操作,留下了隐患。
7.质量管理问题
(1)有些公司没有质量管理的流程制度,开发人员把完成功能当成终极目标。用户在使用过程中发现许多BUG,导致开发方的纠错性维护代价很高。
(2)有些公司虽然很重视质量管理,按照CMMI的要求建立了流程制度,但是效果不明显。人们搞不清楚测试技术评审、质量保证的作用和关系。靠修补BUg的方式来提升质量,代价比较高。
(3)很多人误以为提高质量是质量部门的责任,没有意识到任何开发人员、管理人员都会对质量产生影响,都要对质量负责。另外,质量管理人员的权力比较小、很难推动质量改进措施。
(4)没有及时反省过错、预防犯相似的过错。例如,在研发过程中不断地产生大量相似的缺陷,然后花费大量时间、精力找出缺陷,再消除缺陷,这是巨大的浪费。
8.变更控制问题
难以拒绝客户和上级领导的不合理变更要求,项目内部亦随意变更设计和代码等,严重影响项目的开发进度和质量。
4.7产品研发管理问题
国内绝大多数软硬件研发企业从事“合同项目开发”,少数企业从事“产品研发”。产品研发管理的难度远高于合同项目管理。
1.主要问题之一:合同项目管理方法和经验不适用于产品研发管理
国内很多IT企业长期从事合同项目开发,有丰富的行业经验和不错的研发队伍,他们很想转型做通用产品,有个企业试了几次没有成功,老总问我是否有成功案例可供参考。尽管我拜访过很多IT企业,但是的确没有看到成功案例。
老总就问为什么?我不假思索地答复:做合同项目的公司都很忙,研发部天天被领导和客户催着干活,实在没有精力去做产品。在场的高管们都深有同感,老总哈哈一笑,那就等咱们有空了,好好去做产品吧。
当天晚上我思考了一夜“为什么没有成功案例”这个问题。
第二天我见到老总,向他道歉说:昨天我说错了,“忙”只是表象。本质原因是做合同项目的方式几乎不可能做出好产品。由于合同项目的开发者长期听客户的,没有自己的思想;而做产品必须要有思想,潜在客户接受了思想才会购买产品,否则就是废品。如果你公司有专家研究领域需求,提炼出思想,那么我帮你建立产品研发体系,可能做出好产品。
老总听了沉思一会儿,叹了一口气:我们做了很多年项目,积累了零零碎碎的经验,平时忙得没有精力去思考产品,谈何产品思想啊?
看来不仅做产品的方法不对,而且人员的思想境界也不够,需要好好反省改进啊。
2.主要问题之二:国内现阶段极难找到称职的产品经理(产品负责人)
4.8管理工具问题
大部分研发企业没有对管理工具进行规划和统一部署。各部门、各项目采用自己熟悉的管理工具,分别用于管理客户问题需求、项目信息、任务进度、代码库、文档库和测试与缺陷跟踪等,管理工具之间各不兼容,形成信息孤岛。
有些工具很老旧了、不好用,但是有数据存在,既不能淘汰,又不能更新。结果这么多杂乱的工具非但成不了财富,反倒成了包袱,十分头痛。
企业需要建设与流程配套的集成化管理平台监控所有项目和人员的工作情况,不断积累知识财富,提供更高级的统计分析和决策根据。

欢迎大家写出自己的感想和需求,评论或者投稿到zyr@zysoft.com.cn
下期分享内容:
研发企业管理十项措施


