不知不觉已经踏入互联网行业五年之久了,回想初出茅庐时的一腔热血,曾想用技术使人刮目相看,想用技术帮助公司提升效率,做出高质量的产品,而现如今,这种想法已经被消磨殆尽;

在大多数中小型企业中,管理混乱、不注重产品质量,甚至没有一个完整的交付过程,也包括我目前所在的公司。

良好的技术氛围和完善的产出流程,能很大程度上减轻维护负担,减少无效沟通,降低成本,这是一个长久的过程,带来的收益是永久的,我想引导公司去这么做,但是我做不到。

上个月和一位认识了九年的网友见面了,他请我吃了一顿299块钱的烧烤,还请我喝了一杯奶茶。他是我的前辈,我们聊了很多,我还跟他说,我编程之路的开始就是加他好友那时候,代码规范也是从那时候形成的。

那个时候什么也不懂,但是求知欲很强,经常打扰他,也经常写代码写到后半夜甚至第二天凌晨,乐此不疲;不得不说,夜深人静的时候,才是创作灵感最丰富的时候。但是这种机会不多了,人越长大,背负的责任就越来越多。

我还和他吐槽了一些工作上面的烦心事,他告诉我说我还年轻,可以试着出去闯一闯。我说我不想出去,这里离家近。其实是我不敢出去,这里有我的一切。

最近公司要做一个微服务架构的项目,使用 Java 语言,两个后端两个月内上线。我感到十分的诧异,公司在这方面根本没有一点经验,甚至单体项目的生产流程都不完善,没有架构师,没有运维。本来我也参与其中,后来因为我太忙交给另一位同事了,我跟那位同事吐槽道:“这个项目大概率要黄的”,同事苦不堪言。

我试图向领导解释,一口气吃不成胖子,时间紧,任务重,项目管理一团糟,为何不先做技术沉淀,规范化流程。再后来我释然了,我只是一个 crud boy,认清现实,放弃幻想。

好像在我见过的大多数公司里,都缺乏一种精神:工匠精神。快速上线是第一要素,不注重人才培养,职责不分明,没有一个完整的开发流程。软件开发商大多数都是站在了巨人的肩膀上,做应用层所用到的技术,包括开发模式(瀑布模型、原型模型…)都是前人总结出来的经验。

而这实践起来很困难吗?没那么困难,只是不愿意这么做,因为这么做了,赚到的钱就少了。

偶然间,我读到了一篇文章:《张小龙:微信背后的产品观》,里面提到一句让我印象很深刻的一段话:


什么才是简单?

大家可能已经在讨论这里面的技术问题了,这个是怎么样互相找的。这个技术问题,我相信不是一个问题,对于腾讯的技术来说,这个非常容易就做到了。我这里想说的是,作为一个产品功能,我们为什么要这样做? 这个功能非常简单,优秀的开发同事可能一两天就可以开发出来,但是我们怎么样把一个功能做成一种极简的体验,这个难度非常难。

在做过太多的产品以后,实现了各种各样的需求,我常常在想,为什么一款 APP 里要塞这么多东西进去,这个按钮好花哨,那个页面显示的元素好多,这个功能真的有必要吗?打开某宝某东,我甚至怀疑我是否是一名技术,我找个功能怎么这么难找。我认为功能做到简单,确实很难,简单到用户一眼就知道如何使用,不需要学习成本就能上手,这样更难。

就像微信的“小而美”,抛开难用这个点,某种层面上,它确实是小而美。

四年前,我的简历上的个人介绍中写着“写代码是一门艺术”,后来我才明白,我所追求的是通过代码做出来的东西,实现出我想要的、有价值的东西。

同在上个月,我决定停止更新开源版本的兰空图床,甚至有过停售付费版本的想法,我有种想提前终止它的生命周期的冲动,因为它没达到我认为一个好的产品的标准,它有很多令人感到不愉快的地方。

如果有机会,我想在近两年做一个有价值的、体验好的产品,并让人们愿意为其付费,它可能没那么好用,但它一定是我倾尽了心血的。