GameRes游资网

 找回密码
 立即注册
查看: 5305|回复: 0

游戏程序员修炼手册(三):如何做好技术管理

[复制链接]
发表于 2017-7-13 10:11:55 | 显示全部楼层 |阅读模式
v2-dfb827f27f848d97eec0ece897b050a6_r.jpg

  文/顾煜 授权游资网发布

  上次聊到,好不容易转职,做了一阵子引擎移植,涨了很多经验,结果做了一半被公司调动去做另一个项目的组长。

  技术专精到技术管理,并不是那么顺利。不是能做好技术攻关,就能做好技术管理。这一篇聊聊在这个过程中的收获和成长。

  我接手的团队大约有10人左右,在一个Unreal引擎开发的FPS项目中做AI逻辑。整个项目团队规模不到100人,程序团队就分了三组,引擎、网络和AI逻辑。

  新角色的定位,是一个冲在一线的技术管理职位。这也是我第一次做Leader。对我来说,摆在面前的难题有几个:团队融入问题,个人效率问题,大局观的问题。

  先要做的是团队融入。UBISOFT那段时间的人员流失不多,国内强力的网游公司不多,没竞争力,所以组长级别以上的都是熟人,合作多年,不存在什么问题。但组员就比较麻烦,多数都是新加入公司的,不知道能力。

  和软件开发一样,我融入方法是小步迭代,逐步了解团队成员的能力。对不熟悉的同事,分配一点简单的工作,了解能力的同事,可以领一点更困难的工作。然后定期跟进后续的,过一段时间差别就很明显了。如果把开发者能力作为Y轴,把积极性作为X轴的话,我们就可以构建四个象限,把开发者们一一对号入座:

  • 积极且能力强的,明显学有余力,保质保量完成工作,而且非常积极,主动来要新的任务
  • 积极但能力弱的,做得很努力,不是很能跟得上节奏,但也是非常投入
  • 不积极但能力强的,能比较快做完安排的任务,然后也不帮别人,也不来汇报,自己在角落happy
  • 有不积极且能力弱的,组里倒是没发现,也是万幸

  了解了几类人,就可以分别用不同的形式管理。

  • 积极且能力强的,可以给更难的任务,让他放手去做,然后主动汇报进展即可,平时也不用太多催他,能搞定的自然能搞定,不能搞定的他也会提前汇报
  • 积极但能力弱的,给一些稍简单的任务,同时加强辅导,帮助他在技术上能提高,多回答他的问题,给他更好的个人发展方向。
  • 不积极但能力强的,是比较难处理的。任务可安排稍难的,但要特别注意回避那些需要多方沟通、模糊地带的任务,这类同学往往比较懒,不善于或者不愿意推动事情,经常会卡住。然后要多跟进,除了正常的daily/weekly的汇报,还要常常关心一下他的进展,让他了解到,Bigbrotheriswatchingyou
  • 不积极且能力弱的,试试能不能挽救,不行也只能放弃了

  那怎么能准确的判断员工是哪种属性呢?新团队的磨合,其实就是一个彼此试探的过程。你做得好,就领更多的任务,我对你信任+1;你做砸了,我就给你更简单的任务,信任-1。主动积极汇报和领任务有印象分+1,看见你偷懒进度慢就印象分-1。细心观察一阵子,就很快有准确结论了。而且猜错也没有关系,这是一个持续调整和逼近的过程,这次错了,下次改回来就好了。

  这是一个主观判断,也许有些同事和你合作就是表现不好,有些同事和你工作就会有超常发挥。但没关系,管理就是一个比较主观的事情,在你的团队里,怎么用人还是由你来判断的。

  下一个问题是个人效率管理问题。之前做开发者,同一时刻需要跟进的事情并不是那么多,一个简单的todolist,或者往桌上贴点报事贴,基本就能把要关心的、要搞定的事情都跟踪起来了。做了Leader以后明显不一样,同时要关心很多事情,而且不同的事务,轻重缓急不同,时间属性不一样。

  怎么对任务进行合理的分类管理,是摆在面前的一个大问题。

  尝试了很多个人效率管理的手段,最后找到GTD系统,能满足我的需求,这是我的一个非常重要的LifeChanger。我翻了国内外论坛的几千篇Mailinglist,接触到各种奇奇怪怪的Lifehack理念,尝试了几次,成功实践起这个流程,极大地改变了我的生活和工作。

  个人效率管理系统,本质上,是一个减压系统,降低你的焦虑,帮你跟进琐事,让你把精力聚焦在真正需要思考的事情,而不用担心又遗忘了什么承诺。很多人会觉得个人效率管理太麻烦,生活不就应该是自由自在的吗?我认同的却是,自律才能得到自由,个人效率管理是通向自律的一扇窗。对每一个认真对待生活和工作的职场人,应该要去了解一下适合自己的个人效率管理系统。GTD也许太庞大,太重度,不适合你,那就做个更简化的系统,很多理念是有价值的,当你知道了,实践了,就再也回不去原来那个纷乱无序的生活。

  GTD系统就不展开说了,书籍、讨论非常多,也有很多以GTD为核心做了精简的管理系统。只提几个重要的观念:

  • 好的个人管理系统,可以帮助大脑减压,把对他人或对自己的承诺记下,就可以从脑中unload这些承诺,降低了记忆负担,真正可以做到Mindlikewater,关注手头工作。
  • todolist是有context的,本质上是为了减少使用list时候的无效精力开销。这个我模模糊糊也知道,但一直不知道如何合理分类,GTD给了非常好的示范,类似Errands、WaitingFor列表,给很多不知如何分类的任务以最好的归宿,真正做到以尽可能低的成本,跟进尽可能多的事情。
  • nextaction是推进很多事情的关键,但凡执行一件事稍有阻碍,我们就可能拖延。分解nextaction可以降低这个阻碍。

  当然我见过好多有才能的人,并不重视个人效率管理,依然取得了巨大的成绩。每个人有自己的活法,一套好的个人效率管理系统,会增加你人生的吞吐量,要想富先修路,没有I/O怎么能升职加薪呢。平凡的我们,通过合理的效率管理,也许就能在职场上走得更远一点点。

  大局观是一个比较难培养的能力,不在其位,不忧其心,就不会有机会锻炼。

  第一个和大局观有关的是跨团队协作。项目中不只有你一个团队,AI逻辑团队作为一个中央枢纽,要把关卡策划服务好,对接UI美术,把引擎功能包装整合,配合online组开发Matchmaking,和每个组都有或多或少的联系。很多时候,本团队工作安排最优不代表全项目工作安排最优,跨团队的合作,该强硬的时候要强硬,该让步的时候要让步,一切以项目利益最大化为目的。由于Leader们私交都不错,合作多年,相对来说跨团队合作都还好,没有太大的问题。

  第二个和大局观有关的问题是对自己团队工作的把握。什么时候该鼓励团队探索一些先进技术,并且在研究不顺利的时候决定继续还是喊停,什么时候应该保守一点,收敛需求,确保能完成相关特性,这就是一个典型的例子。这方面要做好,需要有广泛的领域知识,也需要一些跨界知识,更需要多个项目的经验。因为做决定的时候,也是在信息不完备的情况下,一个好的决定也需要一点点运气。

  第三个和大局观有关的问题是控制团队工作节奏。要试图理解整个项目阶段,我们团队的工作对项目交付有什么影响,什么时候我们是瓶颈,要加速做,什么时候我们有闲暇,可以放松一下,做点长远技术投资或是清偿一下技术债。当然,AI和逻辑团队永远都是瓶颈,所以也不用想太多,努力工作就是了。

  第四个和大局观有关的问题是组内的工作交付问题。有些同事虽然很努力,但总不能交付理想的成果,是换人来做,还是只好选择原谅他?换人来做意味着新同事要重新熟悉这一块的工作,老同事会觉得很沮丧,不被组织信任。换了新人如果搞不定怎么办?有几种可能,要么这件事就是不容易搞定,要么第二个同事还是不给力。所以换人做的话,一定要确保新接手的同事是信得过的,避免再次出现换人。只要新接手同事没做成,就告诉自己此路不通,我们想办法绕路。

  第五个和大局观有关的问题是李要控计李计几。Leader相对来说总是一个团队技术最好的,看见大家搞不定事情总想着要冲上去帮忙,找一下智商优越感。也很正常,人总是希望做自己擅长的事情。一起干活本没有错,也能很好提高团队士气,但是时机和工作内容要选好。千万不要选择在关键路径上的任务,如果搞不定会影响整个项目进展。因为leader在中前期总有各种重要的技术选型和决策要做,在中后期总是陪加班和调配资源,应付突发事件,哪件事都比上去搞定几个任务重要。如果手头有关键路径任务,往往都是最难的,工作中又无法抽出整段时间专心做,很可能会拖累整个项目。找点可以独立的事情,可以是比较难的长线任务,也可以是没有太多依赖的疑难问题debug,或者是做做优化,这些事情既能找到满足感,没时间搞定,也不会对项目有太大冲击。

  之前还写过另一篇关于Leader的文章,也可以跳转阅读一下:《做一个合格的主程序你需要符合这几点要求》

  总结一些中心思想:

  • 了解好组员,用最适合的方式管理大家
  • 个人效率管理对提高个人吞吐量至关重要,降低自己的焦虑,帮助自己成为一个更可靠的人
  • 培养大局观,做好协作,把握工作方向,控制工作节奏,关注组内同事交付,控制自己想做技术的冲动。

  相关阅读游戏程序员修炼手册(一):适合初学者的几点提升要诀

       游戏程序员修炼手册(二):技术瓶颈期如何转岗转职?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|稿件投递|广告合作|关于本站|GameRes游资网 ( 闽ICP备05005107-1 )

GMT+8, 2018-6-21 14:20

快速回复 返回顶部 返回列表