技术管理者的工作包括设计行业与解决方案、推进业务结构与产品化、架构设计和技术创新、开展软件项目管理和研发过程体系建设等。从向上管理、向外管理和自我管理的角度出发简要讨论所应具备的软能力。在职权的范围内充分利用人力和客观条件,并以最小的成本办成所需的事情还需要团队负责人的领导力(Leadership)。同时,领导力和激励(Motivation)是两个相辅相成的因素,对于软件开发这一特定领域而言,领导力最主要的表现或者说最能发挥其作用的切入点是激励。
引用大师 Gerald M. Weinberg 的说法,即所谓领导力,就是创造这样一个环境,每个人都能在其中发挥出更多的能力。从这个定义上讲,领导力就是催生其他人身上的创造力和生产力。
领导力针对的对象一般也可以分为人和过程,其目的是创造一种特定的环境,对环境中的人做出反应,向他们提供选择,并给他们一定的自由度。
我们对领导力进行梳理,会发现其首先体现在用人上,找合适的人并进行管理是领导的第一步。
其次,我们会形成团队的价值观,并希望团队中的所有成员共同遵守,团队负责人在形成这种价值观时会起到主导作用。
同时,提出优化流程的建议并付诸于实施能显著提升领导力,团队成员会在优化的流程中发挥越大的作用,领导力也就会产生越大的影响力。
最后,要注意个人在演讲、聚会、会议上的表现,努力提升个人魅力。
对于提升领导力过程中应该遵循的原则,我们有我们的思路。我认为信息透明和授权是领导力相关的两条核心原则。
信息透明在这里可以理解为包含自我透明化、项目透明化和关系透明化三层含义。
自我透明化指的是表现自身的优点和缺点、承认自身的实力和兴趣并积极参与上下级沟通,让别人了解你是让产生信任的基础。
很多技术人员由于工作环境以及自身性格原因,在自我透明化上存在明显缺陷,难以成为一个技术负责人,或者即使成为团队的负责人之后,因为缺少与团队成员的相互了解导致领导力大打折扣。
项目透明化主要体现在让领导看到你的困难,对时间和进度上的透明度做把控,不能太透明也不能不透明。
同时,对项目中技术体系进行合理的的透明化有助于各种外部干系人对技术团队的了解,提高协商过程中的筹码。
创建自身的风格并保持不变,在做事情之前进行有效倾听,同时提供让别人透明化的场景和机会是关系透明化相关的实践方法。
授权往往是技术人员所不擅长的一个领域,很多技术负责人在紧急情况下都倾向于自己出手,而忘了整个团队。
身体力行,让别人看到你在做事情是提升领导力的一种方法,但在有些场景下,通过授权让团队成员去完成有难度的任务恰恰更能提升领导力。
建立信任关系是授权的第一步,需要在平时进行不断经营。而对某个具体场景,在授权之前确保团队成员与团队负责人达成共识。
信息透明化的具体实现可以借助于一些工具来展现可视化信息,而授权的切入点在于使问题简单化。无论采用何种原则,尝试在团队中推销自身的想法,并对核心问题和痛点保持关注。
追求平衡性(Balance)可能是提升和发挥领导力过程中最重要的策略,也可以理解为一种思维模式。
对于软件开发而言,围绕平衡性有两个概念需要展开,一个是成功,一个是完美。对技术人员,很多时候我们会追求一种完美,对一个设计进行反复提炼、重构并试图找到所谓的最优解是很多技术人员的做事风格。
而对于管理人员而言,从思维模式上更倾向于确保项目和产品取得成功。成功和完美有时候可能会成为一对矛盾体,因为成功的事物不一定完美,完美的事物也不一定成功。
技术人员为了追求完美导致项目延期,或者管理人员为了追求成功使用各种非技术手段的现象并不少见。
而对于团队负责人而言,我们认为很多时候需要做到结果导向,也就是需要在成功和完美之间追求一种平衡性。
领导力的表现形式有很多种,如带队育人的教导力、合理分配资源的组织力、综合思考的决策力、人心所向的感召力等,技术管理者自身能够快速成长的能力也是领导力的一种表现。