一些往事,一些此刻。

我的软件观

我是一个被 CEO 耽误的软件工程师,属于传说中那种全栈开发人员。我在软件开发这个行业待了二十七年,创业也有二十年了。这二十年里,我一直在努力学习,也仍然能够写出高质量的代码。

软件也是一种表达

从毕业后用 Perl、ASP、Java 写网站应用开始,我一直觉得,工具和形式在变化,但理解问题、把问题表达出来,始终是软件开发里很重要的一件事。

在我看来,软件也是一种表达方式。我们观察这个世界,把它解构,再重新组织起来,在数字世界里还原现实的运行方式。软件好不好,很大程度上取决于我们理解得准不准、还原得好不好。

这也是科技和人文相遇的地方。程序员用程序设计语言表达自己对世界的理解,就像作家用文字表达自己的看法。国内早期的程序员,像求伯君、雷军,都带着很强的个人英雄色彩。我清楚地记得,运行 WPS、UCDOS 时,启动画面上会出现作者的名字,就像一本书上印着作家的名字一样。

一个人会写,和一群人做好

一些工具类软件可以由一个人开发,但稍有规模的完整系统,就很难只靠个人能力。前端、后端、手机端,分工越来越细,和生产线上工位细分的思路有些相似。这也让小公司需要面对更多用人和协作的成本。

回头看这二十年,我的观念有一个明显变化:刚创业时更强调个人能力,后来越来越重视整个开发流程的规范。自己能把代码写好,并不意味着带着一群人就一定能把软件做好。

有一段时间,很多人看不懂我写的代码,里面很少出现 if/else。我觉得,这和大家观察世界、抽象问题的角度有关。脑子里的模型不一样,说起话来就容易鸡同鸭讲。我们希望同一件事不要开发两次,把已经解决的问题封装起来,可连对问题的理解都不同,协作就不容易。

软件开发的日常,更多是开发、测试、写文档,反复做那些看起来枯燥的事情。结果是一点点积累出来的,不是在赌博,也不是抽奖,等最后才揭晓中了还是没中。我常说,要对这个行业有敬畏,先从不抱侥幸心理开始。

培训能做什么

我以前有个想法:人人都希望自己过得更好,为了过得更好,人人都会主动付出。后来发现,这句话的前半句是对的,后半句却未必。希望每个人都有内驱力没有错,但不能把团队的运转全押在这个希望上。

我接触过的一些新人,学过语言和框架,却缺少完整的软件开发流程训练。新招来的人,我不能直接放到项目一线,还得花两个月左右,培养基本的工作习惯,才敢让他进项目。有时候也会开玩笑:是不是干脆转行去开个培训班算了?

我没有学过 MBA,很多做法都是在现实条件的限制下一点点摸出来的。创业初期没人、没钱,招聘、培训,什么都得自己上。我习惯言传身教,会把程序员一个个叫到办公室,和他们结对编程。即使这样,也很难直接培养出优秀的开发人员。

这并不意味着培训没有必要,而是得分清培训在解决什么问题。单靠公司有限的几次课,很难把一个人的专业技术教好。现在学习资料和实践机会很多,技术上的成长,仍需要他自己持续投入。工作习惯、沟通和协作,则值得在团队里反复训练。

有时候我也会反思,是不是自己太强势,压制了下面人的成长?有段时间,我有意迎合大家,降低标准,结果事情反而更糟。标准要坚持,但也不能把每个人都变成自己。优秀的人会自己生长,管理能做的,是给他一块合适的土地。

我担心的还有学习会不会停下来。到了三十五岁左右,有了家庭和孩子,能分给学习的时间和精力少了,如果还没形成自己的方法论,很容易开始吃老本。偏偏这个行业迭代很快,老经验未必一直管用。我自己也得不断学。

管理也要算成本

我不太相信一直存在的“梦之队”。刚创业时,几个人可能配合得很好,但队伍扩大后,总会出现不合适的成员。尤其是勤劳肯干、却始终理不清思路的人,有时给团队带来的损耗反而更大。

技术管理者往往不愿意主动辞退人,心里总有不忍。可一直拖着,不处理人员与岗位不匹配的问题,对项目和团队同样会造成伤害。

整个过程中,我总觉得有大量浪费,从传统财务的角度却未必看得清。招到一个人到底花了多少成本?一个不符合岗位要求的人会带来多少损失?一种管理方式推行下去,能不能算清投入产出比?

制度本身也会变。一套做法运行久了,人可能不再思考,只是照着做。这时候,是增加检查,还是改变原来的办法?比如工时表,它到底帮助我们解决什么问题?如果填写的数据不可信,再花时间统计分析,又有多少意义?这些问题,我还没有全部想清楚。

我曾经想过对标 37signals 这样的公司,到现在却觉得,连门都还没有摸到。我想找到的,是能让大家把软件做好的办法,同时少一些无谓的消耗。

AI 带来的新问题

随着 AI 发展,很多程序员目前承担的工作可能会改变。未来还需要这么多开发人员吗?我说不好,但倾向于认为,大概率不需要。

新的开发模式,可能是产品经理提出需求、拆分任务,再由 AI 生成代码。开发方式变了,管理方式也得跟着变,同样要看成本和效果。

想来想去,还是回到开头:软件是我们对现实的一种理解和表达。以前我更关心自己能不能写好,现在更关心一群人怎样把它做好。工具还会继续变,这件事也还值得我继续琢磨。

上一篇:
下一篇:

Leave a Reply