根据Standish Group发布的2013年统计数据我们可以发现,在2012年只有39%的IT项目取得了成功。
随着IT现在已然成为了公认的增长速度最快的产业之一,相关的各种需要进行完善和优化的项目也越来越多。与其他行业项目相比,软件行业很难确定项目失败的最终根源。不过,通过分析IT项目失败报告,一些常见的罪魁祸首可见一斑。
虽然导致每个项目失败的根本原因不尽相同,但是大多数我们可以归结为这三方面原因:可怜的预算、缺乏沟通和透明、不能适应变化和重新定向。
可怜的预算
俗话说,钱不是万能的,但是没有钱是万万不能的。钱在项目走向成功还是失败上面起着巨大的作用。即使是最精明的企业家和IT管理人员也都有因为资金的原因而导致项目失败的时候。
初创企业,大多资金有限,特别是在他们的发展早期。虽然一些初创企业可能会有一些财政援助,但是支持其整个开发过程所需要的资金还是很有限的,因为大多数风险投资者只有当你差不多能拿出成果——接近于成品的应用程序——的时候才会投给你大笔资金。
所以大多数初创企业只能选择怎么省钱怎么来。但是这可能不但会是最大的错误,也可能是最昂贵的。因为廉价所以很有可能会导致软件质量很差,而一个应用程序的根本在于能执行任务和操作,处理大量的请求,并且具备进一步扩展和开发的能力。
所以,如果代码的质量太差,很有可能前面所做的一切努力都会付之东流。即便是要将项目转移给另一个开发团队,用在修复代码库上面的时间也会大大影响预算。
另一个与预算有关的失败原因,与其说是因为缺乏资金,还不如说是因为没有正确地管理和使用资金。哪怕一家初创企业用于开发应用程序的资金远远超过所需要的资金额度,如果不能妥善管理,马上就会有捉襟见肘的困窘。
资金管理不善背后最普遍的原因是因为付款方式,通常被称为固定投标(Fixed Bid)。顺便说一句,在一个固定价格的基础上构建自己的应用程序,那你实际上就是自己将促成项目成功最关键的要素给抛弃了。
这种固定投标模式会破坏客户和开发人员之间透明和谐的沟通,原因是双方的目标是不一样的——开发人员想要尽快地做出产品,而客户想要以此收获更大的效益。
此外,这种固定投标模式也让人很难确切掌握这些钱到底是怎么用掉的,用到了哪里,因为它将项目直接看做一个整体,而没有了一个一个步骤。
缺乏沟通和透明
拥有一个开放的沟通渠道以便于全程规划、开发和部署的重要性,可谓是再怎么强调也不为过,原因是因为这是一个项目失败最直接也是最快的方式之一。众所周知,只有客户和开发人员紧密合作,才能保证客户的想法和要求可以明确地传达给开发团队。
缺少客户的参与可能会导致开发出来的应用程序与客户原本的初衷全然不同。这样一个不能满足客户需求的产品,又会怎么被认可是成功的呢?
不能适应变化和重构
事物总是在不断变化的,关于这一点,我想软件开发人员最是深有体会了。在软件开发过程中,出现变化和重构已经成为一种常态——无论是强迫的还是有意为之的。
在构建应用程序时,问题和障碍是其不可避免的组成部分,但是何尝不是发现新捷径的方式。变化和重构对于软件而言并不总是负面的。条条大道通罗马,构建软件也有很多方式,在我们解决问题的过程中,往往会突然灵机一动想出实现目标的新思路和新方法。
一个软件开发团队适应项目改变的能力主要依赖于项目管理方法。在软件开发中最常见的两种模式是敏捷开发和瀑布开发(较为传统)。敏捷开发方法在结构 上较为灵活,允许并鼓励软件变化和重定向。而瀑布开发方法则是线性的,并不允许项目在开发时发生任何变化——这个阶段完成后就进入下一个阶段,并且不允许 恢复到以前的任何阶段