项目自我复盘

2018年3月15日开始出差,主要协助推进项目研发和生产进度。为期两个半月,基本任务已经结束。趁休假期间,对项目(我所能见)的方方面面做一个自我的复盘。

研发和测试

1. 软件开发质量

我认为一个软件的质量最主要的指标就是稳定可靠。功能不完善,但已经有的功能一定要稳定。计算机软件本身就是为替代人工操作而生的,时灵时不灵,不断需要人为干预,基本判定就是失败的。

这个项目中,我们的软件主要是系统集成、测试软件(也就是testapp)和烤机软件。

系统软件方面(我所知道的)主要包括后台服务进程、重启恢复出厂设置及recovery升级机制、原生系统修改等工作。其中在生产阶段出现的问题只有一个,就是DHCP方式过去IP的租期问题。这个按理不算研发出现的问题,因为安卓原生系统默认的ip租期不是一分钟。不过作为我们出的产品,客户既然提出要求,我们研发人员也及时作出修改。所以这个应该不算问题,属于及时满足客户需求。但是考虑到安卓系统的默认租期时间,以及我们常用设备,比如笔记本电脑的请求机制,为满足客户DHCP租期1分钟的要求而直接修改系统中这部分机制,还是有待商榷。可能存在其他潜在风险。毕竟路由器的DHCP租期设置为1分钟是非常规环境,而我们的产品是面向普通消费者。

这次生产过程中问题较多的是烤机程序。首先是bug较多,程序运行着就会出现界面卡死不动,或者上传下载不动,或者闪退,或者读写速率异常等等现象。这些问题的根源就是在写代码前软件逻辑不周全,没有考虑到某些异常情况的处理,也就是说大部分分支都是开发者认为正常的分支,没有异常处理的分支,或者太少,也就是犯了想当然的毛病。从需求到软件框架逻辑是一层,从软件框架逻辑翻译成源代码是另一层。大部分软件错误都是出在这两层,如果有问题,就是开发人员基本功的问题,需要继续加强。

除了这些程序bug外,还有很多需要优化的地方,也就是说不够友好。比如最开始的界面中只有三个路径的上传下载显示,没有其他任何信息显示,如果出现什么异常,操作人员绝对一脸懵逼,无法下手操作。机器与人之间,除非是后台服务,否则要么需要与人交互,要么需要足够的信息显示,并且实时更新。在烤机程序的各个版本中,依次优化的内容有:优化进入烤机界面的触发方式、增加led灯对各个状态的指示、网络连接状态及ip信息实时更新、增加chipID、三个读写次数及当前上传下载的百分比实时更新、不论上传或者下载失败均会立即重新触发一次上传下载等等。这些均不是所为的错误,但让软件更加友好,对他的用户,也就是烤机的操作工来说大大简化的操作。后续版本出现了这么多的优化点,从侧面反映出最初版本是多么的不完善。软件从主要功能实现和最用可以给用户使用之间还是有很大差距的,这个差距应该留在研发阶段,而不是给到一线。烤机应用的第一版到目前用的版本正好是把这个阶段放在了工厂。这根本原因是开发人员在设计之初没有设身处地的考虑软件的使用场合,缺乏产品思维,没有把一个很简单的软件当做一个要交付给客的独立产品来对待。思维反映在行为上就是软件不友好,缺乏细节处理,用户体验差。这一点也是我在工厂这段时间最深的一个体会,对我自己以后的软件开发工作提供了宝贵的实践经验。

在各个版本优化过程中,有几次出现修改A功能,结果A功能修改好了,但B功能出问题了。这反应出软件的模块化处理不够高,耦合高。最坏就是牵一发而动全身,各模块相互牵制,增加开发和完善难度。

testapp对于产线生产时的影响。

由于产线生产时要进行功能测试,testapp就是承担这一重要角色。除了上面说的软件功能要完整、稳定、友好之外,更进一层的应该就是流程和操作上的优化,也就是对于产线测试效率的优化。比如在烧录MAC和SN时需要网络连接,此时可否同时完成网口的测试项(功能和速率);能简化测试环境的尽量简化,比如不用再产线上搭建一个临时FTP服务器;能操作简化的也尽量简化,比如一些硬件接口测试项,能自检测的尽量自检测,能目测的尽量目测,不要让作业员再去手工确认。当然关于这一点的优化是跟实际环境有非常大的关系的。开发人员要了解作业员的操作环境,操作流程,甚至是操作习惯。对软件上的一些优化,将会大大提升产线的测试效率,大大降低产线测试环节成为瓶颈的风险。

2. 软件测试目标

此项目中,我和另一位同事在南通工厂关于testapp和烤机软件相关的工作大部分可以定性为软件测试工作。由于工厂相比公司有可以同时运行多台机器的环境,所以需要测试软件性能、环境压力等测试目标的,我们可以协助在工厂这边完成。不过这次工作中有一部分是属于功能测试,只需要一台机器测试就ok,也就是说经过测试部测试就可以了,不过即使是经过测试部测过的版本,在工厂这边依然出现了不少问题。这也应该引起对软件测试工作的思考。研发人员在开发完成后首先要自己测试,最好是能验证各个分支都可以走到,各种异常都进入了预期的分支,验证各个功能无误。测试部测试时就需要有详细的测试记录等等,比较专业,这个我还不太了解,不能妄言。不过感觉在这一步时需要有类似用户层面的测试,也就是软件是否友好,操作是否方便,使用逻辑上是不是合理等等问题。毕竟这个总是需要有人把关。当然,对于2C的产品,有些东西应该是属于产品经理的职责范围了。

在工厂最多的就是拷机,有时我甚至不知道拷机的目标是什么,即是为了验证那个问题?拷机多长时间才算达标?通过拷机能否验证?这些问题好像不能很明了的回答。窃以为,如果是硬件问题,通过拷机是可以验证出来的,因为电子元器件在长时间运行下,会出现性能波动,如果是这种情况,硬件研发人员应该给出一个具体的拷机时长。如果是软件问题,拷机其实就是验证非常偶然的情况所引发的bug,这种情况其实还手动是软件的bug,是可以通过审查代码来过滤到的,可以不用通过长时间的拷机来复现。

3. 工作方式反思

上面两点问题中有一个原因就是时间紧迫,这个是工作中经常面临的问题。在多单位协作中,其实慢而稳就是快。因为如果由于仓促,上游单位出现问题,下游单位基本白干,非常浪费时间和人力资源。所以,时间越紧迫,越是要头脑清晰,减少不必要的时间浪费。

另一个印象深刻的就是测试烤机程序的那段时间,通常会在九点半左右发一个新的版本,但是受工厂条件限制,再加上前期烤机软件不稳定,每天晚上我们要到凌晨一点多才能完成几十台机器开始稳定烤机。第二天一早还需要汇报烤机情况。由于公司发版本与工厂多台机器烤机是流水作业,所以应该考虑到各工位的时间节点,只有合理的时间安排,每个环节最好能设置一个Deadline,保证下一环节的正常进行,这样整个系统才能打好持久战。

关于工作方式,还有一点感受很深:越是紧急重要的事情,慢就是快。在处理紧急重要的事情的时候,最重要的就是稳,最忌讳的就是返工。而在这种情况下,人难免自己也会着急,着急就容易有疏漏,疏漏就可能应发新的问题而导致返工。这样下来其实反倒是慢。一定要在天晴的时候修缮屋顶,一定要在事情还不紧急的时候抓紧时间。

4. 采购供应及生产

实体工业中非常重要的一环就是供应链,这一点我算是涨见识了。我虽然没见过整个产品的完整物料单,但是小到一个底座下面的螺丝孔的橡胶帽都可能出现尺寸偏差大的问题,管中窥豹,可见一斑。

供应链的另一个难点在于时机。各级供应商都是不见兔子不撒鹰,不愿意囤积物料。生产厂商是最终客户的乙方,却是产品所需物料的所有供应商的甲方。如果各供应商都等着订单合同才开始生产供货,那最终形成的情况就是整个供应链会在生产厂商这里形成一个风险堰塞湖。整机的订单签订,也就确定了最终的出货日期。而所有的供应链问题都必须在这个时间窗口期解决,风险和压力很大。

那如何化解和预防这样的风险呢?这是一个很难回答的问题,不然就不用一个团队来做这个事情了。

不过在整个生产过程中,我也看到了一些觉得是问题的问题。

一、沟通的问题。在生产过程中,有时是有物料的修改的,此时最好有邮件专门的人负责修改信息的核对,这样有邮件列表可查,也容易整理核对。避免口头传递消息而产生的错漏,拖延生产。

二、供应商如果对所供物料有所调整,比如材质、是否贴膜等,需要及时确认。采购入库时要对每一批次物料都要做统一性标准的比对。

三、

5. 管理

我觉得管理的本质是对权利和责任的界定,然后考察承担某项权利和责任的人是否能胜任此职。

在整个项目的测试、生产、交付过程中,我们一级领导过多的垂直参与导致权利逐渐收拢,责任也随之集中。带来的结果就是次级领导不敢拍板,成了信息的传递者,而一级领导筋疲力尽。更高级领导过问,对工作进程肯定是有帮助的,可以在各级之间形成压力,推动工作向前进行。但这种推进作用必须是逐级推进,而不能去越级指挥和决策。这样对上级来说,立竿见影,效果明显,感觉很爽。但对下级来说,就相当于一个电视机对多个遥控器,会出现执行的偏差。同时,对中间级领导来说,更难做了。避免这种问题,是需要一个公司的良好氛围的,需要各级领导和员工共同营造才行。上级坚持只对直属下级形式权利和承担责任,下级只对自己指数上级负责,听从工作安排与决策。

6. 借鉴与学习

此项目中软件有一部分是需要与客户联调,有幸去感受其他公司的文化。有三点体会深刻。

一、明确任务。在梳理问题时,将所有梳理出来的问题,写在白板上(整面墙),一直不擦。在接下来的开发过程中,对照问题列表,集中处理一个,标记一个。

二、扁平化。所有员工之间称呼都是姓名,不带职位称呼。很多公司都有这样的规矩,个人感觉是比较好的,可以很好地促进各级之间交流沟通。

三、看见看不见的成本。在生产初期,客户派人过来驻厂测试,自己带了相关设备,搭建测试环境。和我们的测试环境相比,对比太明显。我们自己的U盘、插线板、网线都太差了。U盘虽然很便宜,但是容量很小、质量差、损坏率高。网线很硬,在老化架上接到板子上后,乱成麻,而且很容易把板子扯下来。这些东西用的都比客户的成本低,但是质量却差了很多。看似节省了成本,但是我们因为这些东西导致的返工、重复测试、更长的环境搭建时间导致的人力投入和损失,远远超过节省下来的看的见的成本。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352