跟沈剑学习如何带领技术团队作战

【学习笔记作者/Edison Zhou

这是恰童鞋骚年的第229篇原创文章


小编Edison在阿里云开发者社区上看到了58集团技术VP大佬沈剑关于如何带领技术团队作战的一个直播分享,因此在站地铁的上下班路上学习完了整个录播视频,整理总结下此文作为学习笔记,分享与你且希望对你也有所帮助!

1适用对象

作为技术人,在工作多年之后一般大部分都会成为管理者,有的甚至会成为VP、CTO等。在沈剑看来,他将这些管理者分类为管理层的头部力量、腰部力量和腿部力量。其中,头部力量指技术VP/CTO/CIO等,这些人主要思考整个公司的技术大方向与数字化战略;腰部力量指研发部门总监、高级经理等中层管理,主要负责上传下达,将公司的技术战略向下疏导,与基层管理者进行沟通,反馈一线技术团队中的问题到上层管理者;而腿部力量则指技术团队的一线管理者,通常是各个开发团队的Team Leader,他们主要负责公司技术战略的落地,保障战略的正确实施及项目的按时交付。毫无疑问,腿部力量是我们大多数人所在的位置,沈剑的此次分享也主要是针对腿部力量和部分腰部力量的,他介绍了一些发现问题和解决问题的方法和他使用的工具。

对我而言,我就是一名腿部力量的小Team Leader(以下简称TL),平时主要关注两腿是否正常走路,不要踩到坑把腿走折了就好。

2如何找到团队中的主要矛盾

沈剑认为,一名架构师,在架构演进的过程中,如果想要找到系统和架构中的矛盾,主要有两种方式:

(1)顶层视角,自顶向下;

所谓顶层视角自顶向下,就是结合自身的经验进行分析,判断系统在某个阶段会遇到什么问题;

(2)一线痛点,自底向上;

所谓一线痛点自底向上,就是通过收集一线团队的痛点或绝大部分研发的痛点去发现整个系统架构的主要矛盾。

而做系统架构设计,其实也是可以参照以上两种思路进行设计;对于管理者,可能需要我们既做到能够自顶向下,通过顶层视角来看待团队中的一些问题,也要能够自底向上地发现一线研发的痛点,收集每位研发童鞋的反馈,进而发现整个团队所存在的主要矛盾;

那么如何高效找到团队中的主要矛盾呢?沈剑分享了自己的一个方法:现象->分析->行动->结果

举个栗子,假如我们发现天上有乌云,可能会分析到有可能要下雨了,于是我们采取的行动是带上一把伞去上班,结果就是我们没有淋到雨爽歪歪。那么对应到团队的管理上,应该就是TL要主动去观察团队中存在哪些现象和矛盾,然后去分析原因是啥,并和团队成员一起去讨论潜在的解决方案,最后制定行动计划,保证实施并定期Review,看看Review结果是否达到了预期的目标。

小编Edison作为一名TL,在实践中发现敏捷开发中的Retrospective Meeting其实就是一个不错的分析和解决主要矛盾的方法,我曾经有写一篇文章专门来介绍敏捷回顾会议的套路与实践。

沈剑在实际中运用上述分析方法时会借助如下图所示的卡片来作为收集团队问题的工具,进而帮助发现团队中的主要矛盾。

在上图所示的例子中,沈剑建议在运用的时候还可以通过在case1/case2中填写自己收集的真实例子(场景),帮助准确发现团队中的矛盾和问题。

和敏捷回顾会议一样,每个迭代回顾下来只需要找到1~2个需要改进的地方并在后续迭代指定计划集中精力来进行改进,贪多永远都是嚼不烂的。作为团队管理者,每个季度也只需解决几个核心的主要矛盾即可,确保集中精力和资源能够将最主要的矛盾解决掉,再考虑解决一些次要或者优先级较低的矛盾。经过几个周期之后,团队内的问题就会越来越少,进而提高团队作战力!

3团队中有哪些的主要矛盾

沈剑在带领技术团队作战的经历中,发现总结下来,技术团队中的主要矛盾可能有以下几个:

(1)团队目标不明确

这一矛盾估计大多数团队都有遇到,包括小编Edison所在的团队。这个矛盾之下,团队中大部分的成员都不清楚公司战略、部门职责以及不清楚自己部门的职责和团队战略、团队目标有什么样的关联。换句话说,这种情形之下每个团队成员就只是团队的一个资源,并没有形成为一个整体,更别提团队作战了。

(2)团队淘汰不忍心

这一矛盾小编Edison也遇到过,对于绩效不算合格的成员不忍心淘汰,特别是在年终评定的时候,好在领导一番辅导之后开放了思维。其实,很多团队管理者都觉得自己的团队很优秀,无法挑选出成员来进行淘汰。

(3)团队成长不会做

沈剑认为,团队管理者最主要的职责是帮助团队成长成才,是一个为团队成员服务和赋能的过程。这一点,小编Edison十分认同,我也曾在阿里云MVP的钉钉群里发表过以下观点:

在此Edison也给大家推荐一下微软CEO萨提亚纳德拉的著作《刷新》以及现代管理学之父彼得德鲁克的《卓有成效的管理者》,对于转变思维,从固定型思维到成长性思维的转变对于一个团队管理者来说尤为重要。或许可以这样说:忘掉管理,拥抱赋能

4团队主要矛盾的解决办法

根据沈剑的现象、分析、行动和结果四步法,解决上面的几个问题:

(1)团队目标不明确

现象:

对于团队目标不明确,一般可能有如下现象:

  • 员工不知道公司战略是什么

  • 员工不知道部门业务目标是什么

  • 员工不知道自己部门做的事情和公司战略有什么关系

  • 员工不知道自己做的事情和业务目标有什么关系

  • 员工不知道自身,不知道职业目标,不知道技术发展方向(技术路线)

  • 员工没有归属感,没有成就感,学不到东西,士气低下等

  • 员工离职率高,1年2年就离职

分析:

对以上现象进行分析,沈剑认为主要原因是目标感不强,当然,更可能是管理者的工作没有做到位,如果员工只是做一份谋生的工作,那么归属感怎么会强呢?

行动:

作为管理者,我们应该要尽可能的考虑到员工的想法, 根据员工的想法来采取适当的行动,比如:

  • 了解员工的目标感现状

  • 公司战略季度同步

  • 保证每个同学业务目标明确,项目目标明确,工作目标明确

  • 了解同学们的想法,一起讨论职业规划,为其晋升规划路线

下面是一个沈剑推荐的调研小工具用来了解员工的想法,大家可以根据公司的具体情况进行改动,设计出最适合自己公司的调研问卷。需要注意在进行调研的时匿名是非常重要的,这样子更能了解到员工的真实想法。

(2)团队淘汰不忍心

如果存在团队淘汰不忍心这个问题,尤其是新任的TL,可能会讲人情,不好意思淘汰员工,自己关系较好的同事等等。

现象:

在进行团队打分和淘汰的时候,可能会有以下现象:

  • TL认为自己的员工都很不错,绩效打分都一样

  • TL害怕冲突,不知道怎么给员工打361

  • 低级别员工产出低,打1

  • 校招生和新员工产出低,打1

  • 休假期的员工产出低,打1

分析:

如果出现以上现象,可能是TL根本不懂得怎么去给员工打分。

行动:

给员工打分也是管理者很重要的一项工作,也是一项不容易做好的工作,那么各类员工怎么打?一般来说,在打绩效的时候主要看价值观和员工的工作产出。可以采取如下行动:

  • 态度好产出高:对于这类员工,要进行表彰,号召全公司员工学习。

  • 态度差产出低:这类员工,没得商量,打1,可能会给一次机会,再做不好就淘汰掉。

  • 态度好产出低:分析为什么产出低,要去进行辅导、培训,也许要进行轮岗等。

  • 态度差产出高:某些人,比如销售王等,业绩非常好,对公司的某些政策等等不在乎,态度差,沈剑老师认为价值观是第一位的,对于这种人要敲锣打鼓地淘汰,避免他们影响到公司的形象等。

总的来说,打1的关键在于“No Surprise”,发现问题,就要及时指出问题,及时、明确的告知员工,才能没有“反弹”,同时,不要针对人,而是针对行为或者结果。需要特别注意的是,在与员工谈话的时候坦诚,因为管理者的坦诚,员工一定能感受得到,也就更容易接受,更有利于团队的成长。下图是沈剑老师用来打分经常用到的一个工具,大家可以用来参考,制作适合团队的打分工具。

(3)团队成长不会做

很多技术专家成为管理者后,不知道怎么带团队,怎么帮助员工持续的提升组织能力,可能会有些管理者希望通过持续招聘优秀人才的方式来提升员工的组织能力,可是万一HC不够呢?那么在HC不变的情况下,如何提升组织能力?主要有如下两点:

  • 优胜劣汰:进行团队内部的优胜劣汰,保持团队的竞争力和生命力。

  • 能力升级:进行全员的能力升级,特别是团队管理者的能力。

上面两点中,重点是能力升级,那么如何设定成长目标,持续帮助员工成长?沈剑老师提供了一个方法,包括以下三点:

理想的团队管理者

如果你作为一个团队管理者,你要去思考,你心中理想的团队管理者是什么样子呢?有什么品质呢?给自己设定一个目标,然后看看现在的自己与理想的团队管理者之间有什么差距呢?你不喜欢什么的团队管理者,那么就不要成为那样的人。

理想的同事

理想的同事也是一样的,想一下你自己心中认为的完美同事都有什么品质,现在的你又还有什么差距呢?

理想的下属

理想的下属也是一样,作为一个管理者,你希望拥有什么样子的下属呢?现在的下属有什么不足之处?跟你所想象的之间有什么差距呢?

沈剑老师的团队经过讨论和调查,得出了如下图中理想的管理者、理想的同事和理想的下属之间所最应该具备的品质中的前三名:

通过自己给自己定目标的方法我们可以不断的带领团队达成目标,实现员工的自我成长,但是这个目标是怎么来的呢?

要谨记:目标是自下而上的讨论出来的。先是每个人写出自己心中理想的管理者、理想的同事和理想的下属最应该具备的品质,然后再由小组汇总得到每个组内的结论,再接着由团队内汇总,不断的向上汇总,得出上图所示的三个品质,得到整个团队的目标。

通过上面的方法,团队有了目标,接下来就要寻找自己与理想的管理者、理想的同事以及理想的下属之间的差距和不足了。那么如何寻找呢?主要有以下四点:

  • 找自己的优点-给别人树立榜样

  • 找别人的优点-给自己树立榜样

  • 找自己的不足-自省

  • 找别人的不足-不知道自己不知道

上面四点中最难的是怎么找到自己不知道的点。要做到这点有个很好的办法就是互相找不足,而且要匿名的进行,这样子通过互相寻找不足,就会发现一些自己从来没有注意过的缺点和不足。找出差距之后,最重要的是需要指定计划改进短板,没有计划的行动,是无法产生任何输出的。

下图是沈剑老师团队内部使用的一个小工具来帮助员工持续成长,大家可以根据需要进行修改,用在自己团队中。

5学习总结

对沈剑的分享做一个简短的总结就是:

  • 问题解决思路:现象、分析、行动、结果

  • 明确团队目标:目标感匿名调研问卷,战略同步,一起讨论职业规划

  • 量化个人结果:各类员工怎么打绩效,绩效打分工具

  • 帮助员工成长:自己提理想目标,匿名给别人提意见,自己设定行动计划

沈剑老师从业多年,从小工做到了VP,无论在技术还是管理方面都有丰富的经验,我们可以从沈剑老师的分享中获得自己的感同身受及学习心得。

希望你能成为一个你心目中的理想的技术管理者!

6参考资料

沈剑,直播分享:《带领技术团队作战》

阿里云MVP社区,《CTO的那些事儿-带领技术团队作战》

往期精彩回顾

沈剑:我的架构师之路

听玄姐的职业成长,谈技术人的道与术

基于Jenkins的开发测试全流程持续集成实践

基于Jenkins的ASP.NET Core持续集成实践

如果本文对你有用,

不妨点个“在看”/转发朋友圈

????点击观看录播分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用java做一个模拟彩票程序_JAVA模拟----- 彩票机子-----抽奖过程的实例化

/*时间:2012-10-05作者:烟大阳仔程序要求:模拟彩票抽奖机的功能编写一个程序,实现随即输出六个号码程序解释:该段程序没有传递参数*/class Day1005_Caipiao{public static void main(String[] args){System.out.println("估计…

[C++STL]deque容器用法介绍

代码如下&#xff1a; #include <iostream> #include <string> #include <deque> using namespace std;void printDeque(const deque<int>& d) {for (deque<int>::const_iterator it d.begin(); it ! d.end(); it){cout << *it <…

“我工作八年,换了四家小公司,今后的职业生涯该怎么走?”

去年&#xff0c;我曾在GIAC大会上分享过一个有关程序员职场变化和转型的话题。在分享结束之后&#xff0c;有一位小伙伴拦在大门口&#xff0c;问了我一个问题&#xff1a;"王老师&#xff0c;虽然你分享的内容很务实&#xff0c;落地性也很强&#xff0c;但我觉得跟自己…

.NET Core + Kubernetes:Deployment

在上篇文章 .NET Core Kubernetes&#xff1a;Pod 中&#xff0c;主要介绍了 Pod 的相关内容&#xff0c; 基于 Pod 为单位能更加合理进行容器编排&#xff0c;然而 Pod 只是个启动了一个或一组容器的资源类型&#xff0c;在实际应用中&#xff0c;我们也需要 Pod 能实现动态扩…

我整理了100G的.Net学习资料,速来领取!

听说免费送课会上瘾&#xff1f;不分享点干货给大家学习&#xff0c;完全无法衬托本号主的好人特质啊&#xff01;正所谓白嫖一时爽&#xff0c;一直白嫖一直爽&#xff01;举起你滴双手&#xff0c;擦亮你的眼睛&#xff01;今天我要丢个硬核干货&#xff01;一次性怒砸几百个…

maven mysql的jdbctemplate_JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析

JDBC (Java Data Base Connection,java数据库连接)JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发…

[C++STL]list容器用法介绍

代码如下: #include <iostream> #include <string> #include <list> using namespace std;void printList(const list<int>&L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout << *it << " &quo…

C#黔驴技巧之去重(Distinct)

关于C#中默认的Distinct方法在什么情况下才能去重&#xff0c;这个就不用我再多讲&#xff0c;针对集合对象去重默认实现将不再满足&#xff0c;于是乎我们需要自定义实现来解决这个问题&#xff0c;接下来我们详细讲解几种常见去重方案&#xff0c;孰好孰歹自行判之。分组首先…

java.sql 拒绝连接_hive jdbc 拒绝连接问题

本帖最后由 willgone 于 2017-06-21 10:56 编辑平台配置在附件中。private static String driverName1 "org.apache.hive.jdbc.HiveDriver";Class.forName(driverName1);String url"jdbc:hive2://192.168.160.241:21076/default";Connection con DriverM…

ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

任务15&#xff1a;oauth2 oidc 实现 server部分基于之前快速入门的项目&#xff08;MvcCookieAuthSample&#xff09;&#xff1a;ASP.NET Core快速入门&#xff08;第5章&#xff1a;认证与授权&#xff09;--学习笔记ASP.NET Core快速入门&#xff08;第6章&#xff1a;ASP…

[C++STL]set容器用法介绍

代码如下: #include <iostream> #include <set> using namespace std;void printSet(set<int>&s) {for (set<int>::iterator it s.begin(); it ! s.end(); it){cout << *it << " ";}cout << endl; }void test01() {…

[C++STL]map容器用法介绍

代码如下: #include <iostream> #include <string> #include <map> using namespace std;void printMap(map<int,int>&m) {for (map<int, int>::iterator it m.begin(); it ! m.end(); it){cout << "key " << it-&…

ABP框架 v2.7.0已经发布!

ABP框架和ABP商业版 v2.7已经发布.我们没有为2.4,2.5和2.6发布博客文章,所以这篇文章也将涵盖这几个版本中新增内容和过去的2个月里我们完成了什么.关于发布周期与开发之前说过我们已经开始每两个星期发布一个新的次要功能版本,一般在星期四.我们的目标是尽快提供新功能.在过去…

java中factory方法_Java的23中设计模式--工厂方法模式(Factory Method)

1.普通工厂模式工厂类/*** Title Factory.java* Package factory.factory1* date 2015-1-22 上午10:16:02*versionV1.0*/packagefactory.factory1;/*** ClassName Factory* date 2015-1-22 上午10:16:02*/public classFactory {publicSender procedure(String type) {if("…

[C++STL]仿函数用法介绍

代码如下: #include <iostream> #include <string> using namespace std;//函数对象在使用时&#xff0c;可以像普通函数那样调用&#xff0c;可以有参数&#xff0c;可以有返回值 class MyAdd { public:int operator()(int a, int b){return a b;} };void test0…

【壹刊】Azure AD(二)调用受Microsoft 标识平台保护的 ASP.NET Core Web API (上)

—————————Grant_Allen 是一位博客园新晋博主&#xff0c;目前开始专注于Azure方向的学习和研究&#xff0c;是我认识不多的、打算长时间研究Azure的群友&#xff0c;因此打算帮他开个专栏&#xff0c;同时也希望并祝愿他能一直坚持下去&#xff0c;学有所成。正文一&a…

[C++STL]常用遍历算法

代码如下&#xff1a; #include <iostream> #include <algorithm> #include <vector> using namespace std;void print01(int val) {cout << val << " "; }class print02 { public:void operator()(int val){cout << val <&…

用Visual Studio2019自定义项目模板

项目模板简介众所周知&#xff0c;在我们使用VS新建项目时&#xff0c;都需要选择一个项目模板&#xff0c;如下图&#xff1a;我们选择完项目模板进行创建&#xff0c;创建完成之后&#xff0c;可以发现项目中已经包含了一些基础的文件。例如MVC&#xff1a;可以看到&#xff…