需求与开发

不同设计目标,会有不同功能需求。基于不同已知条件,进行不同功能需求分析。

比如设计一个开发框架,主要功能需求是为了实现可以分工开发。一般是基于某种开发语言,进行功能需求分析的。

而设计一个电商网站,主要功能需求是为了把线下的交易业务,搬到线上来。一般是基于某个开发框架,以及某种开发语言,进行功能需求分析的。

 

提出功能需求也是基于经验的,经验越丰富,功能需求也就越完善。

开发功能也是基于经验的,经验越丰富,开发的功能也就越到位。

有些功能需求,产品人员考虑不周到,开发人员帮助补充完善。

功能开发过程中,开发人员考虑不周到,就得进行修复。

功能需求若改变比较大,自然也就需要推倒重来,重构设计。很明显,得知道这是要花时间的,不过,老板就不同意了,然后...

半成品上线,还没来得及优化,又要添加新功能。

现在整个互联网上线的系统,大多数是半成品...

 

要知道,每一个业务流程的开发,都是不简单的。电商网站一个下单业务流程,就已经相当麻烦了。

所以,必须尽可能简化、标准化、减少业务流程。

 

简单的功能需求都可能会不完善,更不用说复杂的功能需求了。

对于复杂的功能需求了,需求、开发都不可能一步到位。

除非产品人员、开发人员【真的】能力都非常强,对复杂的功能需求都有非常清晰的了解,就可以马上进行开发复杂的功能需求。

如果产品人员、开发人员,能力都不怎么强,那么复杂的功能需求都是一个模糊的概念性的东西,不应该一下子就要开发复杂的功能需求。

那就得简化需求,先分出一个短期阶段性需求界限。

在流程开发好、并优化之后,再进行下一个短期阶段性需求界限的开发,如此重复。

 

所谓的开发扩展性是一个很虚的东西。这个也是基于经验的,就是考虑某些已经很成熟、很健壮的功能的【共性】,实现可以增加、扩展【共性一样的功能】的设计。

如果新的功能需求没有【共性】,也就是说业务流程、使用说明已经不一样了,那么,原先已设计好的【接口】,即【原使用说明】肯定不能用了,就要推倒重来,重构设计了。

 

结论:现在是个系统都很复杂,必须【真正地】简化需求,分出多个短期阶段性【需求界限】,进行开发,总的加起来会花很长时间,要有心理准备,给足够的时间。否则,非要大跃进,那基本上是开发不出来的。