创造的自由:低代码开发的时代,人人都是创新者
阿里云智能总裁张建锋在 2021 阿里云峰会上提到:“低代码开发时代,人人都是创新者,你只要最了解自己的业务,就能去创建应用,实现业务数字化。”
前言:“谁是我们的敌人?谁是我们的朋友?”
互联网信息化高速发展的今天,一边是万亿市值互联网企业造富神话不断,另一边是六亿人均月收入仅 1000 元左右(李克强总理在 2020 疫情期间 十三届全国人大三次会议记者会 语重心长地强调)。
“谁是我们的敌人?谁是我们的朋友?” 周末在读毛选,一开篇就被震撼了!区分敌人和朋友,就是要抓主要矛盾,现在中国社会的主要矛盾是科技创新的速度(vs 美国) 赶不上人口红利的下降速度。每年都在下降的劳动力,反而倒逼产业创新,企业数字化、工业机器人和人工智能替换大量劳动力,才能加快或保持之前的生产效率。
(劳动年龄人口持续减少,劳动力成本快速提升)
在互联网应用领域,特别是移动互联网,我们走在了世界和时代的最前沿。然而在面向传统企业的数字化转型时,广大中小企业依旧停留在纸质化流程办公阶段,稍有信息化意识的企业,也仅是在大量使用 Excel 或类 Excel 软件。“未来十年,最大的确定性就是数字化技术的普及,整个社会经济和生活必将全面数字化。“
我们需要更多软件的搭建者,而不仅仅是软件的用户
“The real computer revolution hasn’t happened yet.”
“真正的计算机革命尚未发生。” —— 艾伦·凯(Alan Kay)
不管技术如何改变了我们的生活,仍然只有极少数人拥有软件开发所需的编程技能。当大多数人面对一个可以通过编程来快速解决的问题时,你不得不求助于其他拥有该技能的极少数人。想象一下,如果有更多的人拥有搭建自定义软件的工具,可以成为软件的开发者,而不仅仅是软件的用户呢?
我特别喜欢 Airtable 这句 “We need more software builders, not just users.” 本质上,每个行业都有其专属的业务逻辑,使用更小的细颗粒度组件配合低代码开发,无需编码或只需少量代码就可以快速生成应用程序。只有这样,才是真正的计算机革命。
作为一款具有高自由度的 SaaS 产品,Airtable 期待造就更多软件的搭建者,而不仅仅是软件的使用者。任何人 —— 即使没有技术培训 —— 都可以创建完全符合需求的个性化应用程序,并受益于彼此共享的软件社区和平台生态。
阿里云智能总裁张建锋在 2021 阿里云峰会上提到:“低代码开发时代,人人都是创新者,你只要最了解自己的业务,就能去创建应用,实现业务数字化。”
这类 SaaS 产品,不只是帮助个人或企业搭建一个自己的内容或管理平台。产品的目标将通过解耦,把现有的产品打碎为最小的颗粒度,然后像乐高积木一样进行组件化、模块化的拼接,而这和我们打造自身知识管理体系的思路是一脉相承的。
就像笔记软件(Roam Research、Notion)中的 Block 一样,可视化编辑器则将基础组件和业务组件拆得更细,比如商品页面上的每一个元素都可以拆分组合,元素的交互逻辑、数据指标等等都拆分成最小的颗粒度,然后通过一个中台来统一管理,由运营专家或业务专家来搭建页面和逻辑形成功能,最终交付给客户的是一个个可执行的业务功能模块。
(中美 SaaS 公司市值对比,客户习惯需要进一步培养,且依赖资源市场)
数据之间的联想能力,是软件难以取代人脑的地方
通过工具给用户赋能的产品很多,Notion 就被网友戏称为「新一代的 QQ 空间」。Notion、Roam Research、Airtable、Coda、钉钉文档、飞书文档、Vika 维格表、黑帕云等一系列产品,本质上都是一个简易的数据库,比传统的 Excel 更为方便的能展示不同维度直接信息的区分,还有数据的互相引用能够打破传统表格之间的数据孤岛。
对于中小企业老板乃至个体经济来说,其业务流程大部分都可以通过表格+表单的方式进行流转。一方面,通用型表格然后辅以丰富的模板就能够快速搭建我们现在想要做的系统,类似积木块无代码编码(low-code 低代码平台);另一方面,这类表格还可以根据字段自动生成表单收集器,这样就可以方便录入数据,应用之间还可以相互连接,实现数据互通。
数据间的互相引用,也特别像知识管理关于「分类 or 标签」的分歧,现在大家都在谈论双向链接,谈论网状笔记,其实这些都只是展现形态,更重要的其实也就是打破信息茧房,知识壁垒。让知识流动起来比单纯让知识建立联系,可能会更重要,也更能激发远程联想和创造力。
数据之间的联想能力,是任何软件系统都难以取代人脑的地方,如何把非结构化的信息通过结构化的方式表现出来,也是最难的地方。不确定性,可能才是真正创造力的来源;如果一切都是固定的程式,那这个世界就失去了生机。 —— @一顾
数据的可复用性与数据可视化
前文提到表格类似于乐高积木块,最小单元是 Cell 细颗粒度,基于更细的颗粒度才能实现信息/数据的复用,才能激发使用者的远程联想和创意,从而促进复杂决策,跨领域寻找解决方案。
Roam Research 创始人 Conor 就经常在 Twitter 提及 Excel,并且讨论过一系列关于 Excel 优弱点的 Thread。并且,连 Roam 的技术面试题都是打造一个小型 Excel,相关 Tweet “One of our interview prompts is building a tiny excel”。
Roam Research 将笔记的最小单元视为 Block,而这种基于 Block 的深层技术优势让我们看到了各种可能性,在 Roam 的基本概念里,页面只是一种特殊类型的块(block),页面(page)和段落(paragraph)一视同仁,两者都是 Blocks。
Roam 数据库就像一片森林。每一页都是一棵树。树的根是页面(page),树的枝干是更高层次的段落(paragraphs);树的叶子(block)就是嵌套在页面(page)最深层次的段落(paragraphs)。 —— 深度解析 Roam 数据结构 —— 为什么 Roam 远不只是一个笔记应用 - 少数派
在《程序员修炼之道:通向务实的最高境界》这本书中被归纳为一个概念叫正交性,组件越小越好,越有组合的可能性,只有当组件拆分越细,越有优化的可能性,性能越好。
- 假设一个组件能做 M 件独特的事情,另一个能做 N 件。
- 如果它们是正交的,组合起来就能做 M×N 件事。如果两个组件不正交,有重叠之处,结果就少一些。
组合正交组件能获得相当微妙的生产力提升,在正交组件不断组合的过程中,单个单元的性价比提高了。
根据反馈来不断改进,不断迭代 Build-Measure-Learn
我们亲眼见证了人类历史上最重要的转换。
最卓越的管理思想家之一,彼得·德鲁克(Peter Drucker):“这是历史上第一次,人们可以做出自己的选择,而且是越来越多的人可以做出选择。这是第一次,他们不得不自我管理。 ”
“而社会完全没有对此做好准备。” 从知识付费的焦虑就可以看到,我们每个人充斥着对时间管理和知识管理的渴望,但是好像缺少了点什么?可视化反馈,我们需要打造一个属于自己的以作品为导向的个人管理系统。我在Serverless 实战:打造个人阅读追踪系统这篇文章提到过,稍后阅读永远读不完的痛点 —— 缺乏追踪:
随着时间的推移,Instapaper 里面的文章将会变得越来越多,就像我们在代码中所注释的 TODO: 可能就变成了 Never Do,稍后读也是一样地被人广为诟病:Read it Later = Read Never。
我发现文章堆积的一个永恒痛点,即没有有效的方式追踪自己的阅读需求与能力,其核心原因就是因为读完的速度赶不上添加的速度。从而没办法可视化出来评估自己的阅读进度,合理安排阅读计划,也就没办法给予自己适当的奖励,进而失去了阅读的动力。
数据驱动:抓住引领性指标,提升滞后性指标
在《深度工作》这本书中所提到的原则 2:抓住引领性指标,指的就是引导你将注意力转化到提升短期内可以控制的行为上,并对长期目标带来积极影响,从而最终提升滞后性指标。
通过引领性指标来衡量自己的成功程度,能够及时改变有助于滞后性指标的新行为。比如说滞后性指标是提升面包房的客户满意度,而引领性指标,就是接受免费试吃样品的客户数量。
对个人来说,更好的引领性指标记分板就是这个人当前的深度工作时间,可以帮助一个个体专注于深度工作。
你也可以每天统计一个指标 —— 「自我决定指数」。计算你一天中,完全兴趣驱动,没有任何外在动机驱使的时间所占比例。扔掉那些无聊的应酬,长期坚持去做一些跟利益无关的兴趣爱好,比如读书或写作。读书与写作本身就是享受,你并不需要得到格外什么,多年后,你反而得到最多。
其实就跟测试驱动开发(TDD)和精益创业一样,我们需要更多的关注人的本身,做适应性计划而非预测型计划。不是做了适应性计划就是敏捷,而是聚焦价值,持续改进,「以人为本」。
- 预测型计划:传统的计划方式,典型的表现形式是甘特图,提前计划好什么时间做什么事情,A 依赖 B,B 就要放在 A 的后面。
- 适应性计划:环境越不确定,越需要边走边看,这时过于详细的计划,就是浪费。较好的做法是,做一个比较粗的计划,把近期的计划做细一点,然后定期去回顾并调整计划。
敏捷开发之 Adaptive Planning
“你的下一个软件应用,未必是程序”
程序的模块化,一方面得益于笔记型软件的不断升级与推陈出新,另一方面,也有对新型双链笔记软件 Roam Research 的批评,比如在少数派文章 你的下一个应用,未必是程序提到的“套娃”:
很多用 Roam 批注 Roam 教程,用 Zettelkasten 管理 Zettelkasten 心得的圆环套圆环场面,可谓当代版的邯郸学步。
即使真要关注逻辑和组织结构,也应是积累了一定数量的素材后再考虑的事。但大多数用户的实际情况是连记笔记的习惯都不曾有。
当然,现阶段请不要神化双链笔记 - 少数派。所有方法都有其适用范围,卡片盒笔记法有优势也有局限。Roam Research 所提供的网络关系图最终可能都会变成一团乱麻:双向链接被吹捧过度,它所提倡的扁平化也非万灵药。
“我能想到的场景是,用来发现与其他笔记关联最多的、付出精力最多的核心笔记。但这在日常使用中,并非一个高频需求,更像一个定期的分析回顾。因此这个网络看似酷炫,实际帮助不大。”
创造的自由,软件的“矛与盾”并不矛盾
对于任何方法论或工具,都不要走向极端,而是走向融合(两者相击取其强,“矛与盾”并不矛盾)。我既要用到 矛 的锋利,也要用到 盾 的保护,即“小孩子才做选择,而我全都要”。
作为一个创造软件的程序员,而另一方面作为软件的用户,我的软件使用心得一直都是Unix 哲学:做好一件事;接口拼接组合。比如说#分布式 GTD的概念,要实施 GTD 或是 Zettelkasten,并不一定要 All in One,而是:
- 使用多个软件配合,挑选各个领域的强者,取其功能精粹,把 20% 核心功能发挥到极致即可,打组合拳。
- 反复练习,优化工作流,克制抵御工具的诱惑才最最要,或者要刻意区分软件的工具属性和“玩具”属性。
其实“软件”的分类或许不再重要,「软件」强调「非物理」的属性,可以指可执行的代码、也可以指不用于执行的文档等;其中可执行、用于完成实际任务的才是「应用」,而一个应用可能是由无数个只具有抽象功能的程序模块组成的。 —— 你的下一个应用,未必是程序 - 少数派
同样的,如果现有软件可以满足我的需求,我就直接用。如果没有,那我就可以自己创造一款软件:我可以利用某个软件的思路,在同一个 Airtable-like 表格产品的不同场景里面实现它。
自带“方法论”的软件才是好工具
比如社区有人会在 Roam Research 重新实现 OmniFocus,但其实更重要的永远都是方法论,e.g. GTD -> RoamToDo 思想在前,工具在后。甚至我们的目标是进入守破离的第三阶段“离”:在更高层次得到新的认识并总结,自创新招数另辟出新境界。
我之前有尝试用 Roam Research 来做 #燃烧清单(Burn List) 或者是实现单核工作法。Burn List 的概念可以参考我派文章:用一张白纸就能完成的任务管理——用完就「烧」的 Burner List - 少数派,文章作者 @DrSelfie 原本是通过 Notion 来实现的燃烧清单,后续直接自己上手开发了产品 BRNR List,而我当然就选择借助 Roam 生态 #Roam42 的 LIVE PREVIEW 和 DAILY NOTES POPUP 功能,同样实现了类似功能。
比如,你完全没有必要接受 HEY email 的高昂定价,也不妨试试看它聚焦待回复邮件、严格筛选来件、「钉」住常用信息等特色功能,然后在传统邮箱中通过过滤规则、旗标等功能变通实现。
「偷师学艺」,借鉴其他工具的方法论创造属于自己的软件
模板即软件,而且是可个性化定制的软件
随着各种个性化的业务需求,丰富的模板(市场)就显得非常重要,因为模板即软件,而且是一种可进一步个性化定制的软件,因为你能够根据模块改造属于自己的软件。
模板同样意味着经验分享,即隐性知识的传递。这是一个富媒体时代,通过视频的形式能够极大得丰富信息传递的带宽,将某些无法口述或通过书面方式传递的匠艺完成传达。
另一方面,通过定制软件的方式,直接将知识附着于软件本身也是一种领域知识传递的方式,所以表格附件的支持也变得非常重要。比如说对于个人来说,管理文档文件等知识管理场景,或者是对于企业来说,财务/库存的电子收据等场景也需要考虑全面。毕竟,在全面细粒度数据化之前,我们还需要文件这种形态来作为中间件。
数据管理表格的多种“软件”视图
一条条的数据记录,通过视图改变数据视角,让关心的数据显示更加直观、简洁、美观,同时实现数据可视化。Dashboard(e.g. 销售额)其实就提供了 “BOSS” 视图,通过 Cube (维度 + 度量) BI 分析,可以为企业做到一定程度的决策支持:比如在价格调控上可以有更加精细化的数字化手段等。
对于个人来说,比较有趣的是@空谷在 Airtable + Wolai:打造量身定制的价值投资系统 - 少数派 这篇文章中提到了使用 Airtable 的 Query 和 CURD 等 API 的配合使用来追踪股票涨跌,帮助自己从数据库中发现价值洼地,让本来静态的笔记变成变成一个「活」的页面。
作为行业从业者,最后的感叹(总结)
“ 普通人最应该学习的技能应该是 Excel, 而程序员最应该学习的应该是 MySQL。” —— 鲁迅
作为一名程序员,敏捷开发的目标是更快地交付有价值的可工作的软件。为此,它有一个指标来度量这个「更快」,那就是 Lead Time,它度量的是一个 idea 从提出被验证,到最终上生产环境面对用户的时间。显然,这个时间越短,软件获得反馈的时间就越短,对价值的验证就越快发生。
但是个人和公司的经营效益和规模常常会受到流程和工具的限制。价值验证的流程无法形成闭环,数据无法打通成为常态,就更加无法幻想使用大数据分析、智能化决策等高附加值产品。
面对魔幻现实和未来的不确定性,在新基建铺开之际,我们每个人都应当利用自身懂互联网、懂技术、懂信息化的优势,改变这一现状。
特斯拉的无人工厂,汽车制造工厂已经拥有了纯自动化的硬件流水线,那么软件呢?
One more thing.
今年的“十四五”两会期间,和一些代表年年坚持相同的提案不同,科技公司的大佬们每年的发言紧跟时代热点,过去几年是云计算、新基建,今年的主题已经换成了芯片、自动驾驶和科技适老化。
雷军重点提到了科技适老化,而作为子女,也是可以通过创造软件来帮助父母更好得生活,来达到提醒和协助的作用。比如提醒父母吃药,或者是帮忙打理家里的生意等等,就跟当年父母和我们一起搭乐高积木一样,让我们和父母一起来搭建软件吧!
愿我们每个人,都能成为 software builders, not just users.