前言
几年前,我去了位于山东青岛的一家大型企业的信息中心联络业务,因为涉及一个复杂项目的投标,我亲身感受到了企业应用市场的痛苦和彷徨。连续十个小时的会议,领导一会儿在,一会儿不在。领导在的时候大谈企业愿景,也不好打断;领导不在的时候,需求确认如同抽丝般困难,下面的项目经理也说不清楚领导到底要什么,好像什么都重要,却又什么都说不明确。
在这个庞然大物般的信息中心建筑中有整整一层是外包中心,来自全国各地的知名软件企业派出了数百名工程师,为这家企业驻地开发各种各样的业务系统。建筑外是尘土飞扬的城乡交错带,建筑内是密密麻麻的工程师工位。为什么要驻地开发呢?因为需求说不清楚,对接搞不清楚,文档写不明白,所以还是干脆坐在一起讨论吧。
在过去的五年中,我在企业应用行业中看到了很多的市场机会,也看到了很多痛苦的失败案例。这些失败案例很少是因为软件工程师的开发能力不足导致的,大多是因为需求定义的含糊、对复杂度的低估和缺少专业的企业应用设计流程导致的。而与此同时,因为不能满足客户的需求,企业不得不继续走定制开发的老路,招募一批又一批的开发人员,或者找一家又一家的外包公司,这其中畸高的失败率是行业以外的人所不了解的。科学有序地建立企业应用的设计流程、原则和方法成了这个快速发展的行业共同的需求。
企业应用也并非全新的行业,从20世纪80年代末的财务软件开始,到现在也已经有30年的历史。但在互联网技术全面改造消费者应用市场的同时,企业应用市场的革新却要缓慢很多。其中的最大阻力就来自互联网产品设计和开发能力与行业专有知识的结合。如果不了解企业运营和市场竞争的规律和具体需求,就很难设计和开发出能解决客户问题的产品。这和消费者应用设计有本质的不同,后者总是能够靠设计者的同理心和创造力来突破,而企业应用的设计是绝对不可能轻松迈过理解需求这道坎儿的。
反过来,在需求企业中,这个断层同样带来了很大的痛苦。无数的企业都已经相信只有全面数据化协作才能够解决业务流程中的诸多问题,但是不同行业吸引IT人才的能力差异极大,在很多传统的制造、零售行业中,很少有企业具备强大的信息产品设计和开发能力。即使诉诸外包开发,也面临复杂的需求分析、需求传递和研发协作等极具挑战性的问题。很多企业在信息化方面的困扰并非来自资金预算的限制,而是缘于能力边界。
所以这两年来,我一直有动力将与此相关的方法和最佳实践整理成实用的指南,给企业应用厂商的产品设计人员和来自企业的需求分析人员提供一个通用的工作方法,缩短需求和交付之间的距离,提高把企业应用一次做对、服务好用户的概率。这就是本书的初衷。
全书分成四大部分。第一部分重点介绍企业应用市场和用户需求,介绍企业应用的专业门类构成、企业用来解决自己IT问题的几种不同途径,以及如何正确地分析、整理和表达软件需求。
第二部分在厘清需求的前提下,给软件设计者提供一个打开思路的机制,从企业应用的基本活动、现有的工作方法和材料,以及企业诸多问题的科学管理方法三个不同的角度启发设计思路。
第三部分介绍软件设计领域最重要的实践——设计范式,并结合企业应用的特点,介绍如何制订设计原则、定义设计范式和开发设计范式库。
第四部分对企业应用设计过程中最常见的九个问题进行专门讲解,结合实例说明在遇到相关问题的时候应该如何进行科学的设计、更好地解决客户问题。
本书主要面向企业应用产品厂商的从业人员,包括产品、研发和市场职能人员,也包括对这个领域感兴趣的创业者。本书的前两部分对各行业企业IT部门的信息技术从业人员也能提供有效的帮助。