软件企业常见问题和系统性解决方法PPT资料.ppt
《软件企业常见问题和系统性解决方法PPT资料.ppt》由会员分享,可在线阅读,更多相关《软件企业常见问题和系统性解决方法PPT资料.ppt(33页珍藏版)》请在冰豆网上搜索。
每个领域都死掉了成千上万的相同业务的互联网公司,最终只有少数几家可以活下来,极大地浪费社会财富。
互联网公司的另一个大缺点是太浮躁,过分追求快而导致根基不扎实,国内绝大多数互联网公司的软件研发管理,要比传统软件公司混乱得多。
u软件企业要想多挣钱,靠“开源节流”。
“开源”主要靠优化盈利模式,使得现有的技术和资源产生更高的效益。
“节流”主要靠改进管理,使企业的所有经营环节更加合理,减少不必要的成本,省下来的钱也就成了利润。
Page41.2组织结构和人力资源问题组织结构和人力资源问题u组织结构常见问题:
组织结构臃肿,工作效率低下。
岗位和职责不清晰,而且经常变动,好多人不清楚自己的岗位和主要职责。
责、权、利不明。
项目矩阵关系比较复杂,项目成员不知道听“职能经理”还是“项目经理”指挥。
u人力资源的常见问题:
无法发挥团队中每个人的价值,老抱怨员工素质低。
重要岗位用错人,例如把技术水平很高,但是情商低的人提拔到领导职位。
不仅荒废了这个技术高手,而且带乱了队伍。
优秀人才难招到,也难以留住。
难以准确地评价研发人员的业绩,缺乏有效激励措施。
Page51.3跨部门协作问题跨部门协作问题u企业重要的部门如“研发、营销、服务”普遍存在跨部门协作问题:
跨部门人员相互不熟悉对方的工作流程和规范,沟通费劲。
上游传达给下游的需求不够清楚,各方理解有偏差,上游不断变更需求,导致下游不断修改工作成果,频繁浪费。
上游不能及时了解下游的工作进展情况和负荷,不断传达新的任务,下游忙不过来。
由于各部门的目标和利益不同,导致跨部门合作产生矛盾。
例如营销部门为了使客户满意、增大销售额,答应了客户太多的需求,或者承接了过多低效益的项目,致使研发部门耗尽有限资源,疲于奔命,哪个项目都做不好。
u要求:
企业不仅要让每个部门制定内部工作流程,还要把各部门的流程整合起来,形成整个企业的集成化流程。
下游一定要有制约上游的机制,否则上游没有做好工作,将使苦难堆积到下游。
跨部门协作的接口人,不仅要熟知本部门的流程,而且还要了解对方部门的流程,才能够主动灵活地处理比较复杂的跨部门问题。
Page61.4流程改进问题流程改进问题u大多数软件公司成立最初几年,几乎没有流程,基本靠人治。
等公司规模稍大后,就基于CMMI搞流程改进,不知不觉把软件流程搞得很复杂,貌似完善却难以推行,走向了另一个极端。
u软件公司既希望有完善的流程来指导重大项目的研发,规避风险,又希望有快捷的流程适用于“短平快”的项目。
软件公司需结合CMMI理论和敏捷开发思想来优化流程。
Page71.5需求问题需求问题u客户方的问题:
客户说不清楚需求,双方误解需求,客户经常变更需求。
u开发方的问题:
没有熟练掌握需求工程的各项技能,如需求调研、需求分析、需求定义、需求评审、需求跟踪、需求变更控制等。
公司没有在战略高度上重视“领域需求研究”,仅仅把需求分析当做项目中的一个环节看待。
每个项目都从零开始做需求分析,被动地等待客户提出需求、变更需求。
而没有主动研究领域需求,提炼出领域需求知识财富,从而引导客户消费。
Page81.6设计和开发问题设计和开发问题u技术架构和平台策略问题:
同一系列的产品、甚至一个产品之内,采用了多种编程语言,和多种差异较大的技术。
受制于原有的落后技术,先进技术难以无缝引入。
若放弃老技术,用新技术重做,风险太大,不敢。
若放弃新技术,延后老技术开发新功能,又不甘心。
在很多项目中重复地开发相似的功能,互不通用,浪费生产力。
没有提炼标准件,没有建设公共技术平台,就无法取得软件复用带来的高效率和高质量。
u软件设计问题:
软件用户界面设计是大多数软件公司的弱项,人们不知道怎样才能设计出易用、美观的用户界面,凭着个人的经验与感觉设计软件的用户界面,这样产生的界面往往得不到大众用户的认可。
只关心功能设计,却不会综合考虑产品的性能、可扩展性、可复用性等。
软件设计应当“细到什么程度”很难把握。
太粗了的话,对后续开发工作的指导价值不高;
反之倘若太细的话,耗费时间就比较多,如果后面不断改进设计的话,前面的设计浪费太多。
u软件实现问题:
程序员的编程风格差异较大,代码质量有高有低。
大多数软件机构没有编程规范,即使有的话,程序员也没有很好地按规范编程。
相当多的程序员没有养成自我测试的习惯,尤其是对自己代码进行“单步跟踪调试”的习惯。
等到测试人员发现Bug之后自己再去改错,此时改错的代价已经增加了很多倍。
Page91.7软件项目管理问题软件项目管理问题u软件项目管理的独特之处是,它是建立在软件工程基础之上的专业化项目管理。
一个没有软件工程经验的人,即使他通读PMBOK,哪怕是MBA毕业,也管不好软件项目。
u软件项目管理的范围主要包括:
立项管理,结项管理,任务进度管理,项目评审,变更控制,软件质量管理,软件配置管理和文档管理等。
每个领域都存在若干常见问题。
u大多数软件企业的项目管理可以用“三拍”来概括:
领导拍脑袋做决定;
项目经理拍胸脯作保证;
员工拍屁股后走人。
u一、项目经理的问题:
大多数项目经理是搞技术出身的,没有系统性地学习过软件项目管理。
他们不知道究竟要管什么,更谈不上有好的管理方法,基本上靠自己的威望和感觉来管理项目。
这种情况下,项目的进度和质量都难以预测。
国内大部分软件企业的项目经理有带头干活的权利和义务,他们对项目的进度和质量负最大责任,但是没有财务权。
他们不会关心成本也不懂得如何控制成本。
因管理混乱、工作效率低下、进度延误等问题导致“隐性成本”不断增加,钱在不知不觉地流失。
u二、立项管理问题:
自主产品的立项问题:
没有“立项调研、可行性分析、立项评审”活动,主要靠公司领导独断;
项目团队只知道干活,却不了解产品的开发背景和目标,不清楚用户期望的产品应该是什么样的;
在开发过程中经常迷失方向,导致进度延误、费用超支等问题。
合同项目的立项问题:
客户需求不清晰、合同内容空洞;
开发方在签订合同时给出了一些空头承诺,在实际执行时却难以兑现这些承诺。
Page101.7软件项目管理问题软件项目管理问题u三、结项管理问题:
项目结束时,都记得要吃顿饭,却忘记了总结知识财富、经验教训,用于下个项目。
开发人员干完活后,不知道自己的工作成果产生多大的效益,缺乏成就感。
不能对员工的业绩进行公正考核,不能很好地激励员工。
项目团队解散后,原项目遗留的问题没有人处理了,把毛病留给客户。
u四、任务进度问题:
许多项目经理肩负重要的开发工作,他们往往把注意力集中在自己的开发工作上,却不知给组员们分配合适的任务。
项目成员汇报工作时,记流水帐,应付了事。
懒得动脑筋分析项目遇到的一些问题,例如某些任务的进度延误了,不分析为什么延误了,就顺延。
导致问题越积越多。
项目实际执行情况与原定的项目计划严重脱节,领导、客户、营销人员、开发团队都不了解项目真正的状况,项目计划形同虚设。
u五、项目评审问题:
没有界定哪些是“决策评审”哪些是“技术评审”,没有清晰的评审准则和评审人员要求。
每次评审会议都请来很多人,大家七嘴八舌,无法形成结论,浪费很多人的精力。
Page111.7软件项目管理问题软件项目管理问题u六、软件配置管理问题:
有些软件公司竟然不使用软件配置管理工具(如SVN、CVS等),用最原始的“复制文件或覆盖文件”方式来保存代码和文档,经常出现“版本混乱、文件无法追溯历史”等低级问题。
不少软件公司已经按照CMMI要求制定了软件配置管理规范,该规范在理论上比较完善,面面俱到,但是实际操作比较麻烦,没有突出重点。
久而久之,人们厌烦后就逐渐放弃了规范,按自己的习惯来操作,留下了隐患。
u七、软件质量管理问题:
有些软件公司没有软件质量管理的流程制度,开发人员把完成功能当成终极目标。
用户在使用软件的过程中发现许多Bug,导致开发方的纠错性维护代价很高。
有些软件公司虽然很重视软件质量,按照CMMI的要求建立了流程制度,但是效果不明显。
人们搞不清楚软件测试、技术评审、质量保证的作用和关系。
不懂得内建高质量,却靠修补Bug的方式来提升质量,代价比较高。
很多人误以为提高软件质量是质量部门的责任,没有意识到任何开发人员、管理人员都会对质量产生影响,都要对质量负责。
另外,质量管理人员的权力比较小,很难推动质量改进措施。
没有及时反省过错、预防犯相似的过错。
例如在软件研发过程中不断地产生大量相似的缺陷,然后花费大量时间、精力找出缺陷,再消除缺陷,是巨大的浪费。
Page121.7软件项目管理问题软件项目管理问题u八、变更控制问题:
难以拒绝客户和上级领导的不合理变更要求,项目内部亦随意变更设计和代码等,严重影响项目的开发进度和质量。
u九、管理工具问题大部分软件公司没有对管理工具进行规划和统一部署。
各部门、各项目采用自己熟悉的管理工具,分别用于管理客户问题需求、项目信息、任务进度、代码库、文档库、测试与缺陷跟踪等等,管理工具之间各不兼容,形成信息孤岛。
有些工具很老旧了、不好用,但是有数据存在,既不能淘汰,又不能更新。
结果这么多杂乱的工具非但成不了财富,反倒成了包袱,十分头痛。
企业需建设与流程配套的集成化管理平台,监控所有项目和人员的工作情况,不断积累知识财富,而且提供更高级的统计分析和决策依据。
u软件企业常见问题总结:
软件企业常见问题总结:
本节所述问题在软件行业普遍存在,我们不要等到出了问题之后,再头痛医头、脚痛医脚。
软件行业需要系统性的企业管理方法,避免常见问题一而再、再而三地发生。
Page132.软件企业集成化管理模型软件企业集成化管理模型u集成化管理模型自顶而下划分三层:
思想理念,战略管理,集成化流程和工具。
u第一层:
思想理念第一层:
思想理念主要论述:
企业根本目标,企业道德,管理目标(正确决策和正确执行),管理基本方法(法治和人治),企业管理的经济学原理,如何赢得客户。
目的是让企业全员对“是非对错、轻重缓急”有共同的认识。
有了这个基础,企业才可以推行具体的管理措施。
u第二层:
企业战略管理第二层:
企业战略管理企业战略管理的核心是使企业持续进步、长治久安,是企业领导层最主要的工作。