数据驱动软件的遐想

数据驱动,通常定义为:一个数据驱动的组织会以一种及时的方式获取、处理和使用数据来创造效益,不断迭代并开发新产品,以及在数据中探索(navigate)。有很多方式可以评估一个组织是否为数据驱动的,如:1. 产生的数据量;2. 使用数据的程度;3. 内化数据的过程;以上定义摘自(http://www.jianshu.com/p/3bef2049a5ce)。此定义定位于组织,下面我想谈谈,数据驱动与软件,以数据驱动为目的的软件设计,也就是说定位于软件设计、开发的数据驱动。 软件设计理论中,是自顶向下的设计方式,是对用户需求的真实响应。但是,当前面对大数据的时代,用户在数据面前常显得束手无策,无法想要知道自己想要什么,能得到什么?也就是说用户无需求而成我们软件设计者面对的难题。 面对庞大复杂变化的数据,用户无需求,其实就是一个天大的需求。我们软件就是要在用户无需求中找到用户想要的需求,并帮助用户实现需求,从而为用户找到数据存在的真正价值。而围绕数据开发软件来发现用户需求并响应需求,从而为用户创造效益,这就是数据驱动软件的价值理念。 以往我们开发软件紧紧围绕用户需求来实现,用户怎么说,我们就怎么做,很长一段时间,我们做的软件最后成了四不像,但是只管用户满意收到钱就是完美的。后来,用户也开始懂软件了,提出的需求一针见血,紧扣业务真实需求,软件开发也就越来越有价值了,因为软件开发短而快的解决了用户需求。现在用户面对大数据,用户又回到无助的状态,面对错综复杂而又有规律可循的,但就是肉眼无法窥探的潜在而又价值无限的数据,用户自己无法提出问题,一脸茫然的表情,就是对我们软件开发者的期待。 所以,我们必须改变以往的观念,换个角度考虑问题,那就是围绕数据来发现问题,利用大数据分析,来发现用户想要的需求,并给用户提出解决问题的途径,或许就是我们今后软件设计开发的价值。也许不久的将来,软件设计开发,第一步就是能帮助用户发现需求,第二步才是帮助用户解决问题。我想随着人工智能、深度学习等高技术的发展,软件主动发现需求绝不是难题或空想,因为机器大脑总是不像人的大脑需要休息。机器大脑会帮助人们发现商业运作中的规律、风险和方法,而我们要做的是寻求发现能够帮助机器训练像人一样智慧的“大脑”,而这个“大脑”离不开我们的软件。我们要为我们是这样大脑的设计者开发者而自豪。 自古至今,发现问题的根本比解决问题更难。牛顿因为发现苹果落地的根本问题而思考提出万有引力;瓦特就是因为发现水壶烧开水蒸汽顶起壶盖而最终发明了蒸汽机;等等,其实,苹果落地,壶盖被顶起这些生活中的现象,人人都见过,但不见得人人都会发明蒸汽机。因此,我们有理由相信:在熟视无睹的数据中发现潜在用户价值,是未来我们软件缔造者面对的新挑战! 2016年7月22日