我做了 20 多年码农。
先在大厂做通信基站网管后台,后来自己开软件公司,做企业 ERP、WMS。
插一句,码农这个称谓,在我这稍微有点广义,程序员、架构师、产品经理、项目经理姑且都算码农吧。
同时,我自己也曾经做过几年跨境电商,虽然当时只做了美国亚马逊一个站点,但对这个行业多少算有些了解了,身边也还有几个朋友,一直泡在跨境圈。
近期因为项目需要,又跟几个跨境老板深入聊了聊。
发现:
跨境老板跟码农之间,说矛盾重重吧,可能有点夸张,但总之是互相看不上。
信息不对称
这些矛盾,主要来源于:
信息不对称。
信息不对称,就容易出现"鸡同鸭讲"。
老板觉得,我已经把业务需求、业务流程、甚至包括哪些页面和字段、各个页面和字段之间都什么关系,都给你说清楚了……我就是不会"写码"(很多老板把码农 Coding 说成"写码"),我要是会,我自己就干了。
老板很委屈。
码农觉得,你说的流程,我跟你确认多少遍了,实际运行的时候,又有特殊情况,还说"以前不是跟你提过这个么"。
码农也很委屈。
这里,老板的委屈,是因为觉得自己已经大包大揽帮着码农干了不少活儿。
而码农觉得老板只是在用不十分合适的方式在表达需求,真正的活儿,"实现从现实世界到软件世界的映射"的这个建模过程,才是软件开发的精髓。
码农的委屈,是因为他误以为老板说的话应该是"板上钉(dìng)钉(dīng)",误以为老板跟他的沟通,是在把一些"已知的静态信息"传达给他。
所以,码农觉得他原汁原味实现了老板的要求,已经仁至义尽打完收工。
"你要,就要跟我说啊,你不说,我怎么知道你要呢?"
码农拒绝预判。
怎么办
先要破这个局,必须双方都端正态度。
态度太重要了,好的态度,是成功的关键。红军中的政委指导员,可不是闲职。
首先,要相互尊重。
老板,在跨境圈的摸爬滚打,积累了丰富的业务经验、有满肚子的业务痛点,码农不要希冀通过一两次访谈就能把需求挖掘完成,要更沉下心来深入了解业务的来龙去脉。
码农,数年数十年鏖战,用黑眼圈发际线见证了软件技术的迭代演进,瀑布式开发、敏捷开发、低代码、云原生、AI 原生,Servlet/JSP、Java EE、Spring、Spring Boot、Spring Cloud,一路下来也觉得是一身本领,老板也要能理解码农心里的那点傲娇。
其次,要达成共识。
一套成功的业务软件的成功建成,是老板和码农共同探索的过程。
这句话的要点有两个:共同和探索。
共同的意思,信息,不是单方向流动,不是"我说什么、你就做什么",而是大家一起来摸索,软件做成什么样,是大家拼凑知识结构、共同摸索的结果。
而探索,意思是,我们共同面向的,是一片茫茫未知。业务软件的开发,就像"扫雷游戏"(暴露年龄了),做之前是一片等待探索的空白,每完成一个重要步骤,才可能打开一片新的局面。
不容易,"没有人能随随便便成功"。
我见过的烂尾软件项目,太多了。
再次,大家要相互信任,都得有点担当。
我见过一些软件项目过程,双方时时刻刻都在为将来(一定会发生)的扯皮做准备,需求要签字、邮件要留痕、微信要截图……战战兢兢,如履薄冰。
怎么能成功,我说不好,但双方如此不信任,大概率会失败。
为什么不信任?
肯定是有前导故事,先有人"不担当",自己犯的错误让对方背锅,对方吃过亏之后,就"长了心眼儿",然后,事无巨细都要"留痕"。
长此以往,恶性循环,项目摩擦成本剧增,大家都很"累心"。
能成功么?即便成功,可能也是不堪回首的"惨胜"。
收尾
……
我还是成了政委指导员。
说来说去,越说越虚。
但真理往往就显得这么"虚",好像啥事儿也没管,像老子说的——
"道常无为而无不为。"
先这么多,以后有机会再聊聊更具体的吧。

