24

我做了一个 240 天的计划来解救自己,还剩 174 天。寻找伙伴中。

 3 years ago
source link: https://zhuanlan.zhihu.com/p/264954202
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

人脑很难推断感受。即使是乔布斯告诉你每天都要像是生命最后一天一样活着,你也很难想象最后一天你到底想干什么。但 2020 这特殊的一年对我来说,把所有的事情都催化了一点,把很多感受都变得了现实一点。

这一年里我清晰地看到了自己的职业际遇是如何和大环境关联起来的。我组建了三年的团队,在承担了公司零到一的重要战役之后,因为战略调整瞬间就分崩离析了。公司当然不是针对我,面对今非昔比的国际关系,必须做出战略调整才能应对,我顶多算是 collateral damage。除了我,还有很多同样的人,无论能力、努力程度,也在遭受着 collateral damage。

世界并不是以前认为的那么稳定,或许早就已经岌岌可危。生命也是,虽然非典时就见识过疫情很危险,但也只有当家里人是医务工作者,过年跟我说别回家时,才又真正感受到他们会有危险,真的有可能见面即是最后一面。还有很多很多事情让我真切感受到,自己的生命在流逝,虽然无法想象人生的最后一天,但往后每一天都是余生最年轻的一天,不妨去想这一天想要干什么。

我想要完全改变自己的工作方式,去做喜欢的事并且创造巨大的价值,永远追求更健康更科学地工作,找到有梦想、能深度交流的伙伴,为我的宝宝提供更好的教育、更好地照顾家庭。

这就是这个计划的目标,240 天是它的期限。

第一部分

过去的创业和大公司经历,让我看到目前的公司环境给不了我想要的,并不是因为做不到,而是因为帮助员工实现价值、好好照顾员工并不是公司的核心目标。例如远程办公这件事,只要有好的工具、约定,就能做到,还能规避掉很多无效的会议。但若不是疫情,老板是不会主动去推进实施的,这不是他的核心目标。还有更多地例子可以参照《重来 3》。关于组织和员工关系的本质我也花了很长时间思考和学习管理学,参见《技术管理的世界观》。

这让我意识到想要改变,必须自己去创造。Wolfram 的 Seeking the Productive Life 给了我很大的启发。作为工程师我首先要以工程的方式改善自己,要造工具让自己写代码更快、更少、更容易。于是我花了很长时间来梳理我的知识体系。这里要顺便介绍一下我的经历了,便于理解我要做这些,为什么做这些。

我是学存储的、数据库方向。读研时就开始写云存储软件,当时实验室和一家北京的教育软件集成公司合作,软件卖给了很多高校,现在应该还在跑。快毕业时去百度实习,想着自己未来要做独立做产品只差前端没系统学习过了,于是拒了 php 的职位选了前端。毕业后收到邀请和新浪的师兄开始创业做云计算,成立了国内第一家做 Openstack 的公司,我负责前端和设计团队、兼任产品经理。又补齐了很多产品知识,写的博客被华章出版社的编辑看到,受邀写了本小小的电子书《产品设计七日修行》。再后来公司资金出现问题,我离职到了支付宝做前端。在工作中我庆幸从来没有以工作的标准来指导自己的发展,不管本职工做什么,我一直在关注框架,AngularJS 的第一版 developer guide 就是我翻译的,也在写框架,参见我的 github https:// github.com/sskyy 。同时也在用自己的框架写产品,在我的 github 里面可以找到博客、论坛等等。其他其他事情可以通过我的知乎文章 https://www. zhihu.com/people/hou-zh en-yu/posts 和以前的博客 https://www. cnblogs.com/sskyy 找到。

我发现我不管是初心还是知识体系,其实都是围绕着“做完整产品”的。我应该不为公司,不为任何人,而是为自己打造一条生产线,让我做下一个产品时,不用再写那么多 crud,不断实现 rbac,不断写前端组件了。当然我不可能造出银弹,这个生产线是有一个明确应用范围的,即“单一数据中心,多用户,以数据操作为主”的应用。围绕这个范围我进行了长达一年时间的推导以及和朋友的讨论。目前已经全部完结,核心是以“需求描述”为中心来构建系统,这样能极大地复用已有的能力。

这就是计划的第一部分,打造自己的软件生产线。 以下思维导图仅供参考。(当然没有我的解释是不可能完全看懂的,期待你加入我会好好解释给你听。)

整体思维导图

aEjy6bJ.jpg!mobile

后端的设计

u2AFZ3e.jpg!mobile

前端的设计

bqaAzmr.jpg!mobile

基本上系统整体推导已经完成。前端部分实施已经完成,准备开源中,关于前端开源的招募建我另一篇帖子。除了系统本身,我也写了个 IDE,主要目的有两个:

  • 提供与项目相关的更好的编辑体验。例如我想要知道哪一行代码会引起数据库的写操作,如果没有工具完全理解代码语义就很难做到。理解语义需要 AST,而 VS Code 在官方的 Issue 里面明确回复了不会开发内部的 AST,这意味着我要想得到 AST 就要自己 parse,代码变化就得重新 parse。算了吧,相比于之前我参与过的 Drupal、Openstack、Chromium,我对 VS Code 的架构设计也不是很满意,为什么不自己写呢。在插件体系上我要做成类似于 meteor 的写法,写插件代码的人不分前后端,系统自动判断代码运行在哪里。在编辑能力上我要做成天然以 AST 的树形数据结构来显示,而不是行列字符的形式,天然开放 AST 给所有插件。在这个是线下还可以做很多有意思的事情,例如可以取消掉所有空格缩进,直接用 padding 实现。
  • 突破以文件树的方式保存代码的形式。都已经 2020 年了,我们还在以过去几十年前的方式来保存代码,以文件的方式来区分模块。为什么不能突破,我们现在的大部分代码都是某个框架的一部分,语义是相当容易分析的。当有了对代码语义的完全掌控后,完全可以框架的概念来保存和索引代码。例如我可以通过数据反向查询所有对其操作的 model 的代码,也可以通过 service 方向查询须有进行了调用的 model。

这个 IDE 我已经完成了第一部分。

IDE 图。

MZJ3uay.jpg!mobileNBF3Ann.jpg!mobile

第二部分

第二部分,关于我期望达成的工作方式,这设计到了我对组织、项目管理的理解。

先说项目管理,这几年里一直承担着一线管理者的工作,并且参与了公司当时号称最重要的战役。我看到现在一线项目管理的最大的问题就是“解决错了问题”。可能很多公司和我们一样,是遵循着传统的项目管理方式围绕图文形式的“任务”概念去做项目管理的。这就有三个很大的问题:

一是图文形式任务实际上很难直观的体现出进度。任务可大可小,靠完成的任务数量是很不客观的。

二是你怎么去衡量一个任务到底应该投入多少人算是合理的?任务既可以写得精确也可以写得模糊,具体的技术需求还要靠一线评估,最后就变成了一线上报,最终成了统计,而不是管理。

三是对于任务的理解和传达其实都是靠的人肉。都 2020 了我们还在像人工耕地一样生产软件。

正确地方式应该是围绕“交付物”来打造项目管理体系。一个项目里面已经建立了哪些模型,完成了哪些页面,由谁在何时完成的,都应该有系统能够可视化地自动展示出来,而不是文字形式的任务或者人肉通知。应该可以在”活的“系统的架构图上看到所有的进度,而不只是一张 ppt。

对于交付物复杂度的评估参考 2000 年后出现的”基于认知的复杂度评估“方法已经可以比较客观地进行评价,这样投入的人力是否合理也可以算出来。

最后围绕这交互物的管理系统,也能非常轻松的实现自动化。当一个页面的交互稿完成后、一个接口完成后,可以由管理交付物的系统来自动对受影响的下游流程实施者进行通知。

围绕我第一部分描述的产品生产线的”交付物“管理系统我也设计完了,目前已经实现了”视图“部分的交付物管理。预计全部完成后,在开发阶段,它是架构说明书,并且能看到每个人在做什么,做到什么程度。而完成开发后,它就会像一张活的产品说明书,帮助后续维护迭代。

再说组织,由于现在还不是创业状态,为了避免不必要的麻烦请大家主要从《技术管理的世界观》来了解吧。这里只说两个结论:

  • 从资本的角度来说,现代程序员的投入产出比,是可以达到商业体育运动员水平的。因此我们其实是可以像球队一样去建立组织,为其提供专业的技能培训、医疗等健康管理。想要他提高更高的效率或者释放更大的创造力,就更不应该把他丢进闭关室。应该更科学地为他提供秘书、厨师、医生甚至司机。何况国内其他服务行业相对便宜,互联网相对于其他行业已经处于过发达水平,完全可以变成工程师的天堂。
  • 组织的核心就是”利益分配制度“、”决策权分配制度“。很多公司已经开始进行决策权分配制度的改革,例如去掉 title 等。但还远远不够,真正要让决策权到最正确人手中,至少还要在组织内先建立”科学地讨论方法“才行。利益分配制度也是如此,组织的创始人应当扮演组织发展方向的最后看门人角色,而不是组织中最富有的人。财富应该更多地留给后来加入但贡献了专业能力的人,这样才可能源源不断地扩大组织,寻求更远大的梦想。

其实关于组织,以及如何实现”最喜欢的事并创造巨大价值“我还有很多想说,但现在还不是时候,就当做是隐藏的第三部分吧。要开启的话,你只能加入我了。

最后奉上我的书单,也算是从侧面介绍我是谁吧。

R3u6jyN.jpg!mobilermeI3i2.jpg!mobileUvI7Jzu.jpg!mobilebUVVnq3.jpg!mobile

请联系我。我的微信 rainer_H。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK