你知道企业软件做得都很烂的最大原因是什么吗?

我们都听说过这样的故事:某某公司将要开发一套大型的先进的ERP系统。这套系统将要取代三分之一的公司里现有的软件系统,可以消减二分之一的费用,每个人都会因此受益而高兴。但现实中,这个项目超期2年还未完工,花掉的费用比原先预想的多出2倍,最终做成的系统就是一堆垃圾。

8043877054_883963cf80_c

Photo by Quinn Dombrowski, used under the Creative Commons license.

于是,追责行动开始了。开发商用瀑布开发模式忽悠客户,收取了高额的需求变更费。软件购买者不知道如何在一个信息系统里扮演客户。需求说明书没写好/不详细/不严格/太宽泛。顾问从一开始就不称职。等等等等。

在失败的软件项目中,上面说的各种因素都有可能,但有一个因素却是几乎在所有失败的项目中普遍存在的:软件购买方并不是软件的用户。

这个简单的事实却隐含着巨大的祸根。是否听到过“客户根本不知道自己要的是什么”的话?必然,因为他们的确不是真正的客户。大部分的软件项目都几乎完全没有按照最终用户的思维模式去开发。它们的需求要么来自CTO的自负,要么来自CTO的一个碰巧开了一个软件公司的泥瓦匠兄弟的大脑,或者就是因为投标的价格过低所致。不管怎样,软件设计总是要符合开发商的最大利益,并迎合购买方决策者的喜好,却跟真正使用这个系统的人无关。

当然,并不是每个购买软件的公司都表现的那么糟糕。很多的公司领导是真正关心系统开发的好坏和关心这套系统的最终使用者。如果不是因为其它的原因,至少是这个项目开发的好坏会直接影响公司的运营。但即使这样也不会好到哪里去,因为他们缺乏一线工作员工的那些经验。他们不知道软件如何做才是最适合它们的最终使用者。如果软件的设计是由XXX组委会/顾问委员会设计的、并有个很大的政治口号,那就更糟了。

因为我们几乎没有办法改变当今的这些大型项目的投标招标签约过程,作为软件开发者,我们可以做些什么呢?一句话:换位思考。如果你接到需求后没有任何疑问的去实现它,那你应该自责。所有的失败都归咎于你也不为过。你的责任并不是照本宣科、需求上怎么写你就怎么做。你的任务是为客户——不,是为最终用户——做出有用的东西。为此,不论作为程序员这样做是如何的大不敬,你也必须越职去跟那些将要使用你开发的软件的人交流。

这就是为什么让软件程序员去体验最终用户的工作是如此的重要。如果你将要开发一套客服系统,就让你的程序员去客服中心工作一天或一周。如果你要开发Web应用,就让程序员和设计师直接面对用户反馈,不要把它们外包给印度。

为了理解软件的真正需求,除了直接跟真正用户交流或在现实生活中真正的使用,没有其它更好的办法。虽然很多的企业型软件项目在开发时没有办法先自己体验/反馈,但你绝对可以将程序员送到真正的客服中心,没有什么能比真正用户的需求和痛苦能让你更深刻的了。任何需求文档都无法提供你一个完全的真实情况。任何技术在没有专业领域知识的支持下都不会出彩。没有人会比那些冲到客户现场第一线的开发者更受客户喜欢。这就是我们Bear Metal公司在每个项目上坚持的工作方式。所以,我认为你也应该这样。

[英文原文:Do You Know the Biggest Reason for Why Enterprise Software Sucks? ]
分享这篇文章:

16 Responses to 你知道企业软件做得都很烂的最大原因是什么吗?

  1. menglf says:

    谁知道用户需要什么?当然是用户自己。
    只有真正的做一回用户,才能把用户体验发挥得淋漓尽致。

    • 秒大刀 says:

      即使如此,也必须时刻提醒自己:这只是一个用户特例,而不能代表所有或绝大多数用户。
      如果自己是决策者而同时没有足够有效的反馈机制,那就更要警醒。

  2. aaa says:

    然后可怜的程序员成了万金油。。。

  3. tongyou says:

    问题是有时候用户都不知道自己需要什么。
    常常是软件做好了用户就会说不是这样的,需要再改什么什么。

  4. walkonthesky says:

    有一点道理。
    窃以为失败的最大的原因在于crm/erp这类软件项目,软件其实只是个载体,实质上卖的是思维和理念,是要动根本的。说的更直白点,往往伴随项目的推进,企业的权力&利益格局会重新划定,项目背后的种种博弈和利益交换的结果,才是影响项目成败的决定性因素。

  5. LeenDX says:

    说好的分工合作呢?什么都是开发者去完成?呵呵呵!

  6. jeffywin says:

    干活不由东,累死也无功。

  7. koala says:

    企业里负责选型和购买企业软件的人往往是IT部的人,对企业本身的业务流程和实际问题往往不是太了解,因此他们也不知道需要什么样的软件。真正选对的企业软件是选对实施,而不是软件本身,有经验的顾问知道企业需要什么,能够引导企业走上较规范的流程

  8. andyf says:

    如果程序员米不够 有几个会这么努力呢

  9. heyuan says:

    原来是这样啊。欢迎回访

  10. 赵先生 says:

    原因在于项目管理方法不对,水平不高,要解决这些问题,推荐采用目前世界很火的敏捷项目管理方法,提高项目管理、需求管理、Bug跟踪、协同管理等水平。要真正落实敏捷项目管理思想,需要引进一个专业的敏捷项目管理软件,翼发云协同项目管理就是这样一个工具,详见:www.effapp.com/sepm/

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据