面向全栈的技术管理(多图)

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/66473101

3月25日周六,在中生代和飞马网的技术嘉年华上,斗胆披上吹牛的嫌疑,分享了面向全栈的技术管理,现赘述如下。



研发管理有着广义和狭义的定义,总的来说,研发管理就是在研发体系基础之上,借助信息平台进行的团队建设、流程设计、绩效管理、风险管理、成本管理、项目管理和知识管理等活动。 简单来讲,研发管理是面向结果,过程敏捷的一种实践。作为一名技术管理者,既需要培养团队的ABC,又需要管理你的老板,保持团队的新陈代谢,因为一切都是人的竞争。我曾在GitChat上做过一次分享,具体可以参考《老曹眼中的研发管理二三事》一文。



全栈,不是全能,和所选择的技术栈甚至业务栈相关。例如以LNMP(Linux + Nignx + MySQLPHP),那么掌握了这四种技能,算不算一个全栈工程师呢?个人觉得可以的。全栈工程师就是技能涵盖了系统中所采用的技术栈。但是随着技术栈的变化,例如引入了缓存Memcache乃至其他分布式缓存,那原来的全栈工程师还是全栈么?全栈是否要随之变化呢?这是一种动态性演进,从而衍生出了所谓全栈架构师的概念,具体的阐述参见《再谈<全栈架构师> 》一文。



面向全栈的技术管理试图从采用系统思维的方式来探讨研发管理尤其是技术管理的可行性和方法。从系统的角度看,包括时间,空间 和人三个维度。对于研发而言,人是核心竞争力,可以把技术栈划分为面向空间的技术和面向时间的技术,然而时空又是密不可分的。


这是个人设想的全栈技术栈,面向空间的技术就象庖丁解牛,是对问题本身的分解和实现;面向时间的技术,主要是效率,开发的效率,程序运行的效率等等。 关于技术栈中每项技能的解释可以参考《全栈的技术栈设想》一文。



面向全栈的技术管理主要是通过系统性的思维方式解决技术研发管理的问题。这是典型的九宫格矩阵,从时间和空间的维度提出了系统思考的维度。可以缩放系统的概念范围,例如到模块的层面,会发现很多有意思的结论。



全栈的动态根源主要有两方面的原因,商务驱动和技术驱动都会导致架构设计的优化。商业需求是个大话题,超出了很多技术人的领域,这里主要看研发中技术管理的全栈思维方式。用一句高大上的词,就是技术前瞻性。 如何考量技术的前瞻性,可以借鉴TRIZ的方法。


TRIZ 是工程领域的神人阿奇舒勒提出的,关于TRIZ的相关知识推荐创新算法一书。


TRIZ 中直接可以借鉴的就是技术系统的9个演进方向,可以指引我们对系统架构的演进思考。


技术的完备性是思考的第一因素,我们的系统是完备的么?如何定位我们系统架构的完备性?没有监控的系统是完备的么?Bob 大叔的Clean Architecture 给出一种完备系统的参考。


有始就有终,每个系统或者每种技术都有者自己的生存周期,或者自己成长的S曲线。技术选型的时候需要对所选技术所处的阶段予以考虑。


系统自身的动态性包括三个方面,第一就是移动性,从互联网到移动互联网,从web到手机APP, 不是一种偶然,而是技术系统发展的必然。柔和性说明系统的可塑性强,简单地说,可重用性是柔和性的一种具体体现。可控性可否映射到配置化或者参数化么?


系统的传递性强调了通信的重要性,上图给出了大神AliStair 的六边形架构,指出了对外接口的作用,被当作了微服务架构的理论基础。引申一下,为什么会有“Social for Anything” 呢?



子系统的不均衡正是差异性的具体表现,每个子系统都有着自己的进化曲线, 这是我们关注系统瓶颈的一种思路。


回顾上面的九宫格系统思维,最高层就是超系统。主机托管IDC资源逐渐演变为IAAS,负载均衡、集群服务等进化为PAAS, 应用软件进化为SAAS,后台的服务进化为BAAS,连数据报表类的服务都在往DAAS上演进,所谓的平台化或者构建生态系统都是在向超系统的演化。


九宫格系统的最底层是子系统,子系统在向微观场的方向演进,正像“社会化大分工不断细化”那样,职责的原子化,颗粒度的细化等。举个例子,使用高效资源中的SSD 硬盘, 鉴于SSD的高效,衍生了RocksDB等匹配的存储引擎。更普遍的是,就是现在如日中天的微服务。


协调性直接影响的是系统的效率。流程,工具,子系统,最重要的是人与系统直接的匹配,也是大家熟知的康威定律。


系统架构设计的时候,我们往往强调以终为始。所谓终,延展一下就是心目中的理想系统。系统的组成是复杂的,架构的约束存在着自身的矛盾,提高理想度中有用对无用的比值是提高核心约束的过程,将部分功能转移是一种借力打力。


如何匹配系统演进的方式呢,这可能是就是全栈小团队的用武之地。全栈团队也有着狭义广义的说法,但基本都是业务线分割,高度自治,覆盖技术栈支持DevOps的小团队,自身就是一个完备的系统。


全栈团队的管理包括《老曹眼中的敏捷开发》中的ABC,如何促进团队的动态流动,通过敏捷过程完成连续性交付,同时提高DevOps及工具支撑。


敏捷过程往往会带来一些副作用,例如技术债务。技术债至少可以分为6类,甚至可以更细。我们能算一算每项技术债的利息么?


马丁大叔的《重构》是一种经典,但代码层面的重构并不适合架构或者系统层面的重构,因为重构的前提条件在系统层面往往是不成立的。因此,refactor 会演变成refine。


全栈团队的分享是提高系统流动性的有效方法。可以有团队内部的周期性分享,专业的技术技能培训,内部社区的建立,投身外部社区等等,让团队做自己的主人。


以上,是分享的全部内容。研发管理或者技术管理的分享一般都会充满争议,管理本身就是面向结果的实践。因为时空的变化,人员的不同,很多的成功和最佳实践往往无法复制,我们企图探索一些可以实践的不变的东西,但只是,在路上。



微信扫一扫
关注该公众号

目录
相关文章
|
8月前
高效团队的实战-自如OKR实景 | 彭文华
高效团队的实战-自如OKR实景 | 彭文华
|
4月前
|
运维 Java 开发工具
Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
38 0
|
4月前
|
存储 运维 网络协议
九五从零开始的运维之路(其二十五)
iscsi全称:Internet Small Computer System Interface——互联网小型计算机接口 通过网络获取磁盘设备在本地进行存储使用。
37 0
|
4月前
|
存储 缓存 NoSQL
九五从零开始的运维之路(其三十二)
本篇将简述的内容:Linux系统下的Redis基础
45 0
|
4月前
|
运维 安全 Linux
九五从零开始的运维之路(其二十二)
SSH服务是Linux系统中重要的远程访问和管理工具,通过深入探索其原理、配置、安全性和常见问题解决方法,读者可以更好地理解和使用SSH服务,提高系统的安全性和效率。
30 0
|
4月前
|
运维 安全 网络协议
九五从零开始的运维之路(其二十三)
rsync服务是一个可靠、高效和安全的文件同步和备份工具,它可以帮助用户轻松地管理和保护数据。无论是个人用户还是企业用户,都可以从rsync服务中获得许多好处。
30 0
|
4月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其二十八)
数据库用户权限管理是数据库系统中非常重要的一个方面,它用于控制不同用户访问和操作数据库的权限范围。数据库用户权限管理可以保护敏感数据和数据库结构,确保只有被授权的用户才可以操作和使用数据库,防止数据被修改或泄露,并最大程度地保证数据库的安全。为了保护数据库的安全性,合理管理MySQL服务用户的权限是至关重要的。
32 0
|
4月前
|
存储 运维 Linux
九五从零开始的运维之路(其三十一)
计划任务是在指定的时间间隔内自动执行的任务。在Linux系统中,常用的计划任务工具是crond(cron daemon)。用户可以通过创建计划任务来定期执行指定的命令或脚本。
37 0
|
4月前
|
存储 运维 关系型数据库
九五从零开始的运维之路(其二十九)
数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务
43 0
|
4月前
|
运维 应用服务中间件 网络安全
九五从零开始的运维之路(其十八)
本篇将简述的内容:Linux系统下的Nginx基本部署
23 0