点击上方蓝色“方志朋”,选择“设为星标”

回复“666”获取独家整理的学习资料!

作者 | zer0black

来源 | https://www.cnblogs.com/zer0Black/p/11819696.html

我是一个不合格的技术总监,在过去的快三个月里。我带着从40多个人的研发团队(包含需求、开发、测试)里抽调出20多个人去为公司开疆拓土。在这快三个月中,我们一起奋战奋斗拼搏。在过程中,我通宵时间超过半个月,干到凌晨4/5点的日子数不胜数,干到凌晨1/2点日子更是习以为常。整个团队绝大多数人近乎两个月没有周末,辛苦异常,是实实在在的高峰体验。但是三个月后,我带着失败和一身的惨痛教训回到公司。

我在这次的经历中感受到了我是怎么失去团队掌控力的。我所谓的团队掌控,不是说兄弟们不听安排,不按计划行事。而是我对整个开发团队、测试团队、需求团队都有了新的认识,重新认识了团队,重新认识了这二十多个人。因为对个人和团队的能力判断误差和对项目难度的判断失误,导致了这次惨痛的教训。

我把我所面临的的困境和遇到的问题分享给大家,也将把我所做的决策分享给大家,并把我所意识到的错误分享给大家。希望能给每个面临此种局面的同行进行提醒。

项目和团队背景

  1. 共计三个月内有四个项目,没有正式的项目经理,只有三个实习项目经理

  2. 三个实习项目经理中,一个带过一个小型持续性项目(前后端共3人)接近一年;一个带过小项目(4人)一个月;一个带过两个中小项目(7人),共计半年时间

  3. 开发同事都相对年轻,工作年限最长的也就三年。朝气蓬勃但的确经验不足

  4. 团队中老同事新同事各占一半吧,超过半数的同事来公司不到一年

  5. 四个项目都基于同一个客户提供基础版本(或者说框架)进行开发

  6. 客户方使用的基础框架过于老旧,十多年前的前后端框架,前端使用技术特别偏门,学习成本巨大

  7. 框架混乱不堪,表就有快2000张,说是框架但杂含着各种各样的业务代码,且又必须使用

  8. 开发调试的环境配置困难,项目必须跑在linux上,只能远程调试。项目由于过大,启动缓慢,编译一次大概10多分钟。我们团队不熟悉此种模式,摸索浪费了一段时间

  9. 客户公司较大,研发部门较多。开发过程中部门协调工作占比超过一半,需要和各种各样的设备做对接,都是别的部门开发的。部门之间互相踢皮球,找人协助困难

错误一:高估团队水平

  1. 自以为很了解同事,其实了解的太片面。在过去一年中,由于做的项目比较稳定。持续产出在可控范围内,客户也比较认可。导致我产生了觉得我们团队还不错的错觉

  2. 整个团队在面对全新环境的情况下,适应能力偏弱。难以快速稳定的产出,项目开始了两个星期,基本都处于熟悉环境、熟悉项目的状态,一直没有有效产出。导致时间被浪费

  3. 比如某A刚入职3个多月,在其他项目中,项目负责人给出的评价还不错,导致我把他放在了重要的开发位置上。但项目一开始,我就发现某A技术水平差的有点厉害,多表联查的sql都写不溜。此时已无人可替他,只能我上去协助他,比如某B一年多来,带的项目一直稳定未出大问题。但到了新项目中,理解能力较弱无法快速全面理解需求。同时也暴露出了某B没有风险意识的致命缺陷,不能识别风险,识别出了风险也不反馈不作为,导致项目多次跳票

反思

  1. 考核很重要,全面的考核反馈更重要

  • 在人员和团队方面,产生最要命的问题,我想就是考核机制的问题了。由于种种原因,对同事的了解都太片面。在用人方面把人放错了位置。狙击手放到了主攻手的位置上,主攻手放到了指挥员的位置上。这样战斗不失败才怪呢

  • 站在一个较高的位置,很容易对下面同事的能力判断失误。就我认为,在人数不多的情况下,最好的了解大家的方式,是一起战斗。在一场战斗里,观察每个人每天的态度表现、效率产出、代码质量、协调能力、对外沟通能力等。经过一个项目下来,就能对这个项目组中的成员有个较全面的了解。但这种方式不能只是站在项目外看,而要和大家一起就同一个项目开展工作

  • 从多方去了解一个人,不只听某一人之言。对如上的某A来说,就是因为只听了一人之言产生了较大的误判(某A在另一个项目中,只做了导出功能,未接触数据库)

  • 不用静止的眼光看人,人都是在不断变化的

    • 人都是在不断变化的,而我用了以往的经验去评判大家。有的高估了,有的低估了。没有把最合适的人安排给最合适的项目

    • 不应把过去的错误或者功能记在今天的账上,要持续的跟进大家的变化,持续的保持对大家的新认识。不以固有的眼光看人

    • 也应通过积极的引导,帮助同事改掉自己的不足。而不是听之任之,由其自生自灭。只有这样,团队才能进步,这也是一个leader最应该做好的事情,我在这方面差的还太远

  • 因事定人不可取

    • 某D之前由于某次技术预研的工作,让我认定他一般。但在这次的项目中,他却成了最稳定输出的一环

    • 由此可见,不能因为某人一时做的好或者不好,就给这个人定了型,先入为主的下定论。要客观的评价一下个人,需要了解他的全部历史和全部工作。也就是第一条说的,要有全面的考核反馈机制

    错误二:低估项目难度

    1. 项目共计4个,每个项目(只支持IE)都需要和额外的客户自研中间件、插件(ActiveX)、多种硬件设备对接。此前未做过和硬件对接的设备,低估了对接的难度

    2. 中间件、插件、硬件设备的对接我万万没想到,什么文档都没有。只能去搜历史代码学习测试,或者到相关部门去问问。而此前沟通过程中,我心中默认对接是有文档或专人指导的,没有问清楚

    3. 前端使用框架(2006年的框架和版本)过于老旧,由于对前端了解不足,错误的估计了学习曲线,团队前端同事开发前期非常吃力,进度在这块也拖延了一大段

    4. 跨部门沟通的难度远超我的想象,此前沟通过程中,明确好跨部门沟通有专人负责,但到了实际工作中,都变成了我们自己去对接。各个部门互相踢皮球,一个摄像头到底是什么型号的问题(测试需要特定型号的摄像头,对接人不清楚借来的是什么型号),我能花3个小时跑遍五层楼才得到答案。更不用说代码层面的指导了

    5. 没有了解到客户方框架的真实情况,心中以为是在spring上封装的脚手架。没想到框架中包含了快2000张表,数百万的历史代码。光用户模块就有不同的三套(该框架会在各个定制的基础上,定期的把定制内容合到框架主干上,导致了各种没有用的历史遗留代码),找想要使用的功能搜索难度大增

    反思

    1. 经验很重要,但经验也很致命

    • 在此次前期沟通中,很多我以为,我认为都是经验主义所害。比如对接文档的问题,多问一句,可能情况就很不一样

    • 经验也可能成为风险之一,需要警惕

  • 想法设法获取更多信息

    • 四个项目的对接人了解的信息都不全面,到我这的信息就缺失更多,而我当时以为这就是全部的情况。信息的缺失是会让判断失去方向

    • 在现有信息中,要去挖掘出更多的问题和信息,并找对接人确认。越多的信息越能为判断提供更准确的方向

    • 对接人也不清晰的情况,需要推动对接人去找相应人员获取,得到相对准确和完善的信息

  • 锁定项目核心重难点

    • 在这几个项目中,有的项目没有在一开始就抓住项目核心重难点。比如甲项目中核心功能是存储,且需要使用客户自研存储设备,项目初期未锁定该重点问题,导致后期项目核心功能全部返工

    • 一般采取排除法来锁定核心重难点。把所有的页面可见功能点和隐含功能点列上,以排除法排除独立的关联少的模块。留下的就是重难点的核心要素

    • 针对每个核心要素搞清楚联系关系,得到最终的功能关系图(业务架构图)

    错误三:战术错误,同时面对过多的项目

    1. 回过头来看,人手不足的情况同时接了过多的项目是错误的。但这的确是一个两难的问题,不能简单的用错或者对来概述

    2. 接或者不接,这本就是一个博弈的过程。综合分析项目是否确定会交由我们来做,再分析是否有能力完成,考虑清楚后再下结论

    反思

    1. 项目中总是会面临资源不足的情况,永远不要想着项目中拥有最适合的资源、人员。毕竟最适合的人员不可能一直等着你的项目

    2. 带项目就像打牌,一手好牌做好了项目是应该。而一手烂牌打赢了才是你的能力

    错误四:管理不是轻松的事

    1. 最后一个错误,是在项目无人可带的时候,迫不得已我去带了项目。陷入了某个项目的具体细节后,没有了统一对所有项目进行管理协调的人

    2. 管理是很耗费精力的,需要专人专职的去处理。管理者一大职责就是沟通协调,尤其在这种需要强沟通的项目中

    3. 一旦陷入了具体的某个项目中,就很难有精力去维持其他项目了

    4. 授权很重要,但检查更重要。交付出去的工作,要定期检查,保证交付物是完成的、完整的、不返工的

    我所吸取的教训总结

    1. 建立更全面的考核反馈体系对认识团队至关重要

    2. 不要局限于经验,沟通胜于一切

    3. 反思每一次战术失误,保证下一次的精确打击

    4. 专人专事,专职管理的人,就不要陷入开发细节中,一旦大量精力投入了开发。这将是致命的风险

    热门内容:老司机给我们解读 Spring Boot 最流行的 16 条实践忠告昨天还在 for 循环里写加号拼接字符串的那个同事,今天已经不在了
    推荐个 Java 开源商城项目,这个是真的好!最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
    明天见(。・ω・。)
    

技术总监的反思录:我是如何失去团队掌控的?相关推荐

  1. 技术总监反思录:我是怎么失去团队掌控力的?

    我是一个不合格的技术总监,在过去的快三个月里.我带着从40多个人的研发团队(包含需求.开发.测试)里抽调出20多个人去为公司开疆拓土.在这快三个月中,我们一起奋战奋斗拼搏.在过程中,我通宵时间超过半个 ...

  2. 我是如何失去团队掌控的?

    我是一个不合格的技术总监,在过去的快三个月里.我带着从40多个人的研发团队(包含需求.开发.测试)里抽调出20多个人去为公司开疆拓土.在这快三个月中,我们一起奋战奋斗拼搏.在过程中,我通宵时间超过半个 ...

  3. 技术总监到底要不要写代码?

    https://www.toutiao.com/a6698485180505522695/ 这是一个非常敏感的话题,每次谈论到技术总监要不要写代码的时候,总会引起一片争论. 有的程序员说技术总监如果不 ...

  4. 滴滴技术总监:为啥打车时APP里最多展现10台车?

    滴滴出行工程生产力团队技术总监齐贺详细讲解滴滴如何用数据来驱动产品决策,以及如何规避实验过程中七大技术坑. 去年的一天,滴滴出行CEO程维在内部产品体验群里抛出了一张滴滴叫车页面的手机截图,并提出了一 ...

  5. 计算机科学与技术反思录。

    计算机科学与技术反思录. 计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做 了一些思考,我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和 ...

  6. “我是技术总监,你干嘛总问我技术细节?”| 程序员有话说

    作者 | 王晔倞 责编 | 伍杏玲 本文经授权转载自吃草的罗汉(ID:kidd_wyl) 每个周末的午后,把儿子送进EF读书,随后找个环境幽静的咖啡馆坐一会,这便是我一周中最放松的时光. 在咖啡厅的气 ...

  7. 我是技术总监,你干嘛总问我技术细节?

    每个周末的午后,把儿子送进 EF 读书,随后找个环境幽静的咖啡馆坐一会,这便是我一周中最放松的时光. 在咖啡厅的气氛和环境这两点上,我似乎有强迫症,比如装修主色调的运用,地上装饰是否比较体验文化气息, ...

  8. ”我是技术总监,我确实答不出那么多技术细节”

    2019年,德国,纽伦堡 前段时间,朋友圈被< 十多年前,我曾经去BAT中的一家面试过(到现在也是我唯一一次BAT的面试经验).当时刚毕业几年,写代码解决一般问题任务已经"得心应手&q ...

  9. 我是技术总监,我出来求职,竟然找不到工作!

    点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 就在昨天下午,一个去年我来深圳认识的朋友肖总,之前交流过一些技术问题.问我最近有没有坑,肖总最近在找工作 ...

最新文章

  1. openpyxl 操作 Excel表的格基本用法
  2. Web 上一页下一页 用超链接 用按钮
  3. 现有exe转为服务_方式01
  4. 蚂蚁动态卡片,让App首页实现敏捷更新
  5. 初识Linux .bash_profile, .bash_logout, and .bashrc 文件
  6. IOS基础之仿酷狗音乐第1天
  7. Java熔断框架有哪些_降级熔断框架 Hystrix 源码解析:滑动窗口统计
  8. 工程师的NIOS II学习笔记(转)
  9. 以数据库思维理解区块链
  10. jsp页面ajax用法,JSP页面如何使用ajax实现局部刷新
  11. OpenCV-通道分离cv::split
  12. 按照某列属性拆分Excel文件
  13. Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)
  14. jQuery版本升级踩坑大全
  15. 【STM32H7的DSP教程】第26章 FFT变换结果的物理意义
  16. 文件大小单位换算(B-GB)
  17. 揭秘北京龙泉寺,连清华北大学子都排队出家的神秘科研组织
  18. table 手机 滑动_【推荐下载】html5手机端手指滑动选项卡滚动切换效果(转)
  19. 《Total Commander:万能文件管理器》——第7.3节.总结与作业
  20. unity 转向和角度

热门文章

  1. django学习笔记--数据库中的多表操作
  2. void *指针的加减运算
  3. 2017年50道Java线程面试题
  4. 实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的 栈
  5. 百度UEditor开发案例(JSP)
  6. Firefox3 RC1颁布各种新特征发扬阐发更平定
  7. Datawhale组队学习周报(第012周)
  8. 【怎样写代码】工厂三兄弟之工厂方法模式(四):工厂方法模式
  9. 22个案例详解 Pandas 数据分析/预处理时的实用技巧,超简单
  10. 收藏 | 提高数据处理效率的 Pandas 函数方法