本文集说的都是些平凡的小事,但往往是这些小事区分了产品的伟大与平庸。
在我们亲爱的大地上,有多少朴素的花朵默默地开放在荒山野地里。这花朵没有人注目。也许唯有自身才怜爱自身的芬芳。可是,在我们普通人的生活中,在这平凡的世界里,也有多少绚丽的生命之花在悄然地开放而并不为我们所知啊!——《平凡的世界》
感谢特朗普同志近期的神助攻,我司各产品有了整理内务的机会。然而产品整改过程中多见“战略上藐视敌人”的声音,却鲜有“战术上如何重视敌人”的讨论。有的程序猿抱怨领导只制定deadline,向领导汇报战术时领导听不懂也不重视。本文集的最后就来谈谈这个话题。
1.可遇而不可求
华为的产品研发团队中,领导多出身于业务专家(类似互联网的产品经理),擅长把握产品方向,不擅长具体实现软件。早年华为有很多业务和软件都很牛的德艺双馨老领导,但随着大型团队的分工细化,这种领导就很难得了。其实这是大公司的普遍现象。因此,程序猿们不必纠结——德艺双馨的苍老师百年一遇,不可强求。
2.平凡是常态
程序猿有时候会把平凡与有趣建立错误的关联——编程是一件充满技术含量的事,所以应该很有趣。
编程的确很有趣,好像程序猿亲手建立了一个虚拟世界,程序猿就是这个世界的上帝。然而编程只是做产品的一部分,大部分都是“平凡”的日常琐事(说服领导明白某个软件技术方案、协调某个模块提供接口、为某个小错不断的猪队友善后、开发和测试又吵架了、QA又来审计流程了...),这就是笔者从事软件研发这些年的日常。
去年有个朝气蓬勃的新人,充满期待的去了做AI的产品组,前段时间却准备离职去互联网公司(理由是对我厂的算法能力和工程能力都很失望)——如果拂去被炒得火热的技术的红妆,它们的有趣不过如此;如果知道平凡就是程序猿的常态,就不会有太多的失落。2016年标哥聊到人工智能的一句话,让我看到自己被AI专家忽悠的热血沸腾时有多幼稚。
3.平凡是自我修养
每一个变量遵守命名规范、每一个函数都写上注释、每一个代码文件删除多余的空行,这些小事不会有人看到,也不会获得荣誉,但这些小事就如同士兵踢正步、叠豆腐块的日常操练一样。
风平浪静时,很多程序猿容易选择“偷懒”:当了一个小组长就开始热衷价值呈现,自己维护了近3年的产品代码却大部分没看过,遇到需求和问题就定计划,指挥小兄弟干活。然而一旦市场环境变坏(例如现在),就是大浪淘沙的时刻了——不上战场是永远学不会拉枪栓的。
苏州司业诗名老,乐府皆言妙入神。
看似寻常最奇崛,成如容易却艰辛。
很欣赏《士兵突击》中许三多守军营的片段,即使没有人喝彩,做好每天平凡的小事,这是对程序猿职业生涯最好的投资。
4.平凡是答案
程序猿的工作如此平凡,和建筑工人搬砖一个意思吧:
本文集的第二篇《#写好业务代码#2.开发环境标准化》就如同准备好建筑工具。
本文集的第三篇《#写好业务代码#3.工程标准化》就如同建筑工人读懂图纸搭建房屋的框架结构。
本文集的第四篇《#写好业务代码#4.三方件标准化》就如同建筑工地选择水泥、沙、砖等基础材料。
本文集的第五篇《#写好业务代码#5.业务组件标准化(WCSR+DDD)》就如同建筑师看到住宅就这么设计图纸、看到别墅就那么设计图纸。
最后,预祝各位程序猿人见人爱,快乐搬砖。