技术管理的维度

技术管理无疑是一项综合性工作,包含业务、技术和管理这三大维度。如何把这三大维度通过一定的方式展示给开发人员,从而让开发人员能够快速和准确的理解进而完成转型是我们首先需要明确的一个核心问题。针对该问题,很难通过一个面面俱到的模型或视图做出完整的回答。我们在思路上也是使用分解的策略,把技术管理者所应该具备的转型方法转换为不同的子维度。子维度的提出也是为本书如何进行内容组织提供了具体的表现形式。

要想清晰、明确的展示技术管理维度,首先要对维度进行建模,即通过统一的表述方式和模型来展示不同的维度。在本文中,每一个维度将从切入点和实施方法两个角度出发进行展开讨论。其中切入点描述某一个维度特定的关注点,并提供切入该维度的方向,任何一个维度都应该具备若干与其他维度不一样的切入点,以便在技术管理过程中能够找到问题所对应的切入点并进行优化和管控。而实施方法则包括技术管理过程中的方法和策略,对于维度和子维度之间可能存在的相互关系也将属于讨论范畴。

一.业务维度

业务维度主要围绕的主题是“产品”。当然,产品经理或运营经理是对产品进行规划和实施的主要推手。作为技术管理者,业务维度的要求体现在对于行业的分析和理解,以及产品化的思路和实践,对组织级别的产品化战略起到促进作用。业务维度可以进一步分解成行业分析子维度和产品化子维度。

1.行业分析子维度

行业分析子维度的切入点包括技术管理者眼中的行业,在当前互联网大背景下,各个行业在其各自发展的同时也呈现出一定的共性,这些共性需要技术管理者进行理解和思考;用户研究和用户体验,研究用户并能够理解用户体验上的痛点和需求,也是技术管理者需要掌握的一项技能。尤其在互联网行业,用户体验至上的思想会实实在在的影响到技术规划和实现;商业模式分析与设计,技术管理者同样需要部分商业思路,懂得从运营角度出发思考问题。运营驱动产品、产品驱动技术的组织模式也日益普遍,这其中各项业务数据是各个团队之间流转的主要媒介,技术团队自然也不能例外。

对于行业分析,技术管理者相关工作的主要产出是解决方案。解决方案设计是一项综合性的工作,具备基本设计思路的同时还需要考虑某个行业的特定需求。同时,技术也是解决方案的一个重要组成部分,技术可能是各行业通用的表现形式,也可能因行业而异。

2.产品化子维度

产品化子维度的切入点主要包括业务结构的建立。业务结构中业务的背景、范围和约束条件是其主要需要把控的对象,而业务结构的建立是为了更好的实现业务决策。业务决策过程会产生业务基线和各种变更,同时需要处理业务需求的不同所导致的业务冲突。

在技术管理上,产品化的实施方法包括两个方面。一方面在于确定产品发展策略,产品策略的确定会形成各个产品平台和产品线。而另一方面在于如何推进产品策略的落地,项目化的操作方式以及与产品平台配套的技术平台的确立都属于这一范畴。

二  技术维度

技术维度主要围绕的主题自然是“技术”本身。作为技术管理者,对技术体系的把控也可以分解成三个子维度,包括技术理论子维度、系统架构子维度和技术创新子维度。

1.技术理论子维度

现代软件开发工具和框架的发展非常迅速,但各个工具和框架背后的理论体系实际上是比较成熟和稳定的。技术理论的切入点比较明确,是对软件开发理论体系的总结和抽象,其目的是用思想和理论去梳理主流技术实现方案的原理。

通过梳理软件体系结构风格、设计模式、架构模式、架构模型等内容,有助于提高技术管理者的技术理论水平,并有效指导系统架构的设计和实现。

2.系统架构子维度

系统架构子维度依赖于技术理论子维度,其切入点在于明确架构设计的层次,本书中的系统架构设计通过业务架构设计和技术架构设计两个层次进行展开。

对于业务架构,实施方式上可以从业务需求出发,针对系统的拆分、集成和扩展三个角度进行设计;而对于技术架构,则更多考虑系统性能、可用性和安全性等非功能性特性。

3.技术创新子维度

伴随技术变革的基本规律,技术创新需要明确基本的策略和过程。这些策略和过程决定了技术创新是从内部还是从外部进行切入。

对于内部创新,实施上主要包括技术应用和技术演变。前者使用成熟技术解决新问题,而后者偏重于对现有技术进行改造,使其演变成技术问题的解决方案。而对于外部创新,开展合作从外部获取新技术,或者通过应用其他行业的成熟技术到现有业务中的跨业创新都是可以使用的创新手段。

三  管理维度

软件开发是一项系统工程,从系统工程角度出发,软件开发可以分成三大部分,即软件实现、项目管理和过程改进。软件实现部分已经在技术维度进行介绍,管理维度则从工程性管理角度出发,包括软件的开发过程和软件经济学等内容,从中我们抽象成项目管理、研发过程和组织管理三个子维度。

1.项目管理子维度

项目管理的切入点在于从范围、时间、成本等角度出发讨论如何在一定的约束条件下实现系统并完成最终成果的交付。这其中涉及到项目管理的通用性知识体系,但也需要根据软件开发的特征进行分析。

对于软件开发而言,需求工程、计划管理、质量管理、风险管理是项目管理重点需要实施和管理的对象。相较其它行业,需求以及系统建模、软件开发范围的分解和工作量评估、技术评审的实施方法以及持续交付思想和工具的应用贯穿整个软件开发的进程。

2.研发过程子维度

软件开发是一系列过程的集合,过程改进围绕这些过程,提出持续优化的方法和实践确保得到令人满意的结果。过程改进的切入点在于通过理解代表性的过程模型,并结合团队目前以及未来的开发状况找到适合自身的过程模型。

研发过程的建设包括过程管理的模型以及研发相关的工程实践,而过程改进同样也有一整套的方法论,无论是传统型的瀑布还是当下流行的敏捷,都崇尚过程改进。而对于特定团队,这些模式和方法都不一定适用,不能照抄照搬,所以研发过程建设的实施方法首先是过程裁剪,通过裁剪建立起符合自身团队发展的轻量级过程模型。

3.组织管理子维度

组织管理的切入点在于明确一个组织中需要技术管理者进行管理的视角和边界。对于软件开发而言,向下的团队管理和向外的协商沟通管理是最基本的组织管理视角,但我们也应该注意到向上管理的重要性以及提升管理者本身的自我管理意识。

对于向下管理,实施过程中需要理解技术人员,并通过领导、激励、培训和绩效管理等手段提升团队整个工作效率。对于向上管理,更多则关注结果导向和目标管理。向外管理上,沟通是关键。而对于自我管理,则需要培养个人的管理风格以及处事能力。

以上各个维度和子维度虽然各自表现技术管理的某个方面,但也存在依赖关系。下图描述的是三个维度之前最基本的依赖关系。从图中可以看到行业分析帮助定义产品,技术体系为产品提供实现方法,而管理体系从过程角度为产品开发提供保障。因此,技术体系和管理体系的建立本质上都是为了实现产品,也就是说技术管理的本质需求是完成产品目标。

不同的行业、不同的业务、不同的系统对于技术管理的维度而言具有不同的展示要求。以互联网行业为例,目前各个领域变化迅速,从行业分析到产品发布的周期也较短,这就意味着在开发过程管理上适合采用比较轻量级、快速迭代的研发模式,这就需要在项目管理、组织管理上采用与之匹配的模式。另一方面,互联网产品或服务通常面向多个领域,按应用类型区分,通常行业门槛并不高,如果想要快速占据市场,通过技术创新来推动产品化是常见的手段。而面向企业级应用的软件产品中,由于业务复杂且具有一定的行业壁垒,技术更多时候是为了实现业务需求,一个产品的开发周期普遍较长,相应的研发节奏和过程也偏向于采用重量级框架,这些都与互联网产品有较大差别。

 

如果对文章感兴趣,可以关注我的微信公众号:程序员向架构师转型,或扫描下面的二维码。

我出版了《系统架构设计:程序员向架构师转型之路》、《向技术管理者转型:软件开发人员跨越行业、技术、管理的转型思维与实践》、《微服务设计原理与架构》、《微服务架构实战》等书籍,并翻译有《深入RabbitMQ》和《Spring5响应式编程实战》,欢迎交流。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

天涯兰的博客

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值