项目亮点案例
其实对我来说是日常操作,但是如果在面试的时候面试者能把日常的事情总结好发出来,其实足矣。
想让别人认同项目,选取的示例需要包含以下要素:
亮点项目四要素:明确的目标,问题点,解决方法和结果
这是一个变种的SCQA模型。
SCQA是一个结构化表达工具。用它可以很容易的把一件事说明白,可以讲出一个好故事。
头一天下午收到一个需求:
明天下午4点要给客户演示一个功能,这个功能刚刚想好,产品还没开始设计。大体是要根据一些相似的办结的案例和用户诉求,对为办结的案子自动生成回复功能。
需求大概下午5点多同步给我有这么件事,产品快7点给了产品原型。后端用大模型来做,7点多的时候后端已经开发好了,主要是前端工作。大概就是两个页面。
假如你是一个小leader,目前前端开发除了你之外,还有一个工作经验只有一年的小哥哥。你要是做比他快很多。他的话大概2小时搞定,你1小时搞定。你是选择自己来做还是他来做?
我选择让他来做,因为第一点:任何事情都没有看起来那么简单。除了开发,还有很多工作要做,一个人兼顾串行会很消耗时间。第二点,这种明确短期任务是增加大家凝聚力的好时机。一个人很牛不如一个团队很牛。
我是怎么做的呢?
首先打消大家的顾虑:我马上找了老板问他说我们能不能今晚做完再下班,明天睡醒了再来上班。老板说没问题后我立即找HR报备。
因为大家预计晚上不会很晚,明天还能晚来,是很开心的。我留下了前端,运维和产品一起加班。前端开发,有设计不明确立即找产品确认,运维负责测试数据让前端可以顺利看到效果。任何问题找我协商。
前端听产品讲完需求后觉得比较简单,问我能不能花半个小时把正在做的收个尾再做。我知道事情不会像看起来那么简单,时间开销大概率会长于,该不该告诉他让他立即放下手里所有事情立即做?
我选择同意他的做法,没说任何多余的话。任何不同的观点都可能产生内耗,反而拖慢事情的进度。
大家各司其责,9点半多开发完成了。但是有个问题:后端接口因为调用了大模型所以返回数据特别慢,大概几十秒。我让前端先加了个最简单的转圈圈⭕️的加载中效果就让大家先回家。
因为我们前端包特别大,打包特别慢。预计快到家才能打包完。到家正好发布测试环境,明早产品确认符合要求,有问题还有时间调。
路上我给老板汇报进度,给了个截图。因为做出的效果和产品给老板看的原型有区别。我们采用了实现更简单而且更美观的设计。收到老板的点赞后,我开始了下一阶段思考。我问后端大模型能不能采用流式输出,这样前端可以实现像打字机蹦字一样的效果。后端说不行。我猜测在他的想法中这种效果需要前后端一起做非常大的调整:比如使用websocket协议。
我想到这个加载速度不解决,到客户那里演示,大家等30秒出结果该有多尴尬,让我们的技术看起来有多菜。
晚上到家发布好测试环境,熟悉业务的后端点了几下发现了一个小问题,我修改好了重新发测试环境确认后上了生产环境。确保有一个可以演示的版本。
然后我自己使用API调用的简单实现重写了后端代码采用流式输出,将流的结果写到redis缓存中。设计好前端传参的时候,如果参数不变维持既有逻辑。但是传入的时候如果传入缓存键就采用流式输出。缓存键传入了,之前不存在就发起请求大模型流式输出,开始写redis。
下次请求如果检查redis存在则直接从redis里取最新结果。这样前端就可以通过定时调用来实现打字机效果。
我把写好的代码上传git后给后端开发留言请他完善一下。虽然下午开发小哥哥问我明天晚一点来上班是可以多晚。我还一本正经的实际在开玩笑:别太过分,尽量赶在下午2点半之前。开发小哥哥很开心,本来还以为要中午12点之前。但是实际上我自己只比平时晚了一个小时,因为前端代码还没有开发。
我到公司顺利和后端开发配合好上线了完善版。在我开发的时候,产品也到了,在产品验收问我转圈圈的加载中提示太难看,能不能改成进度条。我说稍等一会儿让你看看我的进度条。10分钟后神气的展示了效果。
之后,我让产品和运维多测试几遍,确保演示时操作熟练,同时找好最合适的演示数据。然后还还录了视频发到有老板在的群里:万一遇到网络问题等故障,放视频用来兜底。
老板看了没理解(人都是要死的,机器是一定会坏的,网络是会断的,任何情况下都可能出状况,一定要做好兜底),只是招呼所有人多测试,说一定要在正式环境演示。
下午的演示一切正常。客户和老板都没有提到这个打字机效果的问题。没有反馈就是最好的反馈,说明他们看起来是自然而然的不别扭的效果。
事件就是这样,我这里就不像影视剧一样添枝加叶,非说因为这个拿下了项目之类的了。因为我们确实没有完全拿下,只是获得了一个争取的机会:效果达到了。