你有困惑吗

工程师层级人员讨论会 – 2018-12-7

avatar

上周,部门主管黄总和HR组织了一场讨论会,召集了大概20个开发,大概水平都是处于工程师层级,这个层级评定和你工作年龄无关,而是和你的工作产出,负责项目相关。在我看来,过去的大部分都是业务骨干,因为基本涉及部门所有产品线的所有开发人员,有工作两年的,工作4年,5年,8年的。确实,软件开发和年龄其实关系不大,而是和你负责的业务,技术水平相关。如果你负责公司的核心业务开发,只要你能支撑下来,就算你工作年限不长,技术水平不广,不深,但是因为你处在这个位置上,因此你也很有价值,但是话又说回来,如果你工作很多年,还是处于这个层级,那就确实是要考虑一下了,因为你陷入了一个瓶颈,可能工作中80%-90%的时间都是做一些常规项目,而且是做完这一个接着又做下一个。

因此对于多年处于这个阶段的人来说,是安排的工作太简单了,得不到提高,还是干活的人想的太简单,这个需要自身考虑清楚。

今天讨论会主要分为两个阶段,第一阶段,首先大家分为4个小组,然后每个组讨论,将自己工作中遇到的困惑,瓶颈,以及一些需要外部协助的点(包括公司层面,其他部门等)列出来。

总的说下来,大概就是以下几点:

  1. 项目周期太紧,需求开发时间安排不合理,整个项目中,产品部需求评审耗费时间较长,需求评审时,测试部也参与,而测试部往往疑问较多,导致评审周期拉的很长。(克服方法:尽量线上解决或者只参与自己负责的需求; 提前熟悉相关需求,做到提前量)

  2. 项目中,分配的模块整改,代码重构时间较短。导致重构做的不彻底,挖的不够深,整体性能和设计上,做的效果不明显。(克服方法:尽量早的提出预研,拉长时间周期;如果是影响后续大版本开发的重构,那没办法,必须做)

  3. 多线程工作,一个人同一个时间身上负责多个项目。在日常工作中,因为参与项目较多,导致工作经常性的被人打断,在多个项目中切换,效率很低。(克服方法:分析问题和编码,做好整体思路存档标记,问题处理完回来可以无缝切回来;对于插入问题,预先进行分析评估,短时间解决不了,另行安排时间,不纠缠)

  4. 工作中做的 90% 多都是常规工作,技术提升的、绩效突破性工作安排较少。(克服方法:自己向上级反馈, 主动提出)

  5. 最后一点是我对自己提出的,接触的模块多,技术点也多,但是由于总结意愿不强烈,导致很多东西掌握的不够系统,不够深入,当然也有一部分时间上的限制就是了(项目紧,工作忙) (克服方法:加强写总结的习惯,反省自己)

  6. 与外部对接方面工作,推动力不足,主导意愿不强,很多时间往往浪费在沟通和踢皮球上,对工作毫无进展。(克服方法:改变态度,无论是现在公司,还是以后的工作中,对于参与工作,要与担当,积极主动的去推进)

上述大部分遇到的问题,都是很多公司的问题,并不是公司独有,黄总也说面试过很多人,这些问题都是客观存在的,如果你能把这些克服,做好,那提升会很明显,一句话,效率最重要。

第二个阶段,提出四个需求,让大家进行讨论,给出一个大致的想法,思考方式。每个组选择了同一个,如下:

需求1:公司一款产品,之前支持存储5000个联系人,现在客户反馈不够,需要能支持5万个。

最后大家讲了一遍,给出的总体流程和思路如下:

  1. 可行性分析,该产品之前支持5000个,现在要升级一个数量级,基于现有系统的内存和CPU频率,是否能够支持这么多联系人的存储、搜索工作。

  2. 需求分析,之前方案设计实现背景,是否可以在之前方案上直接进行拓展; 竞品和公司其他产品线是否有相关方案的支持,如果支持,是否可以直接借鉴和复用; 现在是要求5万,后续如果再升级到10万,30万,50万,选择的方案是否可以支持,需要向拓展性上考虑

  3. 在原有方案下拓展优化,还是说对整个框架进行重构,如果重构,是要引进什么新的技术吗? 数据库? 如果引入新的技术,那如何保证整个系统的鲁棒性和可移植性,因为后续可能不止你一个产品要用,可能将方案适配到多个平台上去。

  4. 方案选择好后,需要同相关涉及模块的开发人员,一起讨论,对外进行评审,排除各个模块的风险

  5. 设计文档编写,给出整体的思维导图,理清各模块间交互,保证方案的拓展性和易维护性,方案整体要在时间和空间上进行平衡,保证搜索和存储都较好满足,某些场景可能需要牺牲空间来满足搜索的速度,而某些相反,最后将相关接口评审完毕,进入开发

  6. 开发完成后,需要编写相关测试用例,包括引入相关测试框架进行单元测试,性能测试,内存检测等。编写测试导图,以便测试部能够更好的展开测试工作

  7. 异常场景考虑,在开发和自测过程中,要将异常场景考虑在内,如果采用的是云端联系人存储,临时拉取方案,那如果向服务器请求时,出现丢失该如何处理;在满载,高负载场景下,是否会有异常,UI表现是否正常;是否要加入相关请求的防抖动处理,一句话,开发人员也要有测试思维,加强异常极限场景考虑。

大概就是上面两个事,总的来说收获是有的,对于测试这一块还需要做的更好,相关开源测试框架和性能工具需要多加使用。总的来说,勤写总结,吾日三省吾身,找到效率瓶颈,提升效率,提升技术水平是没错的。