当年多少次做梦都在想以后能不能做到那样的一个程度,可不可以自己不用干活在旁边指挥指挥就好,轻轻松松就拿钱,而且是超高那种。后来发现完全是两码事,如果我们不能在短时间内做调整,我敢保证累不死人。多人的开发班子,多条业务线,反正别人做不了的你都得上,关键是还有人给你挖坑。你不做没人做,你不抗没人抗。以下是个人的一些套路,团队人数不一样,公司性质不一样,都可能不一样。套路是这么个套路,但能参考
培训
有的时候放权,结果却让人吐血。如果事事都得自己来那么会很累,但是若不自己来心里总觉得不踏实。这个时候我们最好选择培养一到两个人,具体视团队成员而定。给他们洗脑打鸡血,把目前所有的经验和知识分享给他们,最好是要让他们能够超过我,能够取代我甚至可以让我滚蛋。为什么不是所有人,就像西游记里面师徒四人一样,很多人都是沙和尚,别跟我讲什么价值观什么使命感什么以后,我就喜欢按时上班按时下班按时拿工资,福利可以分我其他什么都别跟我扯。对于这种你要花很多的时间,很多是经历习惯决定的,这就比较尴尬,但是团队里面少了他们也不行。所以项目不是很急的时候,面试一年的经验和三年的经验对于我来说没什么两样,需要看你的学习方式和态度,你对知识的追求,因为刚开始我也不需要你干什么。
为了提高效率和稳定团队成员,还需要抽出20%的工作时间来作培训和交流,作为码农你给我讲制度,讲惩罚,讲一大堆都代替不了我们一行行去写代码,最直接的方法就是让他们做的更快更好,若是能比IOS开发周期短,程序更稳定,他们会非常高兴,当然这些需要知识和经验的积累。这些时间我们一般会做三件事情:任务完成情况,技术实现方案讨论,学习与讲座。
开发
只要是作为团队成员那么你就不应该离开代码和文档编写,而只做架构图或者干脆让别人来代替,且不说别人怎么看你,就单单拿系统来说,后面需要救火的时候别人下班走了,请问你怎么救。而作为系统的负责人,必须亲手领导参与建造,才能有足够的能力去担起这个责任。所以刚开始你必须有一半的时间来参与开发工作,所以上班的第一件事应该是把手机放进抽屉做到物理隔绝,然后打开IDE开始撸码。当然没必要什么都写:
1.设计搭建架构
这个是最重要的一步,而且很繁琐,不画设计图上来就写代码的技术员,越到后面越惨,而且惨得不行,当然如果你很喜欢缝缝补补,喜欢天天加班倒没什么,我就不信那么多东西你能全记在脑袋里,奇了怪。对于其他成员来说,架构在分工合作,提高质量,提高开发速度和舒缓开发者心情上面起了决定性的作用。
可以多关注代码架构,很多人喜欢关注运行时架构,当然运行时架构是不可少的。代码架构是更加稳定的设计方案,一旦发生一些小的需求变化,运行架构肯定会有变化,但是大的方向往往不会变化频繁,因此我们可以根据大的方向来组织代码,划分模块。所以这个不能乱,一旦乱了不管你怎么调整还是会问题百出。
2.难点关键开发
对于部分难以实现的代码我们还是得自己来,在一些中小型企业,如果这些让别人来做,到头来还是给自己找麻烦。质量底下的代码会造成故障和Bug,后面一旦出现问题也会消耗更多的时间成本,本来人手又紧后面还要到处救火,会导致天天加班而出不来项目。还有部分成员往往没那个能力,你让他去实现可能导致功能虽说实现了,但是可控性并不高,一旦需求稍有变动会出现各种问题,出问题没什么,关键是他根本不知道怎么解决。在大公司,团队成员普遍素质比较高,这种现象倒是鲜少出现,但是核心代码我们最好还是自己操刀。
3.各种救火
架构部分代码往往是最容易出现问题的代码,随着需求的不断改变有时需要调整,严重的还可能会出现Bug,有时还需要防止成员copy你的代码另起炉灶,当你改代码的时候要改多个地方也比较麻烦。团队其他成员写的代码也时常出现Bug,往往他自己不能解决这个时候你就得帮忙。当然找问题的过程本身也可以提高技术水平,关键是要让自己和团队的成员学会使用各种诊断工具,学习思考和分析问题。
管理和学习
1.代码审核
需要让团队认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。
在代码审查中如果发现问题,对于被发现者,不主张使用这个方式予以惩罚。软件开发中bug在所 难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,影响积极性,代码审查就没有任何的价值和意义。
2.进度审核和任务分配
任务分配是个大问题,而且又是一个权势的工作,成员面对一个任务时,往往不能正确、合理地安排时间。如果出不来,会给你若干理由,比如很忙,造成任务延期或者加班,最后造成整个项目的延期。怎么避免这种情况不能让班子成员各搞各的,我们自己得有一套任务分解,任务描述和时间分配原则,风险管理和计划余地,首先是自己能够把事情做好,然后可以把他分享给团队成员。
3.面试和各种会议
准备一份有区分度的笔试题目,不靠谱的人多了去,自称多少多少年经验。但你要他写个倒计时往往都写不出来,这么个题目我们送走了很多人。老板不是花钱请我来和他们聊天的,所以我通常会问四个方面的内容,源码、设计模式、优化、NDK。对于应届毕业生,我往往倒不是特别关注技术,也不需要他目前能实现各种功能,很多东西我可以自己来可以写好让你调。所以我比较关心学习态度、上进心、听安排、别惹事,这方面HR往往比我们看得准。
部分会议我们可以抵制,能不去就不去。尤其是部门沟通会能躲就躲,那是扯淡者的天堂,测试、产品、设计比程序员能扯的多了去。如果还有一个功能等着你去写,你会很蛋疼。这个时候你可以派一个人去一下就好,回来让他告诉你发生了什么。
4.学习
学习一停我们基本就死了,把手机放抽屉也是为了让我们在闲下来的时间可以去学。而我一般选择多写文章,多参加技术沙龙多与别人交流,选择周末多看看别人的框架源码等等,反正我的状态大家基本了解,周六日晚都在给大家做直播分享。只有这样自己才能得到提升,项目才能做到可控,只有这样才能去影响团队成员而不是靠说,当然该说的还是要说。
尽管我们现在还没有做到那样的一个程度,但学会像一个技术总监一样去思考问题,积极乐观的心态非常重要,学习、思考、努力、利他,day day up!