需求剖析的方针: 是尽或许精确、全面、深化的了解事务。

1:了解“尽或许精确”

首先,需求剖析,要做的事,肯定是去了解事务,可是要到达什么样的程度,才算是咱们了解了这个事务呢?

第一个是“尽或许” ,尽或许的意思,便是你不太或许百分之百的、完好的、精确的去了解,做不到。咱们只能说是尽自己最大尽力去了解,了解性的东西,你不行能做到百分之百的了解这些事务。

第二个词叫“精确” ,这个是特别重要的要害词。精确的含义便是:对每个功用点的了解要没有歧义,了解的这个功用点要不行再分,也便是说假如对一个功用点,不同的人有不同的了解,那这便是有歧义。

深入理解需求分析的目标(C系架构设计法,sishuok)

举个比如来说,当咱们看到需求调研文档上有这么一句话,“这个用户数据需要在界面上进行挑选”。呈现这样的语句,这个便是不精确的,为什么呢?因为这句话他是有歧义的。

什么样的歧义呢?要害就在这个挑选上,咱们怎样选呢,是下拉列表选;仍是checkbox选;仍是像搜索框相同搜索参照去挑选。你并没有给我一个精确的描绘,所以说,你告诉我界面上可以挑选用户,关于看文档的人来说,这便是有歧义的,不同的人他可以有不同的了解,这样是不行的。

当然,假如这个时分是配了原型界面,或许是有相应的html,上面已经精确的画出来了,他便是下拉列表,或许说他便是checkbox,这没有问题。可是假如单纯只有文档,这个便是有歧义的。

第三个词是“不行再分”。意思是这个功用点不能太大,不能说这个功用点还可以裂变成许多小功用点。假如他还可以裂变成许多小功用点的话,这个功用点的了解便是不行精确的。

比如说在文档当中来这么一句话:“要求可以对日志进行办理”。其实咱们最怕看到这种话,进行办理,怎样管?有些什么样的功用?是只对日志做一个保存,然后取出来进行查看,还有没有其他的真实办理性的功用?

这一个“办理”,它就可以再往下分出许多具体的功用。比如说,我还要把日志存储起来,又会涉及到要存储多长时刻的日志;怎样存储?是集中式的存储,仍是分布式的存储;对这些存储的日志,有没有什么其他的功用要求,比如说查看,比如说审计,比如说进行数据剖析,而数据剖析,又涉及到要剖析哪些东西?剖析的算法是什么?

这些东西都属办理的内容,你光给我一个要求对日志进行办理,就这么一句话,你让架构师怎样规划?你让开发人员怎样开发?这便是不行精确。

看到这个当地,或许许多朋友就会在想,咱们自己的需求里头,看过太多这姿态的坑了,往往是一两句话,就一笔带过了好大一个功用块,做着做着就发现问题了。最终为了去填坑,消耗出许多的人力和时刻,咱可没少吃这姿态的亏。

所以说,咱们现就要求,关于需求剖析来说,必定要尽或许精确去了解。

2:了解“全面”

第二个,“全面”。这个比较容易了解,便是这个功用点,涉及到什么细节功用,涉及到什么样的流程等等的,都应该剖析到,不要漏东西。这个咱就不多讲了。

3:了解“深化”

第三个,“深化”。这又有两层含义,一个便是对自己功用点的一个深化,另一个是功用点之间的深化了解,也便是功用点之间的关系。

深入理解需求分析的目标(C系架构设计法,sishuok)

对自己功用点的深化,咱们来个比如,比如需求文档上是这么写的:“这个价格可以被价格办理员修正,修正后要进行审阅才干收效”,说的很清楚,对吧。可是你细心往下去剖析,就会发现问题了。

你看“价格可以被价格办理员修正”,这句话应该没啥太大的问题。可是修正往后要进行审阅才干收效,问题就来了,既然是审阅,谁来审阅?审阅有没有流程?审阅往后的结果,是回到价格办理人员,仍是直接收效等等的。咱们一看就知道这中心是有问题的了。

有人或许会说,这好像是对审阅功用了解不精确,不是咱们说的最终的功用点,也可以这么了解。

这儿着重的是深化,他有或许并没有流程,可是咱们深化考虑一下,要进行审阅才干收效,那么这个时分咱们就要求清晰,比方说谁来审、怎样审、审阅结果对事务有什么影响、有没有审阅流程等等的。咱们必定要把这些问题,都要考虑清楚,这才是需求剖析真实要做的。

需求剖析,不是叫你表面上把拿到的这些需求文档读一遍,不是这姿态的,你读完了觉得说这些字我都看懂了,然后大约意思也了解了,这姿态的需求剖析是不到位的。必定要一个功用点一个功用点的,精确、全面、深化的去了解才行。

因为在这个进程当中,你会发现许多不清晰的当地,而这些东西,现在假如不把它找出来,这些问题就往后推迟,就遗留到开发期间,光写这句话,程序人员根本没有办法去做的。

所以说,咱们越早剖析清楚越好,这中心或许许多功用,需要咱们在做架构规划,做概要规划、具体规划的进程当中,就需要把它考虑进去,而不是说把这个使命,一向推到程序人员开发的时分。因此,架构师在做需求剖析的时分必定要剖析的特别的细心。

再来看另外一个点,便是功用点之间的一些关系的深化了解,或许在需求文档里边,并没有提到A功用和B功用之间有什么样的联络。可是通过咱们的深化剖析,发现他们之间是有联络的。

深入理解需求分析的目标(C系架构设计法,sishuok)

看个简略的比如,就来个咱们了解的请假功用吧,当然请假是有流程的,可是这儿假定它是一个单一的功用,比方说叫“短时请假”的功用。这个功用要求请假人填写请假单,然后由他的直接领导审阅,他的直接领导批准了,这个请假就通过了,请假成功;不同意的话,也便是请假不成功,就这么简略。

可是这个功用,你细心来剖析,又有几个点,第一个,短时请假,请问啥叫短时?一天两天三天仍是几个小时,这就意味着为了做短时请假,咱们需要有一个装备这个时刻限制的功用。这个时分就要想,整个系统里边有没有这姿态的装备功用,可以去操控什么是短时请假,什么是长时刻请假,是这个道理吧。或许由于这个剖析,就引申出新的功用点来了,也可算是一个功用点之间的关系。

再看这句话,“由他的直接领导审阅”。什么叫他的直接领导?或许有朋友会说,直接领导,不便是他地点的部分领导吗?那不必定,假如他地点的部分比较大,他或许是在某一个项目组里边,那项目组长或许TeamLeader算不算他的直接领导?

你看,这又引伸出来一个功用,便是可以设置每个人的直接领导。这个功用,通常是由组织机构和人员办理子系统来供给的,这便是功用点之间的一个关系,假如组织机构和人员办理子系统那儿不供给这个功用,请问我怎样判断谁是他的直接领导呢?

这便是做深化了解,所以,需求剖析要真实做好,不是那么简略的,是需要咱们花许多力气,去认真、细心、反复、深化的考虑的。总之,咱们需要了解,需求剖析的方针便是:尽或许精确、全面、深化的去了解事务。就算咱不能百分之百做到,也要尽或许朝这个方针去尽力。

为了咱们更好的交流架构规划的思想和知识,咱们可以加sishuok,拉你进架构规划群,一同一起学习,一起进步。