许多IT部门通常游离于成本节省和成本浪费之间,它们应该是企业节省成本的中心但却往往成为企业投资的无底洞。很少情况下,它们能够实现足够的价值,成为利润中心。
判断IT部门能否实现投资回报的关键因素之一,往往与发生在部门内部的开发工作密切相关。下面列出了IT部门在开发业务上浪费金钱的10种常见方式。
1、沟通问题
沟通问题是项目失败的最大原因之一,在内部项目中更为突出。恰恰因为你与“客户”的工作在同一建筑物内,并且“客户”的工资跟你一样由同一个老板签发,但这并不意味着你们之间就不存在沟通问题。事实上,内部项目往往比有客户付费的外部项目沟通情况更糟,因为内部客户不必遵守合同,也不能通过任何有形资产价值来体现。
在这些情况下,通常没有任何激励方法让客户与你保持密切配合,而且如果交流出现问题,他们则会抱怨“IT部门设置了妨碍交流的壁垒。”由此带来的结果是项目延期交付或不能交付,从而导致时间和金钱的浪费。
2、流程问题
对于公司其它部门来说,内部IT部门往往更像是一个“孙子”,经常被其它部门呼来喝去,要求其来做这个做那个。这样是没有办法运作开发项目的。如果这种情况太多,IT部门最终会不胜其烦,他们会试图建立某种形式的流程来限制内部开发项目的数量,并得到领导的支持。然后,当其他部门认为“IT阻碍我们”时,领导态度发生变化,并且在没告知IT部门的情况下就撤销了对IT部门可以拒绝不按流程进行的内部开发项目的支持。
接下来的事情大家都知道,每一次会议都成了争论大赛,一方认为对方不按流程走,另一方则认为流程不正确。中止、无效、以及被迫执行的流程是对时间和金钱的主要浪费。
3、拒绝正式上线和反复(又名:坚持完美至上)
有的项目已经完成了99%,但却不能部署,因为有一个客户不够100%的满意,这样的情况你看到过多少次呢?之后,你恐怕得花费像你一开始写程序的时候同样多的时间来调试一些小问题。
如果项目已经完成了90%,那么继续开发并进行部署吧。如你所知,就是有几个瑕不掩瑜的小问题,这也没什么大不了。让用户先用着吧。或许他们就喜欢程序现在的样子,也或许他们产生了比那些没有实现的特点更好的想法。但是不管怎样,程序基本完成了却没有部署,就意味着将要花费更多的时间才能看到投资回报。
4、因小失大
通常,领导认为内部开发项目不值得投资。他们这样想:“我们从内部项目看不到收入,那么我们怎么能看到投资回报呢?”不过,如果项目不能产生价值,为什么要启动它呢?正如在成长过程中许多母亲告诉孩子的那样:“如果有些事情是值得做的,那就做好它。”
这并不意味着每一个开发者都需要一台配30英寸显示器的双核台式机,能收所有附加台的有线电视,还得配个司机好让他们能在早晨的交通汽车上写代码。但是如果开发者需要某种开发工具并能证明确实需要,就应该按开发者的要求去买。我有很多次看到,有的开发者拿着一年7万美元的工资,花三周的时间赤手空拳地进行开发,实际上这些工作通过1000美元的工具几个小时就可以完成。是的,购买必要的工具是省钱的伟大方式,对吧?
5、外包失误
大家都喜欢外包,不论是外包给有固定场所的承包商还是中途再外包给海外工人的中间承包商。但是,领导班子喜欢盯着外包中电子数据表上的数字,特别是在时间紧的情况下。问题是,外包有很多隐性费用,通常通过外包节省的钱远不如外包额外花费的钱多。
例如,当您通过人事机构引进承包商,他们向您收取的费用低于您直接雇用工人的成本加上间接支付的费用。但是需要指出的是,他们当然还要有利润可赚,那么您如何看待该机构找来的工作人员的专有技术水平呢?其实很容易,他们显然是故意夸大了人才的技术水平。 通常,人事机构不是超级巨星,可以坐等好工作上门,他们通过投放广告,并在要求的技术能力上写上您的需要,在两周之内符合条件的工资最低的人将会被雇用。正四处找工作的任何一个人都有可能来填补这个位置,这可能都算不上是选择雇员。
海外工人则完全是另一码事,海外开发的项目非常难以管理。可能的情况是,对于每两个海外工人您需要至少一名员工来管理他们,随时了解可能发生的事情。您可能认为时区、文化和语言上的困难都是小问题,但事实并非如此。为了更有效率地工作,下午一点以后你想与他们交流,这时候你必须叫醒他们。
我并不是说外包总是得不偿失的。但是仓促的外包计划肯定是既耗财又耗时的。
6、程序文档和用户培训
尽管问题3(拒绝正式上线和反复)使产品不能到达用户,但是如果用户拿不到程序文档或得不到培训的话会发生什么呢?除非你的应用程序非常容易上手使用,就像电话本一样,否则没有人能用它。应用程序闲置是对于时间和金钱的最大浪费,因为你经历了整个开发周期却没有结果。如果你付钱让你的团队坐在家里玩视频游戏,也会得到同样的结果。
如果您的项目计划没有提供出具程序文档的机会,或者没有人提出一个培训程序,你可能还要提高开发预算,花钱来对用户进行必要的培训。
7、开发者变成支持人员
假设你曾经做过支持工作,你还记得你赚到了什么吗?现在,作为开发人员,你赚到的钱增加了几倍吧?这里也一样。
开发人员的成本往往要比支持人员的成本贵很多。他们不仅工资更高,而且使用的工具、培训等花费也更多。支持团队需要密切配合开发工作,特别是对于新产品的开发。但开发人员不应当被用作支持人员,除非该项目是非常小的,否则太花钱了。
8、开发基础薄弱
许多公司都没有为开发建立良好的基础,尤其是那些只有少数几个开发人员的公司。开发工作不仅仅是一台安装了IDE硬盘的台式电脑和书桌上的几本书籍可以完成的。
公司应该配置必要的版本控制系统, 病毒跟踪应用程序等。开发人员可能需要更多的IT支持,如测试仪器(物理的或者虚拟的),独立于产品服务器的数据库服务器,或许还需要配置一个网段进行必要的容灾备份。
当开发人员不具备进行安全和有效工作的必要资源时,他们的工作会放缓,或者会以消极方式影响公司其他的工作。想想看……如果一个会计系统也运行在这个服务器上,如果一个开发人员错误的测试代码毁掉了一个数据库服务器,你是不是宁愿为开发测试设置一个单独的服务器呢?
9、不了解业务
内部开发人员应该对业务流程有足够的了解,以便他们能够持续开发,不必每一点小事情都需要向他们解释,并且客户应该对自己的工作有足够的了解,以便他们能够解释清楚。常常有人在收集客户需求的过程中发现,客户不清楚他们自己的工作流程。更糟糕是,当项目需要客户验收的时候,客户说: “我们不是以这种方式工作的;为什么应用程序会采用这种工作方式?”然后你向他们出示他们签过字的开发计划书,他们说, “唔,我们认为我们是以那种方式工作的,但我们真的不知道。 ”多么巨大的时间和金钱的浪费啊!
一旦你发现客户真的不知道他们自己的工作流程时,你就应该暂时停止开发,并告诉他们需要弄清楚自己的工作流程,然后才能继续下去。另外,提醒客户,您是开发人员不是流程设计师,所以你不会帮助他们解决自己的流程问题。
10、没有计算项目的投资回报率
许多IT开发项目都有一个根本性的缺陷:在获准开发许可之前没有人计算投资回报率。是的,投资回报率计算往往过于乐观,而且即使在项目投入生产之后也难以得到正确的(或甚至接近正确)数据。然而,有些项目显然是在浪费金钱。
在需要支付开发人员一年6万美元的薪酬,让其投入3个月时间编写应用程序代码之前,想想你需要节省一个部门(按一人一小时10美元的行政人员的工资计算)多少时间。当然,如果开发的程序每天能节省这些人员10分钟时间,并且这个部门有50个工作人员的话,该项目就是有意义的。但是,如果它只是取代了功能良好的文件柜的作用,并且每天只能节省三名工人两分钟的时间,如果背后没有强有力的外部原因(如法律或客户要求)的话,该项目就是不值得开发的。
将钱白白地扔向一个肯定不会有任何回报的项目,还有比这更傻的事情吗?
【编辑推荐】