当前位置:首页>管理咨询>中小型软件公司的项目管理和软件过程控制 查询:
     
中小型软件公司的项目管理和软件过程控制

        中小型软件公司如果立足长远发展,必须重视软件过程改进与项目管理,当前软件行业已经不再是个人英雄主义的时代,必须是团队合作,需通过软件过程改进和推行项目管理来保证开发交付的产品符合客户要求。

        一、企业商业目标决定产品开发之道

        .目前存在的软件危机

        绝大多数软件企业长期面临“产品质量低下、进度延误、成本高昂”的共性问题,就像患了恶劣的慢性病,无法根除。

        大学教育以填鸭的方式给学生灌输技能,却忽视了传授思想和方法;学生们埋头学习,不知学以致用,离开学校后对企业、产品、人生一片茫然;企业以混乱甚至错误的方式开发产品,重复着前人的失败而不是成功。这就是产生“软件危机”的真正根源。

        中小型软件公司的技术开发体系多处于筹建形成时期。人员的组成结构还不是非常合理,具有一定开发管理经验的骨干人员相对缺乏,还没有完全形成很好的管理梯队,无法很好成功并行完成多个在建软件项目。建立良好软件开发管理,对于技术队伍良性成长,应对人员变动形成的风险非常有益。

        国内众多中小软件企业都面临软件开发管理随意性强,其原因是当企业没有发展到必须通过项目管理维持公司运转的程度时,大家(尤其是开发技术人员)对项目管理、软件工程视而不见,只有亲身尝到因此造成的失败后才给予足够的重视。因此,作为公司管理层应该对软件过程、项目管理给予充分认识,着手建立管理制度才能防患于未然。

        .企业根本目标决定产品开发之道、用人之道

        “企业-产品-人”这三个主体构成了复杂的系统:

        企业的根本目标是“合法地赚取尽可能多的利润,使企业利益最大化”。这个根本目标就如同企业的“宪法”,是企业生存和发展之本。

        实现企业的根本目标要由企业中的人通过符合市场的产品来实现,正确的产品开发之道和用人之道决定了企业的根本目标能否实现。中小规模的软件公司往往重视维持公司目前发展阶段的产品市场,但是在技术队伍建设方面明显滞后,公司在吸引高水平人才、项目管理、软件工程方面还存在不足。

        企业的产品开发之道包含两个方面的内容:

        开发正确的产品,即开发能为企业赚取利润的产品;

        正确地开发产品,即努力使产品为企业赚取尽可能多的利润。

        企业的用人之道也包含两个方面的内容:

        用正确的人,即利用能为企业赚取利润的人;

        正确地用人,即努力使人为企业赚取尽可能多的利润。

        “开发正确的产品”和“用正确的人”属于企业的决策过程。“正确地决策”是企业各级领导的第一职责。

        “正确地开发产品”和“正确地用人”属于企业的执行过程。“正确地执行” 是企业各个团队的第一职责。

        决策和执行之间的关系是战略与战术之间的关系,两者相辅相成,缺一不可。企业的成功是建立在“正确地决策”和“正确地执行”的基础之上的。任何错误的决策、错误的执行都可能导致产品失败,进而导致企业倒闭,

        二、强化项目管理、改进软件过程,改善产品开发之道

        .产品开发之道

        产品的开发首先要开发正确的产品,通过市场调研和项目立项管理来保证;而更关键的是正确的开发产品,各软件企问题多出在这一环节上。

        正确的开发产品的基本要求是:项目团队在预定的时间和成本之内,开发完成合格的产品;项目团队尽最大努力把产品做得好、做得快并且少花钱。

        “质量、效率、成本”通常是衡量产品开发过程优劣的三个关键指标。一般说来,质量、效率、成本之间存在对抗关系。俗话说“一分钱一分货”,人们买东西的时候大多认可“质量越好价格就越高”。再如俗话“慢工出细活”,言下之意是提高质量将使生产率降低。根据常识可知,要想同时提高产品质量、效率并且降低开发成本是非常不容易的。在不对质量和成本产生负面影响的前提下提高工作效率,这才是真本事。

        提高工作效率通常可以采用措施有:

        提高项目成员的工作技能。使他们在开发产品时不仅做得好而且做得快。  制定合适的软件过程。软件过程定义了做事的主要步骤,如果过程混乱,做事颠三倒四的话,势必伤害生产率。  提高复用程度。复用就是指“利用现成的东西”,软件中可以复用的对象有设计模式、

        代码库、文档模板等等。软件人员应当懂得复用别人留下的成熟可靠的成果(可能要花钱去买也可能是免费的),并且还要给自己留下可以在将来复用的东西。

        使用高效率的开发工具和管理工具。

        企业必须权衡质量、效率和成本。为了提高用户对产品的满意度,企业必须提高产品的质量。但是企业不可能为了追求完美的质量而不惜一切代价,当企业为提高质量所付出的代价超过销售收益时,这个产品已经没有商业价值了,还不如不开发。重视软件质量是应该的,但是“质量越高越好”并不是普适的真理。只有极少数软件应该追求“零缺陷”,对绝大多数软件而言,商业目标决定了质量目标,而不该把质量目标凌驾于商业目标之上。

        人们常常关注开发成本而忽视了维护成本。有时人们为了赶进度而牺牲软件产品的质量,这是非常不可取的,因为软件质量带来的后期维护成本会轻而易举地把项目的利润吞噬殆尽。

        因此,产品质量太低了或者太高了,都不利于企业获取利润。企业产品的理想目标不是“零缺陷”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。

        .三种典型的质量管理和产品开发方式

        一个中国古代郎中看病的故事,代表了产品开发和质量管理的三种典型方式:

        有一家三兄弟全是郎中。其中有一人是名医,人们问他:“你们兄弟三人谁的医术最高?”     他回答说:“我常用猛药给病危者医治,偶尔有些病危者被我救活,于是我的医术远近闻名并成了名医。我二哥通常在人们刚刚生病的时候马上就治愈他们,临近村庄的人说他是好郎中。我大哥不外出治病,他深知人们生病的原因,所以能够预防家里人生病,他的医术只有我们家里才知道。”

        老大治病的方式最高明,如果人们能够预防生病的话,那么没病就用不着看医生了。 提高软件质量最好的办法是:在开发过程中有效地防止工作成果产生缺陷,将高质量内建于开发过程之中。主要措施是“不断地提高技术水平,不断地提高规范化水平”,其实就是练内功,通常为“软件过程改进”。

        即使一个人严守养生之道,身体状况良好,但总是会意外地得病的,得了病就要去看医生。老二治病的方式就是医院的模式,病人越早看病,就越早治好,治病的代价就越低。 同理,在开发软件的时候,即使人们的技术水平很高,并且严格遵守规范,但是人非机器,总是会犯错误的,因此无法完全避免软件中的缺陷。

        当工作成果刚刚产生时马上进行质量检查,及时找出并消除工作成果中的缺陷。这种方式效果比较好,人们一般都能学会。最常用的方法是技术评审、软件测试和过程检查,已经被企业广泛采用并取得了成效。越早发现缺陷,纠正缺陷的代价就越小。

        老三治病的方式代价最高,只能是不得已而为之。可在现实之中,大多数软件企业采用老三的方式来对付质量问题。典型现象是:在软件交付之前,没有及时消除缺陷。当软件交付给用户后,用着用着就出错了,赶紧请开发者来补救。可笑的是,当软件系统在用户那里出故障了,那些现场补救成功的人倒成了英雄,好心用户甚至还寄来感谢信。

        借鉴故事中老二、老三治病的方法,建立预防产品质量问题产生的规范和流程,采取及时检查监督的措施,是减少产品缺陷、提高质量的正确开发产品之道。

        .强化项目管理、改进软件过程

        中小规模软件公司的软件开发和项目管理存在一些不足:公司还没有基本的软件开发管理制度和规范;有经验的开发技术管理的人员缺乏,对项目状态缺少及时的跟踪,出现问题时发现不及时;软件过程缺乏可操作性强的标准流程、规范的约束;项目或产品的开发依赖于项目成员自身的开发水平;等等。

        从长远发展出发,还要从抓项目管理、软件过程改进入手。软件过程改进已经成为软件工程和项目管理交叉学科的主流研究方向。软件过程改进的目标就是“提高产品质量、提高工作效率和降低开发成本”。

        业界的实践证明,走规范化之路是成本最低、见效最快、能持续发展的软件过程改进方法。

        三、改进产品开发之道的可操作的具体措施

        建立并运行一套合理的软件过程非一日之功,需要首先理解认同其管理思想和做法,在公司整个团队内推行,并在推行过程中不断听取各方面的反馈,合理的意见建议予以采纳,固有的旧观念坚决予以纠正,这样才能逐渐形成自己的管理制度。另外,应该认识到建立管理体系和软件过程是要花费一定财力、人力的,是一个循序渐进的过程,但这项工作对于企业的长远发展是必不可少的。

        为了在以上思路下,快速有效的措施,建议做以下几个方面

        .强调项目计划与策划

        凡事都讲计划与策划,项目、产品开发要进行计划,市场、销售也要进行计划,各种大型会议、活动等等都要进行计划。一些重要的活动、市场运作要进行周密策划。计划是要整个团队进行沟通,进行任务分解和落实,责任落实到没一个人。做计划进行时间、进度、费用、人员、工作量等的估算,最好能够把工作计划等资料存档,这也是公司今后分析总结的依据,也是经验数据的积累。这种积累也是公司的财富。

        重视计划的严肃性,工作总结和汇报要对照原来的计划,计划和按照计划执行的能力越强,说明公司的管理和执行能力越强,公司的抗风险能力就越强。计划可根据实际进行调整,因为计划再周密也会变化,因为不变的只有变化。公司、部门、项目组可以维持三个月的动态计划,随着每个月时间的推移,顺延增加后一个月的计划。

        推行制定计划的初期,由于缺乏经验和依据,计划的准确性可能会有较大偏差,但还是要认真执行,逐步趋近于计划准确。

        需要制定计划的有公司半年工作计划、全年工作计划,产品开发计划、项目开发计划,培训计划、市场开发计划、销售计划、个人工作周计划,部门、项目组月度工作计划等等。

        对于一些重要的大型活动:如客户培训、市场宣传、客户公关等,要提前进行策划,充分做好准备工作,多方面采取对策。

        计划与策划,可以使工作更加可控,做到准备充分、提前预防。

        对计划的执行情况,要定期(如每周、每月、每季度、半年、全年)对照工作计划进行工作总结汇报。对计划的执行情况进行总结,汇总解决出现的问题,对偏离目标和计划的部分进行调整。

        .实行项目管理,强化执行与监督

        公司的管理不能只靠公司高层领导,对于部门经理、项目经理、销售骨干可以适当和将一定的权利下放,责任与之同时下放,形成管理的梯队,保持适当的管理层次,避免高层领导陷在繁杂的低层次具体事务中。

        对所有项目经理(包括开发负责人)要建立项目管理的时间、质量、成本意识,要具有商业头脑和意识,不能仅仅关注技术、开发进度,让项目的目标利益和公司的目标利益一致起来。避免出现这些现象:市场人员只关心签单,不管能否有利润;项目经理不考虑成本,只关心技术;企业赚不赚钱只有公司高层才考虑。

        要加强日常项目管理和检查监督,注重交流沟通。要把项目管理和检查监督工作制度流程化,通过这些检查活动保持快速高效的上下沟通,及时发现项目管理中的问题并加以解决。

        比如:

        (1)每周各级定期召开工作例会,汇报工作,工作任务分解落实,问题及时反馈。 总经理每周一召开项目经理(或包括重大项目)例会,总结上周工作,及时反映出现的问题,提出需上级提供的协调和帮助,落实本周工作任务。部门每周一召开部门内例会,总结各项目组进展,提出本周工作要求。每周五项目组召开内部周例会,总结本周工作,汇总遇到的问题,计划安排下周工作。会议过程形成工作周报或会议纪要,提交给部门经理。

        对于一些开发进度紧的项目,也可以举行每(或两)天晨会,项目经理及时掌握工作进度,解决遇到的问题。(实践证明,这一措施对于加强对项目组的控制,增进成员间工作情况交流,作用非常明显)项目、部门负责人要定期上报工作周报、月报。

        (2)员工工作日志和周工作计划

        每个员工周一要根据上周五例会制订本周工作计划,提交项目经理,项目经理审阅工作安排是否合理。

        员工每天下班前,记录当天的工作日志,每天或每周(最好是每天)向上级汇总报告。上级必须审阅工作日志、会议纪要和周报,跨级进行抽查(如果不认真执行追究相关人责任)。

        特别提示:从日常工作日志可以一定程度上反映员工对公司管理理念的认知程度,工作执行认真的态度,某些情况下也可以作为检查员工行为是否诚信的辅助依据。

        (3)遇到问题及时反馈,反馈不及时造成工作被动的,追究责任

        各种例会,给每一级员工都提供了反映问题的渠道,如果有问题没有及时反馈,也要追究有关人员一定责任。以便能够及时处理人员、管理、客户投诉等方面的问题。

        (4)定期考核

        应该至少每月对员工考评一次,员工填写本月工作总结,上级和员工面谈,对员工工作中存在的问题提出改进建议,引导员工改进工作。

        .开发过程控制和质量措施

        应该坚持一些软件过程方面好的做法,忽略一些形式化的做法,贯彻其根本思想和目的,重点加强几个关键步骤,形成对应的书面规范指南和文档模板。一方面加强开发过程的规范性,增加控制环节和手段,避免项目开发过程产生重大偏差;另一方面,通过开发过程规范,引进一些先进的软件工程思想和方法,提高开发效率和开发质量。

        软件开发过程的改进不是一日之功,而且技术人员往往更难接受改变旧的习惯和观念。 全面改进开发过程,执行CMM是比较有效的措施,但毕竟其成本和代价太高,而且国内企业往往只有其形式,见效比较慢。但毕竟CMM的思想是先进的,因此建议参考CMM和SPP,改善以下几个开发过程中的关键步骤。软件工程的实践证明越早发现软件开发中的缺陷,越早纠正花费的成本越低。以下几个开发的关键步骤采取相应的措施,比较容易操作,可早见效果:

        (1)需求管理

        软件开发的源头是需求的准确性,需求如果存在偏差,无论后面的开发工作质量再高,也注定达不到用户要求,而且需求变化引起软件返工或反复修改,也必然导致项目失败。所以首要的抓好需求分析环节,注重需求管理: 改进需求分析的方法,让用户能够尽早、直接、全面的参与软件需求。如:采取快速原型法,利用软件原型界面、调查表格等手段,开发人员用用户的专业语言讨论软件需求 每个项目促使用户有关键的业务人员自始至终直接参与软件需求,并负责确认需求 学会引导用户需求,如果用户无法明确软件需求,应该采取措施引导用户需求,至少要让用户认可因自己提出需求延误造成的工程延期和费用增加 软件需求必须形成详尽的书面需求,需求的变更要由用户方确认。软件需求变更的过程项目组形成历史记录,以便跟踪需求变化或作为用户方变更需求记录材料 用户方改变软件需求,软件技术人员负责技术方面的评价,我方市场人员要参与更过程,负责市场方面的谈判和风险评价,以保证公司的市场利益

        (2)加强软件生命周期过程的提高质量的措施

        在需求、设计、编码、测试、维护等各个开发阶段设置关键检查点,通过技术评审、走查、测试等手段review每个重要里程碑阶段的提交物,不断审视我们开发过程中的阶段工作产品,及时发现存在的问题,缺陷早预防,早纠正。 必须建立软件项目的技术评审流程,预防项目的技术风险,发挥公司集体的技术能力,避免带着重大设计缺陷进入编码阶段。但要避免技术评审形式化。需求分析说明书、软件设计说明书、单元测试方案、综合测试方案等要进行技术评审。

        编码阶段加强单元测试,可以借鉴测试驱动的原理,尽可能实现自动化测试;对代码指定有经验的人进行走查。

        软件的综合(或系统)测试必须认真执行,测试的方法、测试方案的编写可以学习借鉴一些好的经验建立编程、开发规范,尽可能使用设计工具和新的设计方法,通过设计工具维护设计文档,可以方便设计文档的维护借鉴一些先进的开发思想,XP方法、设计模式、RUP等        

        .改进用人之道

        企业应该设法提高工作效率以减少总开发时间,从而降低人力资源成本。但是“手工作坊式”的管理模式既无法满足大型软件项目的管理要求,也不利于企业人才培养和队伍建设。“手工作坊”企业最明显的特点就是一个项目依赖于一个或几个“有手艺的师傅”,也就是所谓技术上的“牛”人,他们离职队项目会造成重大影响,而且他们也可以以此要挟公司。另外,他们的“手艺”是不愿意外传的,整个企业的技术进步和交流都受到影响。

        企业需要建立“流水线”一样的工程化软件过程,建立过程规范,发挥集体的开发能力,才能避免“手工作坊”式的开发。因此,要“用正确的人”,首先要改进企业的人才观,不单单重视技术开发技能,重视沟通合作能力,重视对工程规范的执行能力,而不是去鼓励员工成为单一的技术“牛”人,让公司受重用的人成为公司规范化、工程化管理真正需要的人。建立这样的人才观和人才使用机制,才能建立良好的人才培养的土壤,能够创造良好的人才培养机制,企业才具有“造血”机能。有了这样的人才,也就非常容易做到在软件过程规范的下,“正确的用人”。这样会形成良性循环,企业也能吸引更高水平的人才的加盟。认为雇佣几个精通某些开发工具的程序员就能够完成好软件开发项目的想法是一个误区。

        企业招聘员工的理想状态是:以最低的工资招聘恰好满足工作需要的人。企业没有规范的管理,就算以高薪的条件聘请“救火队员”,也难吸引高水平的人才的加盟。

        .科学的项目管理和软件过程管理CMM是企业长远发展的有效之道

        从公司发展的长远来看,建立科学规范的项目管理和CMM质量体系是有效之道,公司发展到一定阶段,科学的工程化管理和项目管理是企业必须练好的内功。

        


用友NCV6.5增量版发版说明-项目管理用友UAP Mobile 技术完善的国产移动应用平台
用友软件和金蝶软件的比较分析用友商业智能平台-智能报表/智能报告
有什么值得推荐的国产项目管理软件?云平台上线方案计划书V2.0
针对顺丰物流公司收发件的软件体系结构的研究与分析政府信息化项目管理系统建设方案
支持快速开发的行业软件通用框架智慧物流机遇就在眼前
中国第三方物流企业发展现状及对策研究中国人寿保险股份有限公司网上采购管理系统案例
中国太平洋人寿保险股份有限公司北京分公司软件开发管理规定中科软保险风险管理系统介绍
中外工程项目管理软件对比分析研究中小型酒店客房管理信息系统设计
信息发布:广州名易软件有限公司 http://www.myidp.net
  • 名易软件销售服务
  • 名易软件销售服务
  • 名易软件技术服务

  • 中小型软件公司的项目管理和软件过程控制,中小型软件公司的项目管理和软件过程控制