为什么软件项目会失败
A. 项目为什么会失败
我这里暂且认为无法交付成果物,或者是交付的成果物无法满足客户需求。
我曾经旁观(没有参与其中)过一个项目,这个项目可以说是完全失败了。先说一下最终的结果:
代码量:客户端、服务器端、数据库PL/SQL等,总计大约是120W行。
周期:开发大概是4个月,测试三个月。
结果:单体测试、结合测试合计发现Bug数近7000个。
这个项目由于到结合测试后期,发现Bug在不断的增多,而且每修改一个Bug,会引入至少一个的另外的Bug,于是项目宣告失败,项目组成员解散。
很优秀的程序员,天天加班,那么辛苦,换来的却是失败的结局,搞得从上到下没有人愿意再谈论那个项目。
那已经是很久之前的项目了,前不久跟一个朋友聊天的时候说起,然后那个朋友(曾经参与过)就对我发牢骚,总结起来,也不过是以下几点:
1)项目周期紧,每个过程的时间太短。上面说过,开发过程四个月,需求分析、基本设计、详细设计、编码,每个过程大概是不到一个月,而最终的代码量是12W行,产出/时间,这个比值太大,这样就有很大的风险。时间紧,很多的工作都不够充分,比如WT、CodeReview、项目审查等,这些工作没有做,造成这个项目的质量得不到保证。
2)需求分析阶段,没有充分理解业务,造成了业务逻辑的人为复杂化。那个朋友负责一个画面的一部分,为什么是一部分呢?整个画面100多个控件,关联到40多个表,完成画面的雏形代码量是15K,这个只是画面部分,这个画面整个技能的代码量在30K左右,这样的代码量足够完成一个小系统了。如果在需求分析的时候,把业务逻辑理清,就可以把大画面分割为多个小画面,这样不管从设计还是编码测试的角度来说,都会在很大程度上降低风险。
3)项目管理不善。整个项目在每个阶段开始的时候,没有给出相应的CheckList,于是每个成员写出来的成果物风格不一,中途有项目组成员的离职,给别人理解这部分成果物带来了很大的困难。详细设计的文档风格不统一,跟别的模块接口没有商榷,代码风格极差,测试力度不够,一个很简单的例子,那个项目组中竟然有类似的声明:ArrayList list01。前面说过,由于周期短,CodeReview没有进行,造成了代码质量差,直接影响了测试Bug的修改。而这些事情项目负责人没有很好的控制,本来就暗藏危机的项目更加雪上加霜。
在测试的时候,以上的危机全部爆发了,Bug越测越多,数量与日俱增,最后到了无法维护的地步,代码没有人敢去修改,更没有人敢提出在设计上修改。于是,项目无法交付,宣告失败。
B. 为什么软件创业这么容易失败
是技术问题还是市场问题?或者是其它的原因?许多人分析主要的原因在于创业过程中,创业团队成员之间出现了矛盾,说得不好听就是:几个股东意见不一致,发生内斗或内耗;说得好听一些就是:缺少一支优秀的创业团队。由此可见,一支优秀的创业团队可以说决定着一家企业的成与败,失败的创业者从创业一开始,就奠定了创业失败的命运。 “铁三角”理论:即技术、市场、运营三个角色的人选都要到位,而且都要是狠角色。程序员的角色当然是定位在技术方面,你应该是研究型的领导,你拥有多年的软件项目/产品开发与管理经验,对各种技术或工具都是熟门熟路的,你解决问题的能力很强,你能写出漂亮的技术方案,最关键的是你对某个行业的业务流程理解透彻,而且知道客户需要什么,有些创业者的技术确实很NB,但好象什么行业都做过,也都知道一点业务流程,这是很危险的,因为你会渐渐明白,很多时候技术只是实现业务流程的一种工具,对国内的很多IT企业来讲,实际上并没有什么值得一提的核心技术,核心的是对某个行业的业务流程的深入分析与理解,比如财务软件,ERP软件等等,重要的并不是用什么开发技术或数据库技术,而是业务模式与流程,所以,在诸如此类的企业里,最关键的人物不是开发人员,而是那些头发稀少老态龙钟的行业顾问或专家们。 最头痛的是市场,得市场者得天下,小弟虽还不算太老,但对一点深有体会,也曾栽在这里,可以毫不夸张地说,国内很大一部分的IT企业都是以市场为导向,也就是说先有市场,再创业再技术,而不是以一项技术或产品为导向,然后去开拓市场,这种方式风险太大,除非你的产品或技术是真正的核心与独一无二的,而且通常需要的启动资金较大,对杯水车薪的程序员来说,并不是理想的创业方式,除非VC们都变傻变笨了,毫无理由地给你muchmuchmoney,但这种好事会出现吗?我们需要白日做梦异想天开,呵呵。因此,我们在创业时,必须将市场放在第一位进行考虑,也就是要寻找一位市场高手作为合作伙伴,他必须具有强大的市场策划与执行能力,而且经过多年的努力,他已经建立了较大的市场资源,这些市场资源对于你们新成立的公司是有用与有效的,新成立的公司通常都是股东自已来做市场的,你千万不要抱有那种自以为是的美梦,比如我们去招聘一个市场经理,然后大张旗鼓地帮公司开拓市场,这种人太难找了,代价也太高了,聪明的做法是找个NB的市场合作伙伴,让他来带领普通的市场人员,真正起关键市场作用的应还是股东,他是市场效果的直接受益人。 大家可能都知道微软现任CEO史蒂夫·鲍尔默先生,这个绝顶聪明的老家伙真是一个天才的运营家,他总是热情洋溢、幽默有趣、极富鼓舞性,具有很强的运营策划能力,微软有了他,比哥可以天天去海岛钓鱼,或者陪老婆做做慈善事业。对于一家企业来说,是很需要这个角色的,他是公司战略的决策者,他能够全面周到地分析整个公司面临的机遇与风险,考虑成本、投资、收益的来源及预期收益,甚至还包括公司管理规范章程、长远规划设计等工作,他总是激情澎湃,他的讲话总能给昏昏欲睡的程序员们带来极大的鼓舞以及对未来充满了各种各样的美好蓝图。 以上我们分别讨论了各个角色的能力要求以及在企业中所起的作用,下面我们来简单讨论一下角色之间需要注意的一些问题。 首先,每个角色都是独立的个人,每个人都有自已的观点与价值观,看待问题的角度与态度可能都不同,因此矛盾与冲突无法避免,但必须做到就事论事,任何的矛盾能在较短时间内解决与平息,所此要求各成员之间必须很熟悉与了解,每个人都非常清醒地认识到自身的优劣势,同时对其他成员的长处和短处也一清二楚,用网上一朋友的话来形容就是: 一个教室学习过的同窗,一个战壕战斗过的战友,一个赌场玩过的赌友,一个房间嫖过的嫖友,呵呵。 千万记往:创业团队不需要陌生人! 其次,各个角色之间必须具有互补性,能力最好不要重复。
C. 什么是软件开发项目和软件开发项目管理,软件开发项目成功和失败的要素分析
你很多问题问重复了,梳理下
1、什么是项目——项目是为提供某项独特产品、服务或成果所做的临时性努力。
2、什么是项目管理——在项目活动中应用知识、技能、工具和技术以达到项目要求的过程。项目管理师通过应用和综合比如启动、规划、执行、监控和收尾等项目管理过程来进行。项目经理是负责实现项目目标的个人。
软件开发项目就是某种软件研发的项目,而软件开发项目的管理就是对正在进行的软件开发过程进行控制和管理的手段。
软件开发项目成果和失败的因素很多,严格把控项目的九大范畴:综合管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理,项目成败由你掌控。
软件开发项目管理的环境有很多,我公司蓝云EasyTrack 是做项目组合管理软件,采用的就是JAVA进行开发,采用的J2EE技术和多层体系架构设计,可以在不同的操作系统、应用服务器和数据库系统的环境下工作,提供与其他各类软件集成接口。
有兴趣可以了解下,深圳蓝云EasyTrack PPM是项目组合管理方案的专家。
D. 一个项目失败的根本原因包括哪几个方面(软件工程)
。。。软件工程 一个项目失败的根本原因? 这个应该是没有标准答案的吧
个人感觉
对项目的理解没有到位 即客户(对象)需求 软件做出来就是要服务的 明确了对象的需求 才能做到有用 再说下去就涉及到很多方面了。。。-。- 领导?资金?技术?实力?
E. 项目管理失败的原因
1、企业内部沟通欠缺
由于企业内部沟通欠缺,各部门各自为政,缺乏协同工作的氛围,无法完成流程优化,只好在工程项目管理软件建设中将原有流程自动化。有问题的流程被自动化后,原本存在的问题会更加凸显,工程项目管理软件实施失败也在情理之中。
2、只考虑企业内部需求
只关注企业内部需求,造成策略错误,搭建的时候只考虑企业需求,工程项目管理软件实施运行后工程项目信息无法在系统中自然流转,对相关部门的工作没有帮助反而增加了工作量,工程项目管理软件自然会遭到员工抵触。
3、需求不明
我们会首先发现对项目的定位、职责和任务不清楚;对项目要解决的问题不清楚;对面临的状况是什么不清楚;对产生这些问题的原因不清楚;对如何解决这些问题或满足客户需求清单没有共识;各级用户和项目相关各方不清楚;最后是有些什么资源或数据来源支撑其设想不清楚。
4、忽视员工对系统的培训
基层工作人员不会使用工程项目管理软件。这个问题以前比较常见,但随着80、90后逐渐成为职场主力军、工程项目管理软件操作界面不断更新。此时企业也不能忽视培训,培训内容应由通转精,组织员工深入学习工程项目管理软件的规则与操作。
5、缺乏规划
项目经理和项目团队往往纠结于项目中的任务细节,没有对项目的整体目标或短期任务目标进行一个一致的规划。项目经理需要经常通过举行简短但一致的会议可以帮助团队有效和高效的运作。项目经理也需要花点时间和每个人来沟通规划目标,并跟踪那些待处理的任务进展。
6、控制过度
作为项目经理,确保项目中所有可交付成果的完成是自己的责任,但是如果过度的控制团队,则可能会产生负面情绪而不是积极的情绪,这种情绪会损害项目的交付质量和进度。项目经理需要明白项目团队需要足够的自由来增加创造力,以及足够的空间来开展工作。
7、进度不明确
每项目都有他们自己的项目周期。时间期限的确定可以是项目发起人,项目经理,也可以是通过整个项目团队成员的仔细估算。当项目开始的时候,如果没有一个成熟的项目管理工具,我们就无法清楚的知道项目的进度,因此会产生一系列的问题,进度猫可以有效的解决这个问题,项目经理可以根据甘特图清楚的看到项目进度。
F. 软件开发过程中会有哪些风险
1、未经权威部门确认的功能标准、开发规范以及质量技术标准,均可能导致软件无法达到预期标准,从而引起质量风险。
2、在理解项目标准及范围等问题上,企业管理层、项目组以及技术性人员的接不一致,导致计划与资金安排有所改变,因而极易引发风险。
3、潜在的维护、验证、接口、实现以及设计等环节出现的问题,存在技术空白及未知领域,为软件开发工作带来较大的风险。
4、来自于外包项目组、客户、国家政策以及市场等方面的变化及压力,这类风险具有明显的不可控特点,一旦遭遇,应谨慎对待,及时制定解决策略。
风险防范与控制措施
1、出台合理的软件开发模式与相关规程,确保开发工作合理、有序进行,并符合国家出台的相关标准及要求。
2、对于项目组全体成员的开发行为进行严格规范,加强小组成员之间的交流与互动,以免由于沟通与交流不当,引发软件开发风险。
3、定期开展业务和技术交流大会,引导技术人员摒除过于落后、陈旧的工作思想,通过引进先进的技术、设备与验证方式,明确技术人员的预期发展目标,令其不断的改进自我、完善自我,提升技术及设备的质量及效果。
4、对开发所用的方法及技术进行客观、合理的评价,避免由于无法把握技术而引发风险。
5、建立完善的风险应对程序与管理计划,如此一来,才能确保在发生风险的时候,能够快速、合理、技术的作出反映,并通过制定适宜的策略,对风险进行专业性处理。