今年 8 月份,由于机缘巧合、从工作了 5 年半的蚂蚁转到了阿里云交付技术团队。我们知道阿里云由于起步早、持续投入大,目前产品竞争力已经很不错,前几年也基本覆盖了国内绝大多数的“电商、互联网”等典型偏技术的客户群。最近几年数字政府、新金融、新制造等概念的兴起,以前相对传统的行业也普遍需要结合“互联网和云计算”等先进技术和组织理念,因此阿里云客户群行业范围也随之扩大。
同时阿里云发现大多数中大型客户、需要的不只是“云平台”等底层纯技术的产品,更需要阿里的电商/新零售/金融等方面先进的业务解决方案,比如阿里的“业务中台、数据中台”架构方案。整个社会各行业也从原来的“互联网+”进化到的“数字化转型”的浪潮里。而阿里云的交付技术团队,就是一群身处第一线、直面客户遇到的各类问题,帮助客户尽量顺利地完成数字化转型的前锋队员。
但就如战斗冲锋不能光靠人力和勇气,而是更需要先进的各类武器装备、战略战术。所以交付技术部需要做“交付平台、工具”,制定“标准化”的交付流程,设计和沉淀“可复用”的技术方案,攻坚重大项目里“个性化”的难题和优化技术架构,从客户现场孵化创新产品形成团队的价值闭环。参照黄金圈法则,当拥有了内在动力、即知道了 why,那 how 和 what 就能比较自然呈现了。这两个月,我们的第一步就是深入客户项目做调研、感受最实际的痛点。
调研
首先通过看了一些项目代码,发现了一些常见问题:代码库没文档,多套代码库,因为权限问题页面运行不起来,钉钉联系不到代码作者(ISV),前端代码技术栈混乱落后、jQuery 等老技术栈居多,代码趋于腐化。针对这个初步情况,设计了一些调研问题:
一、通用调查
- 前端在项目中的重要性?造成多大比例的交付风险?
- 前端应用类型?
- 核心系统页 / 门户首页 / 可编辑的CMS / 营销活动页面
- 前端技术方案选型依据?
- GitHub star数 / 可维护性 / 上手门槛 / 个人喜好 / 社区普遍性
- 前端“技术选型”和“难点问题”谁来负责并解决?
- 原厂 / ISV
- 前端技术“最佳实践”和 showcase 有没有?
- 前端“项目文档”多不多?有无前端架构图?
- 典型的“高优先级”问题和痛点?
- ISV 同学前端工作年限?
- 0-2、3-5、大于 6 年
- ISV 同学技术能力评测?
- 新技术使用情况 / 有无开源贡献
二、技术专项 (附评分 - 10分最高)
- 开发语言: JS/css/html、es6 - 10、typescript - 10
- 基础框架: React - 10、Vue - 9、angular - 8、jQuery - 6、…
- 应用框架: umi.js、Redux、Vuex、Next.js
- 组件库/图表库: antd、element、angular ui、echarts、antv
- 构建: webpack、Gulp、Babel、Less / Scss、css module
- 测试和质量: eslint、jest、lighthouse、CI / CD
- 工程(平台)化: mock 平台、API 平台、DEF、basement、Web IDE
- 发布部署: SPA / 多页应用、SSR、PWA,CDN、docker
三、工程方案
- 前端搭建: 宜搭、斑马、云凤蝶、h5 和小程序 搭建系统
- 代码生成: Design to Code、Code generator
- 互动游戏: 动画库、游戏引擎
- A/B 测试
- Node.js 后端: BFF、SFF、小型创业公司 js 全栈解决方案?
解法
我们的调研问题,已经尽力覆盖前端研发各个环节、各个场景,在整理和细化过程中、也自然成为解决方案所需要的基础数据。再对这些数据进行“评分、打标、归类”,就有可能自动化地产出各类场景化前端解决方案。
当然首先要探索可扩展的 “分层次评分体系”、“打标方式”,比如:
- 对于“技术专项/技术栈/功能点”的垂直评分
- 相似解决方案的横向评分 (可依据垂直评分做推导 + 因子修正)
可能问题: 怎么保证“评分”的客观和公正性?是任何人都可以打分?分数的意义作用。
具体做法
- 以开源方式在 GitHub 上跑通核心的功能、便于公司外的合作伙伴参与,同时吸引更多感兴趣的人。
- 内部镜像做小数据验证,同时促进内部“前端技术/产品”对外服务,做成他们对外的一个“窗口”。
- 自动生成解决方案架构图,自动生成或关联核心代码。
总结
虽然经过了许多思考、但以上解法其实并不完善,可行性和效果其实都很难说、而且确实还没有实际的产出。最后附上在这个过程里的思考图示。