前言
随着项目慢慢完善,代码慢慢积累,业务线也渐渐复杂。随着业务线慢慢复杂,需求不但增多,慢慢就出现了补丁式开发。当补丁式开发越积越多,系统也就越来越难维护,毕竟并不是一个人对项目打补丁。当项目是在难以维护时,就会出现申请重构部分项目或者业务线代码的呼声。
不知道是幸运还是不行,两个月前Leader分配了一个重构部分业务线的任务,我作为推进人,带领着两位同事一起完成这个任务。之前都是作为一个最直接执行命令的角色,从未处于这样一个推进人的角色。在进行这个任务过程中遇到了特别多的问题。这些问题有时会让我非常苦恼,借此机会记录一下心得和感受。
一、遇到的问题
1.1 背景现状调研准备
当对需要重构的业务线的代码现状进行调研时,没有对业务线相关的边边角角全部进行统计和查看到,因为不同的业务线相互交织,每条业务线其中包含哪些子业务线,都是非常复杂的,一开始想要完全的考虑完整,统计完全缺失非常困难,这种情况只能尽可能的仔细的耐心的调研,把一个完整的大的业务线拆分成一个个小的业务线,每条小的业务线从头到尾,每个分支,每个入口都找仔细。此过程可能需要时间长一点。
项目开始时,我的调研工作做得就不到位,只找到了60%的业务线,当真正后期实施开发的时候才发现,有很多当时没有想到没有调研到的业务线,导致工期估时不准,既延长了工期,又进行了加班,急急忙忙昨晚的话,效果还不一定理想,这个可谓是第一个大坑。
1.1 小组交流不及时
一开始大家都不熟悉,而且我们三个人分别在不同的组,工位相隔有一定距离,所以无法一歪头相互沟通的那样便利。由于我个人性格的问题,我一般都是主动走到他们各自的工位上进行交流和同步。实际上这样搞得自己非常累。
项目开发中,开发的时间成本非常重要,小组之间的相互交流也非常重要。两者的时间比例因团队而异,已经磨合的比较好的团队,相互交流的可能不需要那么频繁。像我们临时组建的团队,就需要频繁的交流了,及时的相互同步进度和任务。
然而我们一开始并没有做好及时交流,信息不同步,多多少少会耽误项目的整体进度。
1.2 工作分配问题
我作为推进者,Leader让我对其他两位组员的任务进行排期。我作为推进者,总是无法合理的将所有工作分配给我们三个。
当真正开发的时候,做得慢的同事,为了不耽误工期,我会做一些他的工作,而且遇到写的不对的代码,我也会直接去改,改后再与同事同步。这样我负责的事情就越来越多,肩负的开发任务就越来越重。因为代码量多了,对应的单测和mock接口也随之变多。
二、正确的方式
2.1、工具的使用
2.1.1 公共wiki
合理的使用wiki,会节省一部分事件。在一开始调研的时候,在分配任务的时候,以及记录todoList时都可以使用wiki。只要组员随时关注wiki的动态,随时更新wiki即可。利用好wiki,也是非常重要的。
2.1.2 每日站会
每日站会也非常重要。一开始我们三人没有意识到要利用每日站会,来同步前一天完成的各自的工作,以及今日计划的工作安排。也是这个原因导致我们没有非常好的相互交流。
三、个人心态
个人心态的话,确实因人而异了。我之前从未做过推进人的角色,从未担过这么重的担子,说实话心里非常非常累。刚接手这个任务的时候,心里非常想把这个任务做好,做得漂亮,再加上两个组员一起,只要把准备工作做好,一切都好,所以信心百倍。但真正进行的时候却不是这样的。由于各种各样的原因,导致项目进展比预想中的要慢很多,时间非常不够用。
我作为推进人,整个项目的把控和责任是我一个人来扛的。由于我们需要每周五进行一次项目进度汇报,所以在每周汇报的时候,怕领导问责,就隐藏了一些问题,希望能够顾在下一阶段加班加点把欠的债还完。结果问题越积累越多,时间越来越不够用,所以基本上连续好几个周,我周末都来义务加班,把问题慢慢解决掉,这样压力变得非常大。身体和精神都不太很好。
所以,项目进行过程中,无论遇到任何事,即使是不理想的进展,也要如实跟领导说。要让领导掌握真实的项目进度,不要瞒着领导,更不要报喜不报忧。因为中间出现任何问题对进展有影响的话,领导知晓后会站在他的角度去进行解决或者提出建议,而如果他什么都不知晓,领导会以为项目正常进度进行,到最后出现问题的话可能为时已晚。后果只能自己承担,伸直自己也无法承担,
在开发完成之后需要进行测试,又因为老代码的问题,mock接口由于业务缘故非常难实现,给QA人员测试造成了非常大的困难。我作为整个项目的推进人,与QA的测试工作基本是由我来配合的。由于QA测试的不顺畅,我就经常被diss(经常被打脸)。
由于以上种种主观以及非主观原因,导致项目一直延期。我个人压力非常大,但是项目完成情况不理想,这让我产生了非常大的挫败感。我个人的心态很不好,比较悲观,总是否定自己,感觉自己完全胜任不了这个任务。每天快十点的时候才下班,周末也来公司,已经连续一个多月,非常难受。
还有一点非常不好,在出现紧急情况的时候,我无法冷静下来去处理问题,非常容易慌乱。一慌乱就无法解决问题,会浪费更多的事件。其实有些事情,冷静下来,耐下性子,慢慢就可以解决的。
看来自己的心态确实很不好,心智还需要不断的锻炼。自己的路还有很长很长。
技术再好的人,写出来的代码也很难一点问题没有。为了保证整体进度,可以先发,发完后发现问题,抓紧解决,尽快再发布上去,继续观察。
网友评论