从来到新公司那一天起,我就知道这不是一个轻松的差事,将充满未知的挑战,将承受来自各方的压力,将面临和经历各种各样的挫败感,但是没想到来的这么迅速和猝不及防。
昨天接到技术大佬的指示,要兄弟们在设计、实现各自模块功能的同时,注意代码的健壮性,并考虑到异常状况的相关应对预案,同时在写代码的时候,注意DFX,这无疑给我提出了一个及其高标准的要求,作为一个从未接触过项目管理,从未涉足软件行业,甚至从未写过正式完整代码的新人,我第一反应是崩溃的,那感觉就像是让一个初中生去做高考试题,完全是看天书的感觉,在这种情况下,可能的结果有两种:1. 交白卷,承认自己在这方面还是一个小白,这么艰巨的任务实在没有头绪,无法完成,我就希望自己可以安安心心的写代码,那么可想而知,我在大佬心中的得分也必定是零分,以后在高层领导心中我就是一枚弃子,我的价值和那些大学实习生没有任何差别,随时可以被fire掉;2. 信手涂鸦,按照自己对于项目管理的意淫,按照自己的“天真无邪”的设想把握整个项目的进展,按照自己对于技术大佬思想的理解,采用撞大运的方式行动,脚踩西瓜皮,滑到哪里算哪里,亦然可想而知,这样还是零分,就像在高考试卷上写下了一对小学应用题的答案,肯定幼稚可笑至极,在高层领导的心中,我的水平也基本被定性为与大学实习生相同。
那么有没有第三选择?
任何事物都具有两面性,甚至多面性,大佬布置这样明知我无法胜任的任务,原因可能有二:1.考察,试探我的能力,看看我究竟能交出怎样的答卷,是优良中差的哪一档;2.形势紧迫,实在没有多余的人手可以安排,只能让我赶鸭子上架了,那么如果我做的好的话,应该有机会得到更多的重视和机会。
那么有应该怎么做?从大佬的意思来看,他的核心目标是保证产品的质量,即希望我们交付给用户的产品可以稳定的运行,不至于像一台破自行车一样,除了车铃不响以外哪里都叮当作响,而且还不能上路,这样的产品是不会得到客户的认可的,自然也无法为公司赚得利润。
目的知道了,那么围绕这个目的我应该怎么做?从目前现有的情况分析,1. 大家现有的代码还停留在功能开发的层面,对于代码的可靠性,健壮性还没有最基本的考虑,对这方面工作的重要性还没有足够的,应有的重视,甚至最基本的意识都没有。2. 大家编写的代码还没有统一的规范,代码的可读性弱,可维护差。3. 没有项目文档,各个模块的功能在不断的调整和增加,大家对于彼此负责模块并没有足够的了解和把握。4. 对于一些校验性的工作,前端和后端的和合作不够充分,哪些前端做了验证后端就不用校验,哪些前端做了验证后端还需要检验大家并没有形成统一的意见。5. 对于代码的可能遇到的异常情况还没有考虑。
可以做的事情是什么。核心思想:1. 以时间换取空间,能拖一周,我就有一周的学习机会来汲取更多的知识应对大佬的拷问,所以只要每一周都比上一周有进步,我就赢了。2.先发致人,积极主动,主动把自己的想法发给大佬,主动把自己的进展发给大佬,让大佬看得见你在积极的做这个事情,同时在放低姿态积极的寻求大佬的指教,让他看到你的态度,你的改变,你的结果。
那么第一周的时间,具体的行动,有什么做法呢。
1. 同一公司内部的编码规范:利用两周的时间,每天早会给大家讲解一个java语言的编码规范,让大家按照编码规范来修改自己的代码,在修改代码的同时完成技术文档的创作,技术文档的格式我会先写一个标准,然后大家统一在这个格式下书写。
2. 每周六有两个小时的代码review时间,在这两个小时中,会有1到2个组员介绍自己每个方法的思路,组员内部采用一对一的相互找错的方式, 表格如下:方法名,问题点,发现日期,如何修改,修改日期,每个人每周必须找到对方3个-5个问题点。
而我自己将访一访技术大牛,让他们给我提点意见,好让自己可以在下一周乃至年后可以拿出更加切实可行的方案。