横向管理方法:挟天子以令诸侯
情景再现
9月份开始,我手上的项目就一直在准备验收。项目信息:
- 主要可以分两个课题(课题1、课题2);
- 两个课题是一个大问题解耦得到的,只有两个课题都基本完成的情况下,才能进行联合调试;
- 项目的目标是分别在两个课题中进行深入研究,最终构建一个联合的计算方法。
- 此时的约定日期是11月。但是甲方9月份的时候刚刚加了两个需求,都是课题1的需求。
当时团队是这样的:
- 我(博4):项目总负责人,课题1负责人,负责统筹协调项目、和甲方对接、课题一的推进。独自搭建了课题2的理论分析、代码实现、验证性仿真框架,指导师弟1进行仿真平台搭建;
- 师妹(硕3):课题2负责人,负责课题2的推进、仿真方面与甲方对接独自搭建了课题2的理论分析、代码实现、验证性仿真框架,但由于即将毕业,因此主要精力需要投入硕士论文的工作中;
- 师弟1(硕2):仿真负责人,负责写仿真,配合课题1和课题2完成仿真工作,但是因为还没有确定硕士毕业的研究方向,所以很大精力投入在找方向上;
- 师弟2(硕1):新加入成员,预备接手师妹的课题2工作,主要是跑实验、写报告,研一新生需要上课;
- 师弟3(硕1,远程):新加入成员,预备接受我的课题1工作,主要是根据我写的推导,完成课题1的新家需求的代码实现和验证性仿真实现,研一新生需要上课;
- 学弟4(本科毕业,科研助理):新加入成员,负责完成课题1的已经基本完成的需求的仿真运行和数据收集及绘图,需要承担科研助理的工作,以及为了申请出国而上课考雅思。
当时的情况是,师弟1和师弟2主要配合师妹进行仿真验证,但是数据久久对不上,然后一致排查不出来问题。因为我和他们不在一个校区,所以也不太清楚他们的工作状态,总之我这边感觉他们的进展非常慢。师弟2反应师弟1经常不干活,但是他也不好意思催,师妹表示师弟1是催一下才能动一下,有时候催一下也不动。
师弟3因为是新生,前期我花了大量的时间和他打视频,给他讲课题1的思路,以及带他过我写的代码。可能内容比较多,师弟总是不能在我讲解的当时就理解所有内容,必须要在“课后”进一步消化。我和他说,有问题一定要及时问我,不用担心问题问的不够高级,也别攒着非得到下一次会议才提问,我最喜欢教别人了。但是师弟3还是会把问题攒到下一次视频会议统一提出。这就导致问题没有及时解决,一些环环相扣的问题可能会拖拉好几周才能解决。在后期,他开始写代码了之后,会和我反应“调不通”“无法收敛”,然后我会给他提供一些分析问题的思路,但是他会一直卡在那里。毕竟是远程,我不知道他有多少时间投入在这个项目上。
学弟4是科研助理,9月末10月初找到我,说我导师安排他来我这里做一些事情。我问了他的情况,基本就是因为要出国,所以干不了太长时间,但是目前需要有一点项目经验。根据他的情况,我给他安排跑仿真收集数据的工作,并列出了任务列表。最开始的两周,我每周和他沟通一次,但是他每次都说有事,还没开始弄;后来10月中旬开始,我大概两天就去问问他,进展怎样,他都推脱说有事,要么是上课,要么是考雅思,要么是有科研助理的工作,总之就是一直没干。10月末的时候,我说要来不及了,他才开始配环境,而且遇到很多问题不知道怎么解决。
时间已经来到10月末,这个时候甲方催的很紧,要求11月底一定要验收完成。我不得不在向导师反应后,直接接手学弟4的工作,毕竟如果不能并行工作,我自己干的还快一些。因为感觉他实在是太推脱,以及事情确实多,所以这之后就没有让他继续在团队里面工作了。此外师弟3的工作我也得接手,我不知道他那边的问题出在哪里,不知道他为什么调不通,我也不知道该怎么指导。
11月中的时候,甲方好说歹说延期到了12月中旬,然后我进入全力工作的状态。跟导师沟通现状后,导师要求我把团队的分工和时间节点发到有他的群里面,他说他来监督(虽然最终也没见他说过什么)。我把任务计划发到群里面之后,很明显可以看到,比较“拖延”的师弟1和师弟3的工作态度有明显的提升,会主动来找我问解决方法了。
最终肝到12月15号,告一段落。
问题反思
按照导师的说法,他会认为“工作不积极’都是态度问题,我并不完全赞同。
- 师弟1和师弟3的代码能力都比较薄弱。毕竟我们不是计算机专业,姑且情有可原。但是师弟1已经加入项目团队一年有余,代码能力以及对仿真框架的熟悉程度还没有明显的长进,感觉哪里不太对。
- 大多数时候依赖GPT来写代码
- 缺少代码直觉,没有建立起”从变量名、函数名猜用途“的意识,更没有”猜想要的功能在哪个模块里“的经验;
- 缺少架构思维,很多时候为了解决问题而”打补丁“,而不是”建框架“以备后续出现类似地需求,导致会在较成体系的代码里面进行侵入性操作,破坏代码原有结构。
- 缺少对计算机的认识,代码会浪费内存、磁盘空间,有时会导致服务器因被塞满而崩溃。
- 对师弟1、3、4的监督方式不妥。这一点实际上相当于把导师说的师弟的”工作态度“问题揽到了我的身上。
- 没有及早确定明确的时间表和任务,而是寄希望于师弟们能够及时完成我安排的任务。此时,因为他们失去了对整体时间的把握和认识,所以在单次任务未完成时没有很强的焦虑感,进而不会加速推进;
- 因为我手头不掌握资源,也没有”把柄“,所以没有可行的激励或惩罚措施。
问题1暂不讨论,我姑且认为他们可能天赋点不在这里,情有可原。但是一个值得思考的问题是,我是对师弟遇到的技术困难负有直接的责任?师弟是否应该尽自己最大的努力来解决遇到的问题?
问题2的解决方案及分析
根据上述实践,问题2最终的解决方案是”在有导师的群里发布任务表,请导师监督“。
在这之前,我尝试了直接给师弟发任务表、定时间、频繁对接,但是收效甚微。我认为原因在于,上述方法都是我和相关人员”一对一“的沟通,就有一种”天不知地不知“的感觉,即使他们没能按期完成任务,也只需要在我这里”解释“或者”求得原谅“即可,而即使无法原谅,也没有什么威慑力,毕竟也没有什么惩罚,所以不得不原谅。
把任务表发到有导师(或者领导)的群里,其实是非常符合逻辑、非常正确的一种做法。
第一,项目的直接负责人是导师,我只是受导师的安排,负责带领整个团队,我不是项目的直接的受益人,所以导师对于项目的完成的责任是比我更大的(所以我不应该去分担导师的责任和焦虑)。
第二,导师对于学生而言,是有明确的权力的,毕竟毕业证在导师的手里,所以导师是可以向学生施压的。领导也可以向下属施压,因为领导有考核下属的权力。也就是说,有“奖惩措施”的人是导师/领导。
第三,我是导师安排的项目负责人,理应向导师汇报,导师有责任了解项目的细节,而不是交给我后就可以当甩手掌柜。所以在这里我的角色应该是一个协调者,负责协调甲方、导师和其他项目成员的关系,包括但不限于;
- 将甲方的需求变更及时汇报给导师,当甲方提出不合理需求时,敦促导师去交涉;
- 将项目的安排汇报给导师,并以导师/领导的名义发布给项目成员。在操作上,就是在有导师的群里面发布任务,或者通过邮件发布任务时,抄送领导,表示“导师/领导已知晓并认可我对项目的安排,此时我发布的任务等同于导师/领导发布的,所有人的工作并非对我负责,而是对导师/领导负责”;
- 及时对项目成员进行评价,当项目成员不能很好满足项目需求时,及时向导师/领导反映,索取支持。
这就像是“挟天子以令诸侯”。