zoukankan      html  css  js  c++  java
  • 技术的那些事儿_2_产品与工艺

     

    二、产品与工艺

    1 产品和工艺的区别

    分清产品和工艺有助于对技术的理解。产品是就用户角度而言的,工艺是就生产的角度而言的。

    blog为例,一个blog平台,它是一个产品。而这个blog平台是怎么实现的,用什么语言实现的,后台是什么数据库,它属于工艺的选择。

    产品和工艺的关系是做什么和怎么做的关系。

    产品有产品的特征:

    1)功能:这个产品能做哪些事情?比如,blogwiki的功能不一样;一个道具收费型游戏和一个时间收费型游戏它们实现的功能不一样。

    2)性能:试衣网的3D试衣环境 http://3d.41go.cn/ 试试就会有很深的感觉。

    3)价格。

    4)用户的使用方式,包括:

    ·接入渠道:比如,远程家庭视频监控系统,一个人出差在外,可以有哪些接入方式呢?Web啊,手机啊,IM啊等等都是可选的。

    ·易用性:对有些人来说 windowslinux易用,对另外一些人而言相反,这个要看目标用户。

    ·兼容性:包括对现有东东的兼容性和对用户习惯的兼容性。

    5)产品的传播特征:

    ·可尝试性

    ·服务……

    产品的发展有两个阶段:在产品不成熟时期,主要集中于核心功能、性能等因素,是存异求同的过程。在产品成熟阶段,则是其它可产生差异化的因素,是存同求异的过程。

    工艺有工艺的特征:

    1)效率:更快的做事情:比如,引入一个成熟的框架可以加快速度。

    2)质量:更好地做事情:比如,一种成熟的过程管理技术可以保证质量。

    3)成本:更省的做事情:大多数时候引入一个成熟的框架可以降低成本,也有例外的时候,比如,这东东不是免费的,要收你一千万元。

    4)再加条柔性吧:更适应变化的世界

    工艺的发展有几个趋势:自动化、模块化和流程改进。自动化可以极大的提高效率和降低成本。推进模块化可以在效率、质量、成本和柔性四方面受益。流程改进也可以提高效率、质量、成本和柔性,不过具有较大的风险。

    2 产品创新和工艺创新

    产品方面的创新为产品创新,工艺方面的创新为工艺创新。

    几个成功的产品创新的例子:

    ·Google初推2G邮箱

    ·baidu贴吧

    ·Apple macmini

    ·史玉柱的《征途》

    ·java

    失败的产品创新例子:

    ·Smalltalk

    ·摩托罗拉的铱星计划

    产品创新也可以是局部的,如:

    ·RIA对用户体验的改进

    ·魔兽世界资料片中的竞技场系统和英雄副本

    产品创新的优势:

    ·满足用户尚未能满足的需求,用户买账。

    ·先发优势,领先一步,优势很明显的。

    ·占领细分市场,比别的产品更能满足部分用户的需求。

    工艺上的创新例子:

    ·敏捷软件开发过程(流程上的创新)

    ·PC的生产网络(20世纪最成功的模块化例子)

    ·OO

    ·TPS(丰田生产系统,这个在第五节细谈,这两年,有一些人在软件开发中推崇这个)

    工艺上的创新失败例子:

    ·NERP实施失败的例子

    工艺创新的优势:

    ·可以省钱

    ·可以省时间

    ·可以更快的推出产品

    3 技术的共性

    技术看起来五花八门,实质有很多的共通之处。

    1)例子:书籍和雨伞。

    书籍和雨伞,这两个看起来貌似不相关的东西,实质上都是通过“折叠”这一方式(方法、模式),来解决不用时空间占用过大的矛盾。泛型编程是不是也是这个道理呢?

    2)例子:模块化。

    以模块化为例,汽车行业零件的模块化,PC生产领域硬件规格的模块化和软件领域的模块化,都是有很多共通之处的。

    模块化的好处:

    ·通过解耦,来克服不确定性。这一点,西蒙的描述最精彩。手表是由上百个零件构成的,装配一只手表可以有两种方式。第一种方式是:从最基本的零件开始,一个一个零件的装配。在这种方式下,假如你的工作被中途打断或打乱,你就必须从头开始来重新装配这只手表。还可以采用另一种方式:将手表的各种零件分成不同的子系统来装配,再将子系统合成完整的手表。这样,在某个子系统的装配过程中出现混乱,不会影响其它子系统,对单个子系统的修复,也可能比对整个大系统(手表)的修复要简单得多。

    ·便于合作。将系统划分为模块很方便分工和合作,你做一块,我做一块,他做一块,然后集成到一起。

    ·柔性和可定制性。模块多了,可组配的方式就很多,很方便组合定制。

    OO是模块化技术的一种。OO技术准则其实就是模块化的那些准则穿个马甲。这方面的书籍太多了,不需要详谈。在这些准则之外,还有很多很重要,却很少有人归纳的方面。如:

    ·接口和技术规格的演化。这一点在设计接口或设计技术规格时非常重要。

    ·接口和技术规格的易用性问题。这一点那本《.Net什么什么规范》书中讲了一些。

    ·系统对模块的依赖程度问题。这个《敏捷软件开发》中讲了一些。假如某一模块在未来的一段时间内会失效,怎么办?

    3)例子:流程改进。

    超市、生产汽车、敏捷开发过程,三件事情,风马牛不相及。

    先看超市,顾客从货架上直接拿走商品,上货员观察货架哪里缺了多少就补上多少。

    这里注意信息传递的过程,信息是从需求方传递到供给方。

    传统的生产流程,信息是从供给方传递到需求方的:根据市场调查或过去经验或拍脑袋作出计划=>进原材料=>生产=>上市。

    这种信息传递方式的缺点是:

    ·信息是滞后的。因为作出决策所依据的信息是过去的信息或经验。

    ·信息是不准确的。

    可能导致的结果是:

    ·所生产的不是用户想要的;

    ·所生产的过多或过少;

    ·大量的库存。

    软件开发,很多时候也是这样:所开发的不是客户想要的;开发出很多客户用不上的东东。

    上世纪60年代,丰田的大野耐一受超市购物的启发,用了几十年时间弄了一套丰田生产系统(TPS)。TPS简单的说,就是:你买一辆车,我才生产一辆,没人买,那我生产线就不动。A工序从B工序拿一个零件,B工序则补上一个零件。通过这种方法,使需求信息准确、及时的传递到生产系统的各个地方。在网上订购过dell电脑的人估计有这种体会。

    后来,老美发现小日本的汽车生产效率又高,质量又好,屁颠屁颠的跑去研究,把这种方法归纳为“精益思想”。最近几年,搞敏捷的那帮人也捧起了这个词。

    仔细观察敏捷方法,它实质上也是尽量在做这件事情:

    ·把需求信息准确及时的传递到开发过程的各个环节

    ·创建一个一目了然的开发现场,让问题显现出来而不是掩盖问题

    拿测试驱动开发来说,下面两点是不是很相似呢?

    ·XUnit里的红灯、绿灯可以让人对软件的质量一目了然

    ·丰田生产系统之中,生产线上的每一个员工都可以停止生产线,一台车、一个零件出现质量问题,就停止生产线。

    掌握技术的共性,可以使我们对技术有更深入的理解。还以测试驱动来说,如果我们不将它理解为单纯的测试驱动,而当做一种一目了然的软件开发现场,就会有更深的体会。这时,就有个问题,红灯、绿灯它创造的现场对于运行这个测试的人来说是一目了然的,但对于别的人不是一目了然的。他们要观察这个现场,必需自己运行测试或阅读测试报告。

    这时,可否通过悲伤的音乐或美妙的音乐来补充红绿灯呢?这样做有几个好处:

    ·这个开发现场是清晰的,活跃的

    ·这个现场对其他人来说是一目了然的

    ·对于里程碑事件,通过之后,可以通过独特的音乐来提示,激发士气。

    掌握技术的共性,可以来鉴别技术。可以发现,许多技术都是马甲,我们需要的是穿破宣传的迷雾,去看看这些马甲的成色和材质,看看这个马甲能否对我们的产品或工艺有促进作用。

    上面讨论的技术偏向于工艺技术,产品技术的共性比较难把握,这个前苏联的TRIZ理论(第四节)可以做一个参考吧。

    4 对技术和趋势的讨论

    下面讨论讨论新(?)技术和新趋势。纯属个人观点,受个人视野所限。

    1)影响产品的技术和趋势

    ·三网融合,可能会体现在:用户群的扩大;用户使用产品的方式改变;一些新的用途。

    ·网络通讯技术的发展(带宽的增加)和计算机能力的提高,可能体现在:多媒体和3D技术主流化,3D孤岛的互联互通,一些新兴的带宽/CPU杀手应用

    ·制造成本的增加和产业升级导致很多企业改变发展策略,会加大技术投入来提高生产力,这一块会催生一些机会。

    2)影响工艺的技术和趋势

    ·自动化和框架/模块化的发展,提高了开发效率,降低了开发成本。

    ·软件开发的工厂化和组装化趋势。

    单纯学习技术,可能导致价值流失。比如,做了很多年一个东东,最后自己的工作却可以由软件自动实现,岂不悲哀。要是这软件是免费的,那就更悲哀了。

    单纯学习技术,可能导致价值迷失,迷茫与眼花缭乱的新技术,对未来感到没底。什么网格啊,云计算啊,猫猫的什么东东啊。对于绝大部分人,绝大部分公司的产品和工艺都不会产生影响,看它,和浪费生命有什么区别?

    什么样的技术值得关注呢?是那些可能(!)影响到我们(公司)的产品或工艺的技术。到底是哪些技术,这些技术有什么特征?要清楚了解非常的难。经常会看见这样的事情:A公司和B公司为敌,斗来斗去,最后蹦出个很小的野鸡公司把两个大公司给灭了。

    第三节将用几张图来介绍技术、产品和市场的演化过程,以助于从产业的角度来看待技术,分析:为什么当年的野鸡公司可以灭了大公司,为什么当年的野鸡技术可以战胜优秀技术,现在有哪些野鸡技术值得关注?

    话说ajax以前就是一只野鸡……还不算,只能算一只野鸡蛋。腾讯当年也只是一只小野鸡,当时若注册个几千个五位数、六位数的QQ号,没事晒晒,也是很大的一笔财富啊。

    版权所有,欢迎转载
  • 相关阅读:
    最小生成树Prim算法和Kruskal算法(转)
    tarjan有向图的强连通
    匈牙利算法
    字符类数组的常用函数
    三层登录——C#版
    监考风波
    SQL Server 2012 安装——安装 OR 卸载
    SQL Server 2012安装——.net framework 3.5离线安装
    坚定自我 守住寂寞
    浅谈三层
  • 原文地址:https://www.cnblogs.com/xiaotie/p/1229929.html
Copyright © 2011-2022 走看看