扫码阅读
手机扫码阅读

修炼5 我这是好的呀!怎么到你那里就不行了呢?

293 2023-08-09

    完成了那个“万能的按钮”之后,我的团队中的地位更稳固了,就连我们团队的地位在部门中也脱颖而出,部门的负责人很欣喜我们团队开发了一个这样优秀的工具,能够把团队从以往的繁复的工作中解放出来,大幅提升了效率,并且能够从历史数据中挖掘出稳定性之类的许多信息,为部门其他的许多团队都提供了宝贵的改善依据。

    当时我们的叫法是“自动化和工业化”。在现在,互联网新潮的叫法应该是“数字化转型落地案例”了。

    其中有一件事也是挺耐人回味的,当时另外一个提供测试工具的软件公司来我们团队做技术支持的时候,看到了我开发的工具,借口需要拿数据回去分析,把整个文件夹打包拷贝走了。半年之后,他们公司就推出了类似的产品,功能基本上跟我做的一样,测试执行,结果分析,饼状图,柱状图,历史曲线等等。几年之后很多自动化测试管理工具也纷纷面市,成了一波大趋势,跟我早年一个人做的这个工具也大差不差,只是可能更好看更全面罢了。

    多年之后,从这件事里总结出来一个道理:年轻人在工作初期的时候,如果一不小心做了不错的东西,千万不要觉得没啥大不了,没准你正在改变世界,别不信,真的。

    也许正是有了这个心态,才会有人真正爱上IT这个行业。

    这里延展出来说一个观察,在西方国家(以我经历过的法国为例),软件工程师朋友中不乏真心喜爱计算机技术的人,有的人在年轻时候就写了自己的操作系统,也有人发明过自己的编程语言。有的人真的为不过10来行的代码能够快0.4秒反复折腾到半夜,也有的人为代码如何编译成为二进制机器语言研究几天。反观国内绝大部分程序员仅仅把敲代码当做谋生工具,能够把老外写好的组件跑起来写篇博客,已经算是被围观的大牛了。

    要爱上这个行业干啥?能赚钱就够了!……真的是这个道理么?后面慢慢聊。

    话说回来,因为有了第一份战绩,部门领导Fred让我去做了第二个系统,设备资产管理平台,面向的是整个厂区(集团公司在不同地方有好几个厂区,每个厂区的职责范围不一样。),用户是100多号负责集成验收设备的员工。

    没有多少挑战,产品开发完了,一样也精心打磨了一番。部门领导Fred带着年轻的我跟厂区大领导在大会上做汇报。Fred也很想抬举我,可惜我的语言不过关,人也太年轻,没见过世面,紧张起来说话磕磕巴巴,汇报做了一半,被Fred拉下来,替我做完了剩下的汇报。

    “ying,你磕磕巴巴紧张不要紧。但是你说得太……街头口语化了。像地痞流氓或者文盲在发言。

    哦……,我那时候才明白,原来法语里类似于 “卧槽,吊炸天”,“超级牛哔”,“傻哔了吧”,“真T嘛的吊” 等等不入流的街头口语,是不能在给大领导汇报时用的。

    这件事情告诉了我一个道理,我那些法国同事和朋友们坏的很,尽教我一些低级趣味的语言,我会被他们带坏。于是我开始看中央台,看唾沫星子满天飞的政党辩论,一些场合,咱们得用专业领域下的语言体系来沟通。

    这就是为啥现在人开口闭口总是说一些黑话,“闭环”,“场景赋能”,“击穿”,“第二曲线”。虽然很装,但是也是有一定必要的。

    说回到正事上来,开发的第二个系统虽然也是精心打造的产品,但是口碑就远远不如第一个产品了。就在在大领导发出全体通知书,让大家都使用我开发的这个平台后的短短几天后,我就快被烦炸了。

    “喂,你这平台打不开啊。”

    “哎呀,为什么点按钮没反应啊?”

    “什么情况呀,为什么有的内容显示不出来呢?”

    “这个平台好慢啊!尤其是在我的电脑上比别人慢,为什么呀?”

    “这个颜色不好看啊,这个字体也不好看!”

    甚至还有,

    “喂!为啥我用了你的平台之后电脑打不开了呀?”  ……你没有按开机键。

    “为啥我上不了网了呢?” …… 你网线掉了。

    “为啥我的屏幕是黑的呀?” ……你屏幕后面有根黑色的线,那根线的另外一头有两个金属的头,对,它们现在掉在地上,对,我知道,把它们捡起来,得把这两个金属头插进墙上的那两个洞里去,屏幕就会亮……

    在我疲于奔命“应付”各种疑难杂症几个星期之后——之所以用【应付】这个词,是因为很多东西也没解决,只是应付了过去——我开始琢磨是哪里出了问题。不需要数据分析,用户归类,用户行为轨迹追踪这样那样的技巧,这个产品的口碑如何,只需需要想想我作为一线维护这个产品时的心态,就能知道情况不妙。

    这就是坏味道。

    开发用了一个月,修修补补的时间甚至超过了程序开发本身的时间,并且用户抱怨层出不穷,许多问题来不及解决或者无法很好的解决,例如稳定性的问题,性能的问题,适配的问题,网络问题,以及用户学习成本,使用习惯等等。

    几年之后,我负责解决大型商超内部产品管理PLM平台的产品性能和稳定性问题,客户是全球大型超市,像家乐福Carrefour,欧尚零售Auchan,美国全食Wholefood等等。需要面临的问题更多更复杂,完全不是开发一个本地版的应用,或者提供一个百十来个人使用的内部小工具这种档次。

    区别在哪里呢?同一个人开发的产品,开发难度基本上一样,总体下来花的时间也差不多,一个口碑爆棚,另一个口碑扑街。不一样的只是客户从原来身边知根知底的10人小团队,变成了整个办公楼上上下下100多个陌生人。

    不同的用户,不同的使用场景,不同的需求,不同的网络或者系统,许许多多因素导致下面这个结果:

    “我刚刚用的是好的呀!怎么到你这里就不行了呢?”

    这个问题也是程序员的另外一个灵魂拷问,背后牵扯出来两个能力问题:

    第一,工程化能力。用大白话来说,就是解决问题的能力,大家遇到这个问题如此之多,以至于这个问题在几年之后催生出来一个行业叫DevOps:一群兼具开发、运维和测试的多面能力的人(对,很多公司忘了DevOps里面应该有测试能力),并且能够为产品整个生命周期进行工程化保障的职业。

    工程化需要建立仿真测试环境和测试工具,工业化的集成和发布环境(CICD那是后来的产物),收集用户的使用环境,建立服务状态监控报警机制,数据链路监控机制等等等等……而我当时不完全具备这个能力,嗯……自信点说,完全不具备这个能力。

    第二,组织能力。如果亲身经历过一些产品的设计、开发、测试、维护等等所有这些步骤,其实很容易得出这一个结论:这些步骤是分不开的,并不是孤立完成一个步骤之后,再做下一个动作;也不能说我只管这个部分,其他的我一概不管。

    如果一个团队里,听到运维人员说:我只管操作,告诉我点哪里我就点哪里;或者开发人员说:我电脑上的版本没有问题,你那里跑不起来肯定是你的问题。那么这个产品离口碑扑街肯定不远。

    如果看到运维、开发和测试人员这些人坐在一起,商量着事情可以怎么去优化完善,那么事情就已经向前迈了一大步。

    面对上规模的用户,这是必须要有的组织方式。而我当时一边要维护这个平台,一边还有其他开发任务,什么组织能力?组织都没有,不存在的。

    可惜当时我不懂,我也只有一个人,于是就在应付用户偶尔的抱怨,和一些其他开发工作之间来回切换。

    一年半载之后,公司采购了一个专业的第三方成熟的工具,替换掉了我这个作坊级别的内部产品。所有人都很开心,包括我在内。

    再后来,因为这个外部工具的定制化能力不强,不能适应业务发展的需要,又被干掉了。但是基于之前的历史,部门领导终于认真地雇用了一个小团队来专心打造和维护这个平台。

    而我,则是一直专心做各种各样的工具,许多部门,无论是职位高低,都是我服务的对象。除了最开始的自动化测试管理工具和设备资产管理平台,后来又做了测试网络环境模拟,关联数据整合,数据治理ETL,传输链路监控,PMO数据分析工具,用户行为与故障关联分析工具……许许多多,一下做了4年多。我的团队也从一个人孤军奋战,变成了2、3个人的小团队。

    直到后来,有一天我突然意识到,原来用工具解决日常工作中遇到的各种问题,就是工程化能力,我已经迈出去第一步。

    本章总结:

    开发几个人使用的小工具,可以很容易满足需求。但是做一个上规模的产品,就不是简简单单实现几个功能这么简单。这是对自己(或者团队)工程化能力和组织能力的考验。

    想一想,周围是不是有很多企业,临时找来几个开发,就开始嚷嚷着要做平台?这就离大谱了。

    别忘了还有工程化这档子事:模拟环境、测试、发布、维护、监控、分析等等,有没有人能做这些事?

    别忘了需要组织设计、开发、测试和运维人员一起协作,还有运营、市场等等部门,团队有没有足够的组织能力?

    这里所讲的这个平台,也只有区区100多人使用,真正遇上了大规模的用户,使用起来五花八门的问题层出不穷,常常还没拿出去给外人用,自己内部已经乱成了一锅粥。

    这些在后面都常常遇到。

原文链接: http://mp.weixin.qq.com/s?__biz=Mzg2NDY3Njk2OQ==&mid=2247483722&idx=1&sn=368935e2a865b1602ffeb2a92a3f2dbe&chksm=ce64fc4cf913755ab21de35a2a6389192102cbe34c87d2c0eb7ec0de37c75a012e5916d7e680#rd

老袁: 敏捷转型咨询师、 Agile Coach、 作家。 B站Up主 《老袁讲敏捷》系列

39 篇文章
浏览 10.3K
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线