中小型软件企业开发现状与项目管理现状

中小型软件企业开发与项目管理现状

国内的中小型软件企业虽然涉足软件开发业务,但对软件的认识停留在“程序员编代码”的水平上。对企业内部的软件开发缺乏管理意识,具体体现在以下几方面: 首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单; 再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档; 最后,缺乏后续维护。

软件开发组织

与专业软件公司的软件开发组织相比较,中小型软件企业中的软件开发工作机构小、人员少,开发人员待遇低,难以吸引高水平的人才,人才流失率达到50%以上。由于没有高水平的开发人员和技术管理人员,软件工作状况处于初级水平,软件开发不能按照软件工程的要求执行。
  软件系统建立过程中需要多方面的人员:需求方人员、懂得软件项目管理的人员、软件程序员、系统分析员。普通企业由于对软件生产不了解,往往由软件需求方人员对软件工作直接管理。这个工作显然超过了其能力范围,不符合软件工作的相关原则。业务人员作为项目的负责人,既不能合理地计划软件开发工作,也不可能管理好软件工作中的各种风险,这将使软件开发处于无序的风险状态之中。

软件开发沟通

在需要团队协同工作的今天,沟通可以说已经变得无比的重要。在软件业,沟通可以说是快速学习和掌握新知识,达到技术上更高层次的最佳途径。如果小组成员在协调上出了漏洞,会导致很大的问题,所以项目负责人必须随时监控开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。
  项目组与组织之间、项目组与项目组成员之间,甚至与一个项目组的不同成员之间,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。中小型软件企业开发人员少,意味着不同人员的程序之间交互、接口相对少一些; 缺少文档资料或者文档资料不规范也是软件项目管理中的普遍问题。由于讨论时忽略了某些情况,当大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却不能形成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头做起。

软件开发工作流程

与一个标准的软件开发流程相比,中小型软件企业内部的软件开发“节省”了不少步骤。例如不经过单元测试而直接进入系统测试等。由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,但某些边界情况容易被忽视,很久之后才被发现。但是如果对每个模块进行单元测试时都进行边界测试,就会很容易消除这些隐患。

还有就是边做边改模型, 当一个软件产品在没有规格说明或主要设计的情况下被开发时,开发者往往不得不重新对产品编码多次直到他们得到正确稳定的产品。这种开发模型就是边做边改模型。边做边改模型的最重要缺点是存在于需求。设计和实现中的错误要到整个产品被构建出来后才能被发现。

软件危机

回顾软件危机, 现在的中小型软件企业也存在这样的问题:

(1)对软件开发成本和进度的估计常常很不准确。这种现象降低了软件开发组织的信誉。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。

  (2)用户对“已完成的”软件系统不满意的现象经常发生。软件开发人员和用户之间的信息交流往往很不充分,“闭门造车”必然导致最终的产品不符合用户的实际需要。

  (3)软件质量保证技术(审查、复审和测试) 没有坚持不懈地应用到软件开发全过程中。

  (4)软件常常是不可维护的。由于开发过程没有统一的、公认的规范,软件开发人员按各自的风格工作,各行其是。很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,难适应用户要求增加的新的功能需求,软件的复用性不高。

  (5)软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。软件通常没有适当的文档资料,文档资料的作用是:管理和评价软件开发过程的进展情况,开发者与用户和开发者之间通信的工具,维护工具。

  (6)软件成本在计算机系统总成本中所占的比例逐年上升。硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件,规模和数量的不断扩大而持续上升。
  (7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。

信息系统与软件工程

以下mindmap已经缩略一些了节点:

团队的默契度与效率

《人月神化》中提到:需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果.

团队的默契程度对软件实施效率影响很大。一个经过长期磨合相互信任、形成一套达默契的做事方法和风格的团队,可能省掉很多不必要的沟通,相反,初次合作的团队因为团队成员各自的背景和风格不同、成员间相互信任度不高等原因,要充分考虑沟通消耗。

软件企业人员流动率高的特点导致团队凝聚力和默契度的锤炼比较困难。而凝聚力和默契度的需要长期的、大量的内部沟通和交流才能逐步形成,由此不难理解持续良好的沟通和交流是一个团队的无形资产,自然,稳定、默契的开发团队形成一个软件企业的核心竞争力的道理。

还有一点不容忽视,那就是软件开发这种以人脑为主要工具的创造性很强的作业,开发人员的心情和兴奋度对个人工作效率影响很大,而一个人置身于氛围良好、合作默契的团队中心情一般较好,这种良好的氛围所能带来的能量是不可估量的。

加强软件生产过程规范性

软件开发是一个知识密集型领域,对人才的依赖很强。加强生产过程的规范性并规范管理,可以加强人的执行能力。
  在中小型软件企业中,很少有成本核算和严格的进度控制。影响项目的因素也比较多: 需求的提出比较随便,甚至业务需求还不明确的时候就要求程序员开始编程序没有合理的措施控制透彻的分析业务需求; 时间进度由领导规定,而不是根据需求客观确定,这样使软件质量根本无法保障。因此要通过加强管理使软件开发过程可视化,软件开发工作协调、有效。
  在规则明确、组织机构确定、有一定的理论认识之后,可以通过一些管理要求,强制执行软件工程的一些基本过程,要求的提出要简单明了。例如: 项目要有正式立项启动、项目结项,有时间控制要求、计划要求。要求项目有开发计划,计划中确定开发工作的人员保障、开发周期、开发进度计划,并允许项目进行中在一定范围内调整计划与进度。上级领导也应出面协调和帮助解决相应问题。

--------------------------------------------------------------------------------------------------------------------------------------------

今天先到这儿,希望对您在研发管理, 团队管理, 项目管理, 产品管理 有参考作用 , 您可能感兴趣的文章:
软件开发模型与过程改进
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog

时间: 2024-10-08 12:11:18

中小型软件企业开发现状与项目管理现状的相关文章

如何在中小型软件企业推进PMO(项目管理办公室)建设

PMO,即项目管理办公室,是项目型企业中管理和协调项目的机构.我国目前的软件企业,以中小型企业居多,而这些企业中,又以项目型企业居多.这些企业,是最需要提高项目管理水平的,而往往这类型的企业,又是最缺乏项目管理的. 我所说的中小型企业,是指50人以上,300人以下的以软件或系统集成为主业的企业.以我所见的而言,大部分企业的组织结构是以下两种: 第一种,以职能划分,按照职能分为市场部.研发部.技术部等. 第二种,按行业划分,按行业分为政府事业部.电信事业部.电力事业部等. 以我所在的公司为例,我所

中小型软件项目开发一般流程建议

一:编写目的 本文档的编写旨在探寻规范的软件开发流程.加快软件开发速度.提高软件开发质量.降低项目综合成本. IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而我们要做的就是:提供优质服务.项目周期短.成本低廉 二:总体说明 项目从用户需求说明书的提出,到系统的第一个完整版本的交付使用经历了若干或复杂或简单的过程,但不管项目大小如何一般需要经历以下几个步骤: 1.  

国内一些大型软件企业现状

过去,国内有一些大型系统集成的软件企业,早在10年前他们做的主要是商业智能,现在转向所谓高上大的大数据产业.一般研发中心都在北京等一线城市,在各个省市有自己的分公司或项目组.当然他们都通过了行业相关资质.如CMMI-5,ISO9000,但是实际上只是个表面工作,都可以用钱买的,只是为了资质.在各省市的项目组仍然是混乱的软件过程,从总公司拿一套系统的源代码过来,修修改改,就强行给客户上系统,客户不清楚细节,后面发现了许多BUGS,又开始疯狂改BUGS,最后变成项目到处扑火.这和软件危机差不多了.试

中小软件企业的研发团队建设(一)团队的组建

在软件企业中,研发部门负责的主要的工作是软件设计与研发,都是强智力创造的活动,所以团队建设对与研发部尤其显的重要.优秀的团队是研发部门能获取成绩的根本. 我对研发团队组建的一般流程的认识为: 而中小软件企业团队建设中的有自己对应的特点: 主要的劣势是 1 招人经费不足,企业背景没有吸引力. 2 人员的稳定性先对与大企业相比很低. 主要的优势 1 部门建设灵活,可变性高. 2 老板"唯利是图",注重个人技能带来的收益,而对人情关系网比较轻视. 那么在中小型软件企业中构建团队就需要我们扬长

软件企业如何适应项目管理

现在社会的变化非常快,如今很多软件公司都是依靠开发项目来发展.倘若还应用传统管理模式来运作,是很难适应IT行业的节奏.那么,软件企业如何适应项目管理.这成为很多软件企业需要思考的问题. 软件企业初涉项目管理,容易出现问题多多的局面 项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事.一个典型的项目基本可以划分为启动.计划.控制.执行.收尾五个过程.而软件企业实施项目管理的挑战,可以说是贯穿于项目的整个生命周期. 启动过程面临的第一个挑战是"项目目标含糊,充满冲突".项目的利益

高考志愿填报:java 软件 程序员 目前的就业现状

大约在17年前,也就是2000年,学计算机专业的学生可以有大部分都进入本专业,并且就业非常容易.哪怕只会office套件,想找个工作也很简单.那时候学计算机就是最热门的行业. 那时候,搞Java的还是在使用applet,企业级开发使用的都是EJB,jsp,servlet等原始技术.前端都是写js和html4. 2003年的淘宝首页 大约10年前,也就是2007年,只会简单的jsp和servlet,找工作也没有问题,但是那时候已经出现了大量的框架了.学生需要学习的内容多了许多,除了要掌握基本技能之

企业为什么需要软件定制开发?

软件定制开发就是根据用户的要求去开发软件功能,要求开发过程遵循软件工程规范,并能够在软件正常运行后提供常规维护和功能扩展开发.我们会根据企业的要求,结合您的实际情 况进行定制开发,量身定做适合您使用的软件. 为什么要使用定制化开发软件? 1.不同的企业有着不同的企业文化,有自己特定使用习惯. 2.每个客户的需求都不一致,通用型软件无法满足客户的个性化需求,不同的产品伴随不同的生产流程. 3.随着企业的不断发展,对软件功能的要求也要跟着变更,通用性的软件已经很难适用企业不断发展的管理需求. 4.客

软件项目开发流程

软件开发流程(Software development process) 首先 看一下基本软件项目开发流程图 其中 1.需求分析: 通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书. 2.总体设计: 通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档. 3.详细设计: 此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明). 4.开发编程: 对系统进行代码编写. 5.测试分析与系统整合: 对所有功能模块进行模

技术开发团队的项目管理工具

前言 小型技术研发团队,往往开发流程比较简单:整理需求/bug.分配任务到个人.完成指定任务.验收.涉及到的相关管理工具主要是:项目/任务管理系统.源代码管理系统. 项目管理系统 从09年开始,我用过ActiveCollab做项目管理工具:后面12年开始使用禅道. AC从0.7以后的版本转向商业,但毫无疑问,这套系统给人一种优雅的感觉:而禅道,本身功能非常强大,一看就是一个工具,只是稍微缺少一点那种文艺范. 其实,日常生活中,个人还在尝试使用很多新兴的任务管理平台,像 Tower.TeamBit