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