17.软件架构设计:大型网站技术架构与业务架构融合之道 --- 团队能力的提升
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17.软件架构设计:大型网站技术架构与业务架构融合之道 --- 团队能力的提升相关的知识,希望对你有一定的参考价值。
第17章 团队能力的提升
17.1 不确定性与风险把控
技术管理的首要任务是项目管理。对于项目管理,有一个关键问题要面对:"不确定性"的问题。有哪些不确定性呢?
1.需求的不确定性
2.技术的不确定性
3.人员的不确定性
4.组织的不确定性
5.历史遗留的问题
17.2 以价值为中心的管理
技术的4层价值模型:
1.第一个层次
程序员最熟悉且经常谈论的:系统有多少个业务模块,功能多么强大,采用了多少新技术,采用了某个先进的算法。
2.第二个层次(非功能性需求)
在所做的工作中,最核心的是采取了哪些措施?最终可能会抽象出1到2个。再追问下,这1到2个大的技术改进的价值是什么,通常都会追问到软件
的各个非功能性需求:
1.可重用性
2.可扩展性
3.可维护性
4.高性能
5.高并发
6.稳定性
7.高可靠
8.一致性
...
3.第三个层次(业务价值)
所做的系统为公司带来了什么业务价值:
1.极大的提升了用户体验,因此促进了用户增长?
2.提高了用户活跃度?
3.为公司增加了收入?
4.降低了公司的研发成本?
5.提升了公司的运维效率?
6.为公司开辟了一个新的市场?
...
4.第四个层次(开源节流?战略支撑?)
站在公司角度,公司是一个在市场经济中追求利润最大化的组织。从这个角度看,技术也好,产品也好,运营销售也好,最终的目的都是增加公司的利润。
而增加利润,要么"开源",要么"节流"。当然,还有一部分是"战略性投入"的项目,虽然它本身不赚钱,但是为了其他核心的业务而发挥的重要功能。
除了这4个方面,可能会涉及 研究性质的技术,技术的普惠性,技术对整个社会的促进作用等。
17.3 团队培养
1.技术能力
要培养人,首先要"识人"。只有清楚团队成员的技术能力层次,才能针对不同层次的人设置不同的培训内容。
技术人员的技术层次:
1.初级
全部是面条式代码,超长类,超长函数,各种隐涩难懂的if-else,写出来的代码时常出现问题,且长时间定位不到问题,对写的功能无法完整掌控。
2.中级
能熟练的完成各种功能开发,问题少,出现问题能快速解决。代码模块化程度比较高,系统稳定,有业务运维的意识。
3.高级
功底深厚,能解决各种开发中的"疑难杂症"。熟悉业务,能根据业务设计出各种合理的技术方案。
4.资深
对技术和业务都有深刻的思考,能对大规模,跨团队的系统进行很好的架构和设计。
对初级人员:需要时常做代码评审,需要读<<数据结构和算法>>,<<代码简洁之道>>之类的书籍,培养代码思维。
对中级人员:要培养系统设计能力。
对高级人员:虽然有系统设计能力,但不够深入,缺乏完善的方法论。
对资深人员:就解决问题而言,已经不是问题,需要发展的是业务能力,成为某个领域的技术领军人物。
2.独立意识
独立非常的关键,无论对于任何级别的人,都需要独立。所谓独立,就是能掌控事情,交给一个功能开发,能独立把功能做的很好。
做到这一步,意味着团队的每个人在自己所处的层次都是"可托付的",否则就会出现频繁的"补位"。组长干组员的活,经理干组长的活,总监干经理的活...
层层错位,最后导致整个组织缺乏"顶层设计"。
3.思维能力
当下属遇到问题的时候,很多人的解决办法是,告诉他问题的解决办法。如果只做到这一步,则没有起到培养的作用。
每个人在职场上工作,都是养家糊口。站在下属的角度看:如果跟着你干,能力没有提升,薪资待遇没有增长,公司业务前景也看不到,为什么要跟着干?
所以,作为一个管理者更多的是赋能他人,成就他人,做项目只是一个过程,最终是要打造一个极具战斗力的团队。有了这样的团队,可以在公司发展的不同阶段
自如的切换不同的业务。
以上是关于17.软件架构设计:大型网站技术架构与业务架构融合之道 --- 团队能力的提升的主要内容,如果未能解决你的问题,请参考以下文章
《软件架构设计:大型网站技术架构与业务架构融合之道》思维导图
3.软件架构设计:大型网站技术架构与业务架构融合之道 --- 语言
14.软件架构设计:大型网站技术架构与业务架构融合之道 --- 业务架构思维
13.软件架构设计:大型网站技术架构与业务架构融合之道 --- 业务意识