在巨帆科技,软件开发工程师的工作职责可不止写代码

上周去汉口一个老小区复尺,卧室飘窗正对着儿童游乐区。业主是个当妈的,一手揪着孩子后领,一手指着窗户,语气里全是担心:“孩子老爱扒这儿看楼下,我总怕锁不住。”说话的时候,她来回拧了好几次把手,锁舌“咔哒”一声到位了,可她眼神还是紧巴巴的。就那么一下子,我脑子里突然蹦出我们后台系统里那些“保存”按钮——看着锁上了,可谁知道防不防得住一个好奇孩子随手乱推?在巨帆科技,一个软件工程师每天的活儿,跟给整栋楼挨个儿检查窗锁差不多:要防误开、防破解,还得防着那些自以为按一次就万无一失的成年人,事后不认账。

写代码只占三成,剩下全是“拆人话”

常有人问:“你们软件开发工程师的工作职责,不就是写代码吗?”我直说,真不是。一个软件需求砸过来,写代码顶多占三成时间,剩下七成全在琢磨人话。就跟那位妈妈说的“怕锁不住”——你如果给飘窗直接挂把铁锁,她八成更恼火,想开窗透气还得找钥匙。她真正要的,是孩子能推开一条缝喘口气,可身子相对钻不出去。

换成产品经理冲过来嚷“加个导出报表的功能”,我们不可能听完就埋头敲键盘。得把这句话拆烂了嚼:谁用这个功能?是运营小姑娘每天下班前要交差,还是财务月底对账用的?导出的数据里头,哪些字段对她来说是“看都不想看的垃圾”,哪些是“少一个她就找你拼命”?没把这话问明白前,写的每一行代码都可能是在给未来埋雷。

导出报表背后,藏着一长串“谁”

这些细碎的问,恰恰就是计算机软硬件技术开发甩不掉的一面:再小的功能,也逃不掉对用户场景的反复拷问。有一回,一个导出需求看着很简单,把订单列表塞进Excel就行。可一追问才发现,那个运营同事用的公司笔记本还是六年前的旧配置,内存小得可怜。直接把上万条数据闷头往文件里灌,她一点“导出”整个页面就卡死,键盘敲不动,只能强行关浏览器。你说是代码逻辑有问题吗?是硬件吃不住了。

后来我们不得不把导出切成小包,后台静默分批次生成,再给她一个下载链接。就这一项“优化”,多花了近两天工时。可要是当时不问“你用什么电脑”,仅按着自己手头的高配机器来写功能,上线后挨骂的还是我们。这就是软件开发的真相,很多时候不是在跟机器较劲,而是在给不同身材的人量衣服。

系统里的“防误开”,永远差那么一点

回到窗锁那个类比。就算我们把锁舌做得再精密,把手装得再顺滑,仍然架不住一个调皮孩子在窗框边瞎晃荡,或者大人在着急时猛推一把。做系统也是同样的道理。权限校验做足了,有人还是会用截图代替数据发出去;敏感操作加了二次确认,有人闭着眼睛点“是”,事后又跑来说“我没操作过”。

我们只能反复在测试环境里模仿各种“暴力使用”:模拟网络突然断掉时点保存,模拟刚装完系统只有一个浏览器的环境,模拟一百个人同时导出……即便这样,上线后还是会有意料之外的状况。这算是个行业里没法打包票的地方:你可以把风险降到很低,但没法拍胸脯说锁得相对打不开。只能每次发现问题后,再给那扇窗多加一道暗扣,并提醒自己:功能上线只是开始,后续跟师傅验窗一样,得不停地去拧一拧、推一推,才知道锁还牢不牢。

那位妈妈最后追了一句:“要是能有个只开一拃宽的限位就好了。”你看,连家里关扇窗,都在提醒我们软件开发工程师的工作职责:真正的安稳,不是一把锁封死所有可能,而是让该喘气的地方喘气,该卡住的危险一点也钻不过去。

热门标签

计算机软硬件技术开发