关于软件产业的两个契机

软件产业是一个产业 , 和其它的产业一样 , 有各种角色分工 。

 

未来的软件是跨行业的 。 未来 , 软件会将各个行业联系在一起 。

 

云计算是第一代互联网发展到成熟的标志 。

网格计算是第二代互联网的开始 。

 

软件产业 在 未来 会 分为  平台(基础设施) 和  应用软件   2  个 阵营,  应用软件 是 跨行业的, 也可以说, 各行业 之间 由 应用软件 连接 起来,

应用软件 贯穿 了 各行业 。

举个例子, 我们可以看看 汽车 行业 的 发展方向, 就能 看到 这一点 。

汽车产业, 在 未来 本身 也是 融合 了 各个行业 的 , 因为 汽车 上 会扩展出 许多 功能 。

所有这些功能, 都 需要 应用软件 的 支持 。

 

应用软件 的 工业化 不久的 将来 就会 到来 。

所谓 工业化, 就是 像 工厂 一样 生产软件 。

工厂 是 什么样?

有 流水线, 分工, 每个 工种 负责 自己的 工序 和 专业, 

软件工厂 也是 这样 。

 

但, 软件 说 “工业” 不太合适,  说 “产业” 比较 合适,

软件业 是 技术性 知识性 很强 的 智力密集型 行业,   再加上   软件 “软” 的 特性,  说 “生产” 不合适, 说 “研发” 比较合适  。

软件 的 “软”, 比如   软件 是 无法 或者 很难 像 硬件一样 交付 的  。

 

好吧, 我觉得 “软件生产力” 还是 叫做  “软件研发能力”  比较好,

不过    战斗力 , 爆发力   这是 不变 的 。

 

软件研发能力 是 软件产业理论 的 一个核心 。

 

而 软件研发能力 的 一个 表现 是 产能 。

 

所谓   战斗力  爆发力,  是指 可以 快速 的 转到 不同的 技术平台 和 业务领域 ,

乃至于 可以 同时 应对 不同的 技术平台 和 业务领域 。

这是 由 团队 不同 角色 的 分工合作 而  达到的 。

 

技能 应该 贯通,  角色 应该 分开 。

这就是 DevOps , 

不止是 DevOps , 还超越了 DevOps,  简称 SDevOps ,

即   Super DevOps 。

 

团队角色 可以分为:

开发/运维, 测试, 设计/架构(指挥官), 项目经理(总指挥官), 技术支持(可选) ,

所有的 角色 均从 开发 进化 而来 。

 

根据 Netflix 的  “谁开发, 谁运维”, 开发 本身就包含了 运维 。

技术支持 提供建议 帮助 解决一些 技术难点 、 架构难点 等 , 参与项目 但 不直接对项目负责, 是 可选 的 角色 。

 

测试 是  SDevOps 的   关键  核心  枢纽 。

需求分析师 这一类的 角色 是 不需要的,  整个团队 就是 需求分析师 。

 

协作 是 团队 的 本质,

团队 的 力量 来自于 协作 。

协作 就是  1 + 1 > 2  ,    我可以把牛吹的 大一点,   1 * 5 > 10   。   ^^

 

项目的规模 不仅仅 包含 工作量, 还包含 复杂性,

当 项目 达到一定 规模 时, 复杂性 成 级数 增加, 需要 用 协作 的 方式 拆解 。

 

复杂性 需要 将 大 的 需求 分解 为 小的 模块  来   解决,  这是 纵向 的 分解 。

还有 横向 的 分解,  就是 不同的 角色 参与,  首先,  在 开发 的 基础 上,  加入  测试  角色,  这是一种  分解 复杂性 。

不同 的 角色 从 不同的 视角 来 审视 系统,  这样 来 分解 复杂性 。

 

测试人员 应该 高频 的 配合 开发人员 完成 一个 模块 。

在 部署 运维 的 时候 也 应该 高频 密切 的 配合 开发人员 。

这是 以 协作 来 取到 高效率 和 分解复杂性 的 一个 例子 。

 

刚开始 的时候, 可能 这样 做的 成本 会 有点高,  

但是 当  团队 规模 达到 一定 规模 时,  成本  会 降低 ,  且 产生的 力量 是   排山倒海,   势不可当   的 。

这样的 团队 可以 应对 任何规模 的 项目 。

这就是    SDevOps,  

Super  DevOps   。

 

 

 

 

posted on 2018-08-24 20:51  凯特琳  阅读(391)  评论(0编辑  收藏  举报

导航