vlambda博客
学习文章列表

函数式编程、软件体与产品经理

在软件体产品设计时,一种很常见的做法是枚举功能点:

看似调理清晰,实质上里面隐藏了致命问题:

无法直观地判断这个功能点是否有必要。

有可能这个功能点是个完全没必要的功能点,但是你是无法通过这个表格判断出来的。

所以更合理的做法,实际上是通过工作流来进行软件体产品设计:

功能点,附着在STEP上,为STEP服务,而非像第一张表一样附着在功能模块上。

看似是同一件事情的两种不同表达,实质上存在本质上的区别——

「软件体设计中,究竟什么最重要」?

第一张的表结构中,给出的答案是子系统、功能模块等实体最重要;

第二张图结构中,给出的答案是流(Flow)最重要。

我认为,第二个答案才是 「最佳实践」。

一个有意思的事情是,这里说的虽然是软件体的设计,但是和编程思想也能产生映射关系——

面向对象编程认为什么最重要?

实体对象最重要,所有函数都是依附于实体。

函数式编程认为什么最重要?

函数最重要,所有变量、结构体都是依附于函数。

然后,我们将这个话题转化到商业的角度,同样也会有有意思的发现——

功能点=>更强的功能点是否能创造具有商业价值的产品?

答案是不一定,但是这个思想通常具有迷惑性,很多产品都会有这样迷思,我具备了某个更强的功能点,我便具备了商业竞争力,例如——从「普通聊天」变成「加密聊天」。

实质上,单个功能点的强化(创新)没有意义,只有落实到「流」的强化(创新)上才有意义。

例如,原本的「看电视流」变成「打开抖音看短视频流」,这个是具备商业逻辑的,站得住脚的。




后台输入关键字有自动回复:


输入「 比特币 」,推送比特币技术入门教程;
输入「 联盟链 」,推送联盟链开发系列教程;
输入「 项目 」,看看大狗最近在玩什么。