关于软件产品化的几点思考【转】

2023-11-09

关于软件产品化的几点思考

转自: 汉捷咨询

    国内很多软件企业尤其是行业软件企业是从开发一、二个软件项目起家的,而且项目规模和复杂度也不大,依赖其中一两个高手,他们能够在客户适度满意的状态下成功完成项目。基于以往研究,成功的主要因素是项目具备以下特点:如果是需求定制形的项目,项目需求明确且范围不大,变动不多。这样的项目要么客户方需求明确,要么企业对需求足够了解,这样,意味着项目双方至少有一个人对需求有全面并且细致的了解;双方合作氛围很好,这可以减少需求变更的量和避免冲突尖锐。如是技术引领型的项目,则依赖于企业的独特技术。企业有一两名技术和业务的高手。项目使用的技术涉及面不广,往往一两个人兼而关注就可以把握。一点运气:正好选对了技术平台;正好高手没有离职……随着时间的推移,企业承接的项目多了,人员多了,企业规模也扩大了。这时候,企业的内外部环境都发生了很大的变化。

 

    从外部环境来看:

 

    1) 客户行业发展迅速,需求在宽度、深度、变化频度上发生了持续的变化。具体来说,要求软件系统支撑的业务多了(需求宽度增加);并发使用软件系统的人多了、时间长了,业务过程复杂了(深度增加);竞争加剧,客户需要经常进行业务的调整(变化频度多了)。这种变化,往往会使客户的需求管理成为一个专业、持续、并且工作量相当的过程。也就是说,企业具有需求管理与软件开发进行分工的需求。


    2) 软件系统开发使用的第三方技术平台种类多,且复杂,更新换代也快,如果软件系统在性能、持续稳定性有要求,并且软件使用周期设计要求满足一定的年限,就要求企业对第三方技术平台的发展进行跟踪,并寻求有效应用的实际经验(最佳实践规范)。这样,企业就逐步有将集成应用技术(含软、硬件集成应用技术)进行专业分工的需求。企业的软件项目越多、第三方技术平台越多样复杂、软件系统的要求故障时间越短,这方面的需求就越迫切。


    3) 市场技术竞争的重要性增加,关系竞争弱化,企业发现为了获取合同,他们需要有研发能力的保障,并且要在技术竞争考察中胜出。迫使企业对客户关注的重点专业技术进行投入。

 

    从内部状况来看:

1) 企业同时运作软件项目数量增多,但依赖于高手的项目模式没有改变。各项目都需要高手来保障,如果没有高手,项目就停滞不前,而且往往以非正常手段结束。

2) 随着软件项目的深入展开或软件的升级换代,企业会发现有些模块的开发总是在重重复复地做,上一个版本做了,这个版本还要继续做,同时开展几个项目,都有类似的事情在重复做。但要直接使用之前的内容,又不行。例如,很典型的是,每个软件项目都在做系统的登陆权限管理;每个软件项目都有录入合法性校验问题等等。

3) 技术人员总是有很多理由不去写文档,如果不是一个人将一个模块从分析设计负责到代码,后一个环节的人总是得意于自我创新,并容易发生设计人员和开发人员的扯皮。

4) 软件项目在前期开发时候是一路凯歌,到了快要交付的时候,却又难产,总是达不到要求,改改代码重新测试,没完没了。而技术人员又非常辛苦。甚至出现部分或大全部返工现象。

5) 软件项目开始的时候,谁也不知道什么时候能完成,领导说三个月就三个月,半年就半年,实际上,没有按期完成的,延期3-5个月是常事,1-2年也是有的,甚至不得不换班子重开炉灶。面对以上变化和问题,企业的解决办法之一是延续原有项目的成功模式——高手主导的项目模式,即给每一个项目配备高手。如果没有那么多高手,就让把所有的项目压在有限的高手身上。如果高手有限的话,实际上企业是将问题转移给相对低资源能力的高手去解决。当然,有限的高手也同样可以使用同样的手法进行问题转嫁。这有点像项目承包,企业完成软件项目的能力依赖于不同的高手,如果高手恰恰不行的话,软件项目将一塌糊涂。高手们在项目中可以进行分工调整,由于项目的临时性特征,这些调整注定也是为项目服务的。形成公司能力积累的方式往往是产生一些专业的高手。而且,项目出现的问题越多,这样的高手越能获得公司的重视。这种解决办法由于将所有的问题转移到高手身上,企业管理就研发方面的决策难以形成明确的方向和目标,在研发方面只有用人的战略。


    显然,以上并非根本性的解决方案。企业很难找到或培养那么多高手,导致企业业务发展受限,而且这种方式面临的风险很大;过度的项目定制开发不但影响项目的交付进度和质量,也使成本居高不下,侵袭了企业本来就比较有限的利润。那么,出路只能是走向产品化。然而,软件产品化是一件相当困难的事情,企业在各个方面都将面临挑战,并必须作出相应的改变。


    首先,企业需要转变经营理念和思路。其实不管是项目化还是产品化,都要坚持客户导向,但是就客户导向的内涵和实现方式上,很多企业往往是被动地满足客户需求,甚至迁就客户五花八门的需求。我们到底选择什么样的客户?这是企业成长中必须作出的回答。即便已经明确了这个问题,对客户各种需求也不是不加区别的满足,而是需要抓住目标客户的核心需求和偏好,并认识到客户只要在核心利益上得到足够的满足,他们愿意牺牲一些个性化的特性——这正是产品化的前提假设。


    在实现方式上,当然就是要坚持平台化的开发模式,基于需求分析提炼和规划产品平台,然后在产品平台的基础上,划分产品系列,从而形成平台产品或产品版本。在贯彻平台化开发思想的过程中,应注意在差异化和通用性上取得平衡。可以说,复制是软件利润的唯一来源,所以软件重用度的目标甚至要优先于差异化的目标,因为只要有足够大的重用度,就能够大幅度降低成本,企业只要在核心需求上满足了客户,再加上价格和速度的优势,必将在竞争中处于不败之地。


    根据以往经验,产品平台化实施过程中将面临各方面的困难。面对外部一些新的市场机会和客户特殊需求,营销人员总是倾向于把握新机会和响应客户的新需求,如果高层在增长压力下没有确定相应的战略原则去约束产品决策,则很可能使既定产品定位和产品化方向的努力付诸东流。即使公司界定了产品定位和方向,在具体操作时,到底用户的某个特性是否需要加入产品规划中,到底某个需求是否应当纳入到产品功能开发中……如何在标准产品与客户最终产品之间取得平衡,这仍然产品化开发模式下最为头痛的问题。有些需求一旦纳入标准产品之中,对产品可能是致命的打击。


    在平台化开发模式下,产品架构和模块/组件设计将更多地考虑开放性、通用性和冗余设计,从局部来看会影响产品开发的进度和效率,尤其对新产品系列的第一个产品,将需要更长时间才能推向市场,这是企业必须认识和接受的代价,但换来的是后续产品开发速度的大幅提升。另外,产品平台化开发还会来自内部高手的挑战和开发人员习惯的阻力。高手们总是希望按照自己的思路规划和开发产品,要让大家都统一到一致的平台架构和开发模式下绝非易事。开发人员也不喜欢条条框框,总是想弄点什么新的东西,但平台化则需要更多的标准化和规范要求。综上,要解决这些难题,企业需要足够的决心和耐心。


    显然,软件产品化不仅仅是技术上的问题,然而技术也是其中关键的一环,包括架构设计、技术平台、模块化构造、数据结构、函数/算法、接口技术等。例如技术平台的工作一般包括:

 

    第三方技术平台选型

    技术使用研究,确定软件项目技术路线和技术架构,制定开发规范,并形成开发案例和模板,扫清开发队伍大规模开发时的障碍开发技术控件,提高开发队伍大规模开发的效率等等。
    软件产品化还与行业发展状况、企业产品形态成熟度、企业管理成熟度、软件技术发展、人员职业化程度等因素相关,所以软件产品化和平台化建设还要与企业研发管理、项目管理、人力资源管理一同推进。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于软件产品化的几点思考【转】 的相关文章

  • Block底层原理读书笔记-《高级编程- iOS与OS多线程和内存管理》(更新中)

    1 一个Block 真正的底层都有些什么 Block会被解析成一个结构体 这里成为Block结构体 这个结构体里有 1 isa指针 说明Block的本质是一个对象 指向Stack 堆 2 有函数指针 这个函数指针指向一个函数体 该函数体的内
  • windows下两种方法通过cmd进入指定目录

    方法一 通过cmd cd命令进入 相同盘符下的目录可直接使用cd 但是windows下不同于linux 不能直接跨盘符cd进入目录 例如 从C盘进入E盘下面的目录 需要两行命令 跨盘符 跨盘符目录 先后顺序都可以 先输入跨盘符目录 再输入跨
  • Advanced Installer汉化版教程(打包程序,安装包制作)

    Advanced Installer汉化版教程 转载 打包程序 安装包制作 下载地址 http www crsky com soft 6776 html 1 新建一个安装工程 2 详细的设置工程文件 A 设置产品信息以及在控制面板里的一些信
  • 超强实用:中国各地特产风味大搜捕!

    http www lotour com snapshot 2006 2 6 snapshot 32012 shtml 来源 中国交通旅游图册 北京特产风味 北京集全国风味佳肴 工艺美术和民族用品于一城 宫廷菜点 烤鸭 果脯 酥糖 京绣 戏装
  • 软件项目管理的成功法则

    1 平衡原则 在我们讨论软件项目为什么会失败时可以列出了很多的原因 答案有很多 如管理问题 技术问题 人员问题等等 但是有一个根本的思想问题是最容易忽视的 也是软件系统的用户 软件开发商 销售代理商最不想正视的 那就是 需求 资源 工期 质
  • 关于软件产品化的几点思考【转】

    关于软件产品化的几点思考 转自 汉捷咨询 国内很多软件企业尤其是行业软件企业是从开发一 二个软件项目起家的 而且项目规模和复杂度也不大 依赖其中一两个高手 他们能够在客户适度满意的状态下成功完成项目 基于以往研究 成功的主要因素是项目具备以
  • 温昱书评:读《代码之道》

    索然无味 毫无观点的书永远引不起人们的阅读兴趣 放心 代码之道 绝对不是 形式上 本书中的每一篇文章都通过讲故事等方式提出问题 然后分析问题根源 最后给出改善建议 其中 问题的提出往往极具戏剧效果 作者也坦承 为了达到效果 我又一次夸大了问
  • 基于Eclipse的下一代建模工具

    基于Eclipse的下一代建模工具 孟言 CSDN的网友大家下午好 昨天世界杯结束了 今天我们就可以把精力重新投入到我们酷爱的技术上 很高兴与大家进行这一起CSDN的视频节目 我们今天很高兴请到软件建模资深的专家 一位是李纪华 他是IBM
  • 探索产品研发流程及步骤

    引言 一直想做一篇关于产品研发相关的文章 终于有时间来总结这些东西 说到产品研发 那么不得不说一下产品 书上说产品的5个要素 内涵 形式 外延 理念和终端 但是我认为产品就三个关键点 有用 可用 可行 有用 产品能帮助解决用户某个真实存在的
  • 关于静态测试

    1 静态测试 静态测试是指不运行被测试程序而寻找程序代码中可能存在的错误或评估程序代码的过程 静态测试的特点是不需要运行代码 也不需要对代码编译 链接和生成可执行文件 它是通过分析或检查源程序的方法 结构 过程 接口等来检查程序的正确性 目
  • 访谈录:中国的软件业需要悟道

    1 记者 目前 随着中国IT业的发展 国外IT企业对中国IT业也越来越重视 能否简单介绍一下目前中国外包情况 陆其明 近几年 中国IT业的发展确实比较快 特别是软件行业 你可以看到 全国各地都在建软件园 各级政府对软件企业也都有政策倾斜 软
  • 长尾理论(The Long Tail)与Google的成功

    根据wikipedia的解释 长尾 Long Tail 是2004年Chris Anderson在给连线杂志的文章中首次使用的词汇 用以描述某种经济模式如Amazon com或Netflix 长尾术语也普遍使用于统计学中 如 对财富分布或词
  • 为什么米聊干不过微信

    1 核心功能不稳定 2 广播太多用户体验差 3 取名太局限 4 发展新朋友能力有限 5 运营能力差
  • OA项目软件说明书

    最近写了一个OA项目 主要根据这个软件说明书来编写的 此处省略了封面的一些格式不友好的内容 目 录 1 引言 1 1 目的 1 2 定义 1 3 参考资料 2 软件总体概述 2 1 软件标识 2 1 1 项目名称 2 1 2 产品标识 2
  • 责任中心(成本中心、利润中心、收入中心、费用中心和投资中心)

    转帖自智库百科 http wiki mbalib com 责任中心 出自MBA智库百科 http wiki mbalib com 责任中心 Responsibility Center 目录 隐藏 1 什么是责任中心 2 责任中心的特征 3
  • 一周小结 - 拒绝拖延 现在做起

    很早就一直有用文字记录生活的想法 终于在这周开始了 不知道能写多久 拭目以待 一周的生活回顾下来 可能下面的一些让自己有些许感悟吧 感悟之一 更多的体验发现不一样的美好 感悟之二 有些事并没那么可怕 可怕的 可能是被头脑放大了N倍 感悟之三
  • Digest:台湾经济情况

    FROM http www bjstb gov cn images zyxx gztw twyx jjfz new page 2 htm 台湾经济情况 一 1949年以来 台湾经济发展大致经历四个时期 一 经济恢复时期 1949 1952年
  • Windows设置本地DNS域名解析Hosts文件的方法

    我们需要先了解DNS解析查询的顺序 在用户输入域名之后 DNS解析查询的顺序是下面这样的 1 浏览器会首先查看自身的缓存 如果浏览器缓存中有对应的解析记录 直接返回结果 2 如果浏览器没有缓存 电脑会查看本地操作系统的缓存 如果有记录 直接
  • 运放稳定性连载21:电容性负载的稳定性——具有双通道反馈的RISO(2)

    现在 我们必须测量如图10 6所示的Zo 小信号AC开环输出阻抗 该Tina SPICE测试电路将测试空载OPA177的Zo R2和R1以及LT为低通滤波器函数提供了一条AC通道 这样 使得我们能将DC短路和AC开路一起并入反馈电路 DC工
  • Git clone 时 出现SSL certificate problem error

    出现这个问题的原因是本地默认开启了SSL认证 但是在本地找不到SSL证书 解决办法就是关掉 SLL认证 git clone 时加上参数 no ssl check 完整的命令应该是 git clone no ssl check https g

随机推荐

  • 洛谷 P5710 数的性质

    题目描述 一些数字可能拥有以下的性质 性质 1 是偶数 性质 2 大于 4 且不大于 12 小A 喜欢这两个性质同时成立的数字 Uim 喜欢这至少符合其中一种性质的数字 八尾勇喜欢刚好有符合其中一个性质的数字 正妹喜欢不符合这两个性质的数字
  • VR开发——Unity中导入常用的VR开发插件及简单使用

    VR开发 Unity中导入VIVE的VR开发插件及简单使用 V客学院 今天我们来讲解如何进行简单的htc vive设备的软体开发 今天的教程主要讲解从插件的导入到基本的设置以及场景搭建 小白向 首先 我们需要进入Unity中的AssetsS
  • MySQL explain 、explain extended用法

    explain显示了mysql如何使用索引来处理select语句以及连接表 可以帮助选择更好的索引和写出更优化的查询语句 使用方法 在select语句前加上explain就可以了 如 explain select from statuses
  • Unity基础之Vuforia

    Vuforia官网 https developer vuforia com Vuforia Agumented Reality SDK Vuforia增强现实扩展工具包 所属公司 高通 支持平台 Android IOS UWP 支持设备 前
  • 基于langChain 的privateGPT 文档问答 研究

    参考 gihtub代码 https github com imartinez privateGPT 官网 privateGPT可以在断网的情况下 借助GPT和文档进行交互 有利于保护数据隐私 privateGPT可以有四个用处 1 增强知识
  • [nodejs]解决mysql和连接池(pool)自动断开问题

    最近在做一个个人项目 数据库尝试使用了mongodb sqlite和mysql 分享一下关于mysql的连接池用法 项目部署于appfog 项目中我使用连接池链接数据库 本地测试一切正常 上线以后 经过几次请求两个数据接口总是报503 一直
  • stm32_acs712电流采集计算思路

    Acs712数据手册地址 https item szlcsc com 45473 html 需要测量的参数 0 实际电流值 ACS712 A 1 acs712供电电压 Vin 2 ACS 输出电压 712 OUT V 3 ACS 输出电压
  • ps命令查看具体进程的所有线程

    ps p PID t
  • 【Java数据结构】——详解优先级队列-(堆)

    文章目录 一 堆的概念 二 向下调整 1 建初堆 2 建堆 三 优先级队列 1 什么是优先队列 2 入队列 3 出队列 4 返回队首元素 5 堆的其他TopK问题 总结 一 堆的概念 堆的定义 n个元素的序列 k1 k2 kn 称之为堆 当
  • Hyperledger Fabric架构详解

    Fabric是一个模块化和可扩展的开源系统 用于部署和操作许可的区块链 也是Linux基金会 www hyperledger org 主持的Hyperledger项目之一 Hyperledger Fabric是一个较为典型的联盟链结构 1
  • Kubernetes 映射外部服务到集群内部的场景

    0x04 Kubernetes 映射外部服务到集群内部的场景 场景 1 集群外的数据库映射到集群内部 IP地址 描述 如果您在 Kubernetes 内部和外部分别运行一些服务应用 此时应用如果分别依赖集群内部和外部应用时 通过采用将集群外
  • 游标循环loop,while和for的性能比较

    利用游标循环取大量数据时 性能显得十分重要 现在对三种循环进行一下性能的比较 一 测试环境配置 硬件 HP笔记本 intel core TM 2 主频2 0GHz 3G内存 win7操作系统 工具 PL SQL 数据库 oracle 我的数
  • 深入浅出python系列(三):逻辑判断语句

    深入浅出python系列 深入浅出python系列 一 基本数据类型 深入浅出python系列 二 运算符 版权申明 未经博主同意 谢绝转载 请尊重原创 博主保留追究权 本博客的内容来自于 深入浅出python系列 三 逻辑判断语句 学习
  • 如何基于 Git 设计合理的多人开发模式

    本文转自 Java高性能架构 一个企业级项目是由多人合作完成的 不同开发者在本地开发完代码之后 可能提交到同一个代码仓库 同一个开发者也可能同时开发几个功能特性 这种多人合作开发 多功能并行开发的特性如果处理不好 就会带来诸如丢失代码 合错
  • 信安大佬真的用kali吗?

    Kali只是现在网络安全和kali比较火的一个操作系统 下面我为大家讲讲kali系统都有那些优点 Kali介绍Kali Linux是基于Debian的Linux发行版 设计用于数字取证操作系统 面向专业的渗透测试和安全审计 集成化 预装超过
  • 【Linux】2、systemd、journalctl 超详细介绍

    文章目录 一 背景 二 系统管理 2 1 systemctl 2 1 1 State degraded 2 2 systemd analyze 2 3 hostnamectl 2 4 localectl 2 5 timedatectl 2
  • 微信小程序项目实战-电影票订票系统的毕业设计(附源码+论文)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 微信小程序毕业设计 精彩专栏推荐 安卓app毕业设计 Java毕业设计 电影票订票小程序软件 java 演示 源码下载地址 https download csdn net d
  • 电工学习笔记——示波器交直流耦合的区别

    一 概述 示波器的输入耦合方式的意思是输入信号的传输方式 耦合是指两个或两个以上的电路元件或电网络等的输入与输出之间存在紧密配合与相互影响 并通过相互作用从一侧向另一侧传输能量的现象 示波器的输入耦合属于信号直接耦合 一般有两种方式 分别是
  • spark报错:The current account does not have the permission of database

    异常信息 22 01 18 20 21 34 main WARN HiveSessionCatalog The current account does not have the permission of database adm It
  • 关于软件产品化的几点思考【转】

    关于软件产品化的几点思考 转自 汉捷咨询 国内很多软件企业尤其是行业软件企业是从开发一 二个软件项目起家的 而且项目规模和复杂度也不大 依赖其中一两个高手 他们能够在客户适度满意的状态下成功完成项目 基于以往研究 成功的主要因素是项目具备以