技术选型与技术债务
一、选型维度:团队能力、生态、演进与锁定风险
选型不能只看技术本身,要看谁用、谁维护、能走多远。团队能力:团队是否具备该技术的使用与排错能力?学习成本与招聘难度如何?能力不足时要么投入培训、要么选更成熟/更易上手的方案。生态:文档、社区、第三方组件、招聘市场供给;生态弱的技术遇到问题难找答案、招人难。演进:该技术是否持续维护、版本节奏、与上下游的兼容性;避免选已进入维护期或即将废弃的技术。锁定风险:对厂商、协议、数据格式的依赖程度;锁死后的迁移成本与谈判筹码。四维综合看,避免「技术很酷但团队接不住」或「一时省事、长期被锁」。
团队是否会用、会排错?学习成本与招聘难度?能力不足则培训或选更易上手的方案。
- 接不住就别硬上
文档、社区、组件、人才供给;生态弱则排错难、招人难。
- 优先选有生态的
是否持续维护、版本节奏、兼容性;避免已维护期或即将废弃的技术。
- 看 roadmap 与社区活跃度
对厂商、协议、数据格式的依赖;锁死后的迁移成本与谈判筹码。
- 关键路径慎用强锁定
二、何时自研、何时采购、何时开源
没有绝对答案,要看差异化、成本与可控性。自研:核心差异化、无合适现成方案、或长期成本与可控性要求高时考虑;代价是投入大、要自己扛演进与维护。采购(商业产品/SaaS):非核心、标准化需求、要快速上线或省运维时考虑;注意合同、SLA、数据与锁定。开源:有成熟项目且协议与生态可接受时,可省许可费、可定制;要评估社区健康度、安全与合规、自己是否有能力参与或 fork。三者可组合(如核心自研、周边用开源或采购);决策时写清「为什么选这种、前提与退出策略」。
三、技术债的识别、度量与偿还策略
技术债是「为求短期交付而欠下的长期成本」:代码与设计上的 shortcuts、文档缺失、测试不足、依赖陈旧等。识别:通过代码评审、架构评审、故障复盘、指标(复杂度、重复率、测试覆盖、依赖版本)发现;把「已知债」列成清单并标注影响与优先级。度量:用定性(高/中/低)或简单量化(如修复人天、影响范围)估计还债成本与不还的风险;便于排期与沟通。偿还策略:不是一次还清,而是常态化还债——每个迭代留一定比例时间、或「改哪块顺带还哪块的债」;对阻塞演进或高风险的债优先还;把还债项写进 backlog 与评审,避免永远「下次再说」。
四、在有限资源下做可持续的选型
资源永远有限,选型要可持续:不追求一次到位,而是「能撑住当前阶段、为下一阶段留余地」。显式接受部分债:在时间与人力约束下,有的债短期可接受,但要记录、排期还;不默许「永远不还」。选型留退路:抽象与接口隔离、避免强锁定,便于将来替换或迁移。平衡新需求与还债:固定比例时间还债、或需求与还债绑定(改哪还哪);避免只堆新功能、债越滚越大。可持续的选型是在约束下做可逆或可演进的决策,而不是赌一把。
可持续选型要点
- 显式接受部分债并记录: 短期可接受的债要写进 backlog、排期还,不默许永远不还。
- 选型留退路: 抽象与接口隔离、减少强锁定,便于将来替换或迁移。
- 平衡新需求与还债: 固定比例还债或「改哪还哪」,避免只堆功能、债滚大。
要点: 选型看团队能力、生态、演进、锁定风险;自研/采购/开源按差异化、成本与可控性选择,可组合;技术债要识别、度量、常态化偿还,优先高风险与阻塞项;在有限资源下记录债、留退路、平衡还债与新需求,做可持续的选型。
反例:只看技术不看团队、债不记录不还、选型锁死。
某团队引入一套很先进但文档少、社区小的技术,结果没人能深入排错,线上问题拖很久。某系统技术债人人知道但从不列清单、不排期,每次想还都说「没时间」,几年后改不动了。某次选型用了厂商深度定制的协议与数据格式,后来想迁移成本巨大、谈判被动。正确做法:选型前评估团队能力与生态、写清前提与退出策略;技术债列清单、标优先级、每迭代留时间还;关键路径避免强锁定、用抽象留退路。技术选型与还债的目的是在约束下可持续交付,而不是追新或欠债不还。
小结: 选型要看团队能力、生态、演进与锁定风险;自研/采购/开源按场景与约束选择并可组合;技术债要识别、度量、常态化偿还,优先高风险;在有限资源下记录债、留退路、平衡还债与新需求。下一章从架构师到技术领袖:方向、人才与文化,本课程的收尾与进阶建议。
五、小结
技术选型与技术债务要在约束下做可持续的决策。用团队能力、生态、演进、锁定风险四维选型;用自研/采购/开源的组合匹配场景;用识别、度量、偿还管理技术债;在有限资源下记录、留退路、平衡还债。下一章讲从架构师到技术领袖:方向、人才与文化,以及本课程的回顾与进阶学习建议。