软件项目成功的十一要素

一、关系
 这里的“关系”包含几层含义:
 1、政府的政策
 2、国家的法律法规
 3、和地方政府的关系
 4、和行业监管部门的关系
 5、和同行的关系
 6、和客户的关系

 不管你的技术再牛,只要大环境不允许,那么项目也就不可能成功。因为这些因素会决定项目的生死,而又不能轻易改变,所以很重要,最典型的案例是:google,铁道部网上订票系统。

二、领导的决策
 在一个公司里,领导具有最高的权利,对所有事情有绝对的控制权,因此他的决策能够影响项目的发展。对于一个英明的领导,会听取底层的声音,会合理的决策,来保证项目的顺利完成。而一个糟糕的领导,武断且刚愎自用,冒充什么都懂,乱指一气,只能让项目走向死路。

三、监管
 这里的“监管”是指项目内的工作监管。
 很多项目,都有一个很好的计划,但是最后总是无法做到计划所期望的一切,是何原因?我的总结是没有监管。虽然我们花了很多时间去做计划,写出一个足够详细的实施方案,但是,在让人去做的时候,他做的是否到位,并没有人去检查,这样就导致实际的工作偏离计划。比如:计划要一周开发的工作,结果做了2周还没完成。计划花十万的工作,结果用了30万。很多公司会说,我们在计划中是有审核的过程,但是实际工作中是否有人审核?审核的工作是否严格?审核的工作是否有监管?很多时候是根本没人去监管,或者只是走走形式。这样的情况,在只靠人工去管理的公司,比比皆是,而且很多公司还会说这是“人性化”管理,其实这个是没有管理。项目的监管,是对每一件事情的执行结果都有个确认的过程,来检查其执行的质量,以及与预期目标的距离。如果发现和目标不一致,偏差比较大的时候,及时触发紧急处理流程,来执行相应的补救措施,避免项目的失败。因此,监管的存在,是可以控制项目的发展,避免项目发展的失控。人不够,时间不够,技术不行,代码质量差等都是可以解决的问题,只要在情况刚发生的时候就处理,都不会对项目有太大的影响,但是,如果一直没有发现,直到项目接近尾声的时候才发现的话,那你想成功,也是妄想。
 一方面是必须使用自动化的方式来增加监管。在公司内,项目的管理,工作的管理等都应该通过信息管理系统来操作,在每个工作的流程上都需要设置必要的后继人员来检查,如果工作是部门之间的,必须要有部门主管检查确认,方可提交给其他部门,如果发现工作不到位,都可以直接打回,要求修改,同时可以发警告信息给管理者。另一方面增加专职的监管人员,建筑行业的监理,软件行业的代码review,项目经理等,都有监管性质。对于监管人员也需要被监管。

四、需求
 这里的需求有两个含义:
 
 1、项目的目标
 2、项目的计划
 也就是在项目启动的时候,已经制定的要达到的目标,方向。这个是指引项目往正确方向发展的标志。这个必须明确,且一直贯彻,在项目的执行过程中不能出现大的变化。
 我曾经接触过一个项目,项目初期是计划做一个社区化的休闲游戏,但却没有制定出具体那些是社区化的元素,然后在项目的开发过程中,策划人员借鉴其他RPG游戏的元素,最后游戏发展成了完全的战斗类RPG游戏。


五、流程
 流程是指引大家如何去做的规范。
 由于人的思维活跃性,同一件事情,不同的人去做的话,做法是会不同的。而不同的做法,就会带来品质的不同,以及工作交接的时候更多的沟通成本。因此对于一件经常做的事情,尽量保持单一的工作方式,以便获得一致的品质,尽量少的解释成本,是有必要的,因此,需要对这个工作制定一个标准的工作流程,然后在项目中宣传推广。目前,每个公司在工作上的流程都是不一样的,有很大的区别,所以新员工都有一个流程熟悉,适应的过程,这个不能只靠员工自己的接触去学习,应该在新员工培训中做工作流程的宣讲,同时利用自动化的信息管理系统来强制执行流程的跳转,保证工作上的一致性,避免出现任意跳过流程的现象出现。
 任何人都有不喜欢被管束的性格,特别是现在的年轻人,因此在工作中,如果有人总是来挑毛病,总是想跳过这个人,这样一来,原有的监管就被跳过,质量就难保证。这个在“人性化”管理的公司里经常出现。

六、成本
 如果一个公司很有资本,那是不是做项目就不用考虑成本了?
 恰恰相反,越有钱的公司,做事情越要考虑成本。现在有很多大公司,因为有钱,做事情不计成本,最终导致项目失败。
 对于一个新开的项目,应该竭尽全力来控制成本。举个简单的例子:比如做一个游戏:
  投入成本 100w                    收入200w                  赢利100w

  投入成本 500w                    收入200w                  赢利-300w
 目前很多的行业,已经不是一个人垄断的市场,每个人只能获得一小部分市场,因此他的盈利能力是有限的。在有限的盈利能力下,节约成本,其实就是在赚钱。我曾参加过一个项目,项目初期就花了200万去买了一个商业搜索的功能,人员一度达到50多人,项目进行了2年多,最后以失败告终。
    同样一个项目,如果控制成本,就可以赢利,而不控制成本,就会亏损。现在的市场,已经很难有一个产品一统天下的局面,而是多个产品来瓜分市场,彼此之间竞争的就是成本控制能力。控制的好,你就可以生存,否则你就会被淘汰。

七、时间
 时间是项目中经常要控制的要素。
 对于商业合同,时间往往直接就等于金钱。但在项目中,最常见的也就是时间不够,导致项目延期。对于大型项目,完成的时间很难估计,另一方面,开发中的不定因素太多,导致浪费时间去解决问题。再者,如果工作没有好的计划,执行没有到位的监管,导致工作拖拉,质量低下,不得不返工,这些都是最常见的浪费时间的现象。
 要控制好时间,首先要做好计划,将工作分解的足够细,可以确定每个环节所用的时间,同时给足必要的余量。采用原型开发模式,逐步迭代开发,降低开发过程中的风险,有利于控制开发时间。

八、质量
 一个项目的好坏,最直接的反映是在产品的质量上。
 影响产品的质量的因素,一个是技术的选型,选择一个成熟可靠,且合适的技术,合适的学习难度,可以开发出稳定质量的产品,简单的技术可以更好学习,更好维护。另一个是选择有经验的开发人员,技术可以学习,但是经验只能靠时间积累,有经验的开发人员可以考虑更多的问题,比较全面的处理问题,更容易获得一个好的品质。同时,要一直保持良好的监管,对于如何工作都要做检查,达到标准方可以继续后边的工作。在工作中,应该经常挑刺,任何问题都应该高度重视,及时处理,不要让一个小问题几个月都没处理。通过这些步骤,可以获得一个较好品质的产品。

九、人
 人是在项目中最不可控制的要素。
 一个是工作的方式的不同,每个人做事情的方式方法都不同,容易出现矛盾,不能衔接的问题,因此,作为一个团队,应该使用一致的工作流程,来保证工作的顺利执行。
 一个是工作评判标准的不同,对于一件事情,有的人觉得好,有的人觉得坏,所以会有争执,因此,应该制定工作评价的标准,可以客观地评价工作的好坏。
 每个人的技术技能的不同,因此在分配工作的时候,要注意工作者的能力,分配相应难度的工作。

十、技术
 技术是决定是否可以做出你需要的产品的要素,但不是决定你的产品是否能在商业上取得成功的必要条件。
 我们做的产品,都是给用户使用的,对于用户,他并不关心你是用什么技术来实现的,他关心的是产品是否能满足他的需求。因此在能满足用户需求的前提下,选择最简单的技术,是最节约成本的选择。

十一、资源
 这个是指项目中的环境,设备等。
 能够提供一个良好的环境,充足的软硬件资源,可以让你的项目高效地执行。虽然资源好,项目执行会更好,但在接触的项目中,有时候往往资源条件不好的项目,做出的产品会比资源条件好的项目的产品更好。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值