IT系统是根据需求建设的,而需求是从哪里来的呢?
为什么这个世界需要一个这样的系统,为什么系统需要做成这样,不多做一些事情,也不少做一些事情,恰好就要做这么多事情?
这些问题难道不是问题吗,难道需求是理所应当的吗,需求是从哪里来的呢,用户为什么有需求,需求为什么是这样?
下面我做了这么一件事,把一个家庭的活动整理了一下,有下面一些内容:
一个家庭的活动有这几个内容:工作、娱乐、购物、文化教育、医疗保健、人际交往。
这个东西是不是可以看作中国城市家庭的一个生活模型。
还需要加上一个活动:财务管理。这个活动不应该是与前面几个活动并列的,他应该是一种横向的交叉活动,就像下面这样:
假如我们现在要规划一个家庭的IT系统,就可以先根据这个模型,规划这个IT系统需要划分成哪几个子系统,各个子系统需要具有哪些功能。然后就是确定如何结合现有的条件分步骤的实现这个IT系统。
如果从一开始就没有一个整体的规划,每个系统都是分别规划,根据自己的需要去独立建设。当最后这些系统结合在一起的时候,肯定会发生这样的现象:各个系统的边界有所重叠,也存在空隙,有的事情没有人做,有的人没有事做。当一个人需要了解这个家庭的整体情况的时候,他观察每个系统,会发现每个系统的标准都有差别,对同一个概念的理解不一样。要得到一个整体的情况,必须在各个系统之间搞很多人工的翻译工作。
这个模型的存在不是为了开发某个系统,而是为了搞清楚人的活动。分析这个模型可以知道,在这样的活动中有什么样的需求,需要开发哪些系统来满足这些需求,这些系统需要有什么样的功能。
一个家庭还要有这样一个活动:信息的管理。比如:家用电器的使用手册,上次给汽车加机油是什么时间,家人朋友的生日……现在的家庭正在越来越多的做这样的管理活动。加上信息管理,形成了下面这样的家庭模型:
设计一个系统的时候,不能把眼睛放到一个个的功能点上,不去研究系统的业务需求。要避免被功能点洗脑,功能点是可能被代替掉的。同样,一个独立的系统,也只有放到人的活动中才有价值。在这个范围上,任何一个独立的系统也是可能被代替掉的。
这个家庭模型可能有问题,比如:人际交往这个活动可能不应该是和其他活动并列的,他应该也是一种横向的交叉活动,人际关系在其他活动中是可以发挥作用的。应该是这样:
从人的活动,到一个系统的开发部署,假设这其间的路程是100公里。很多情况下我们关注的是最后的10公里,前面的90公里,因为已经有人把结论告诉我们,所以经常被我们忽视,我们都认为那是理所应当的。
如果开发者和客户之间签开发合同,客户提出需求,开发者只管照做,然后客户就要买单。需求是什么——这个问题是客户的事情。但是如果是开发一个产品呢,把一个造好的东西拿给客户,希望客户买单,开发者就必须自己研究这个问题。
或者,读这篇文章的人自己就是那个客户,他怎样知道自己需要什么呢?