我对国内软件行业的看法(二)

 
1.      软件高效赢利模式
那么在这种环境下,如何通过软件来最大程度化的赢利呢,最简单的想法就是两点,论述如下:
1.1.代码复用
在前面也有提到,软件的成本主要是在其开发阶段,一旦开发成功,后续的成本是非常之少的,所有的软体都可以通过拷贝来解决。如果能对软件的代码进行复用,那么这是节约成本的一个非常好的办法。对于软件项目来说,每个项目都有其独特性,差异很大,如果做到完全复用,那是不可能的,但是基础代码的复用还是很可行的。目前国内很多大的软件公司,都有自己的基础架构平台、模块库、函数库,对于非常特殊的业务规则才开始编码。更有胜者,有些公司已经把很多语言根据不同行业的规则,封装成了原子构件,开发不再使用代码,直接拿原子构件拼装。(例如:普元公司的EOS)。但是所有的这些只是代码的部分复用,真正要做到代码的完全复用,只有一个办法,那就是做成软件产品。深入的挖掘某个行业客户的通用性需求,组织开发成产品,这是软件赢利最大化的准则之一。当然要做一个通用性的产品并不容易,有时候很难用一个产品将同一个行业的需求统一起来,这样就出现了一个软件产品的不同版本,例如:企业版,标准版等。这样是允许的也是必需的,但是如果为了满足某些客户的需求,在产品中开发了太多客户私有的需求,那么这就不是一个产品了,而是一个项目,是为某个用户定制的。这是违背了产品赢利最大化原则的,需要经最大的努力控制,在很多大的软件项目中,我一直在用户满意和产品通用性之间找平衡。
1.2.和硬件的结合
由于软件的形态、软件开发的门槛不高等原因造成软件行业不是很好做。但是如果将软件和硬件结合起来,这又是另外一个局面了。软件和硬件的结合主要有几种形式,第一种是嵌入式软件,也就是硬件里面的软件。第二种是硬件管理软件,第三种就是和硬件结合的应用软件。这三种软件形式在很多公司中都有体现,前两种软件在市场上的赢利也是非常不错的,由于篇幅关系,不想在这里展开讨论。对于第三种软件,我个人认为,将是软件行业的一片蓝海。这主要有几个原因:
1.2.1.门槛很高
并不是任何一个软件公司都有实力开发和硬件结合的应用软件的。大部分能够做这类应用软件的公司都是有着非常强大的硬件基础,这样才能够给应用软件的开发提供一个很好的环境和支持。就这一条的加入,将会挡住很多软件公司无法涉足这个市场,所以蓝海不会很快变红。但是有一点要注意的就是,这类应用软件和硬件的结合点一定要足够多,这样才能够和没有和硬件结合的软件分出优劣。如果应用软件和硬件结合的很好,那么就不单是卖产品了,我们是卖解决方案,是给客户解决一揽子问题的Solution!
 
1.2.2.带动硬件的销售
单个的硬件销售是苍白无力的,如果能包装成解决方案,那就不一样了。软件和硬件的结合正是包装成解决方案最好的办法之一(当然还有很多其他的方面,例如:培训、服务等)。一个好的硬件型应用软件将会大幅度的带动公司硬件的销售。
2.      软件如何才能有优势
上面介绍了软件如何高效的赢利,已经软件优势的问题,但是不够全面,下面还要介绍其他的几个方面。
2.1.天时
软件出现的时机是非常重要的,而且这个时机与市场成熟度也是有很大关系,并不是越早越好。如果市场不够成熟,用户对自己的问题认识的还不够深刻,也没有迫切解决的需求,那么这个时候去推相应的软件,即使是好东西,投入的成本也会非常高,而且很容易失败,所有的投入将会为后继的公司做铺垫。如果市场成熟,用户解决问题的想法很迫切,这种解决的方案市场运作地又非常好,被广大用户所接受,那么这个时候推出软件是非常合适的。例如:BEA在J2EE标准出来之后,迅速推出符合J2EE标准的应用服务器weblogic,在市场上取得了巨大的成功。只要市场成熟了,相应应用软件的出现是越早越好的,时间也是应用软件的优势之一。
2.2.地利
所谓的地利就是这个产品占有的各种各样的资源,比如说市场的资源、客户的资源以及硬件支持的资源等等。特别是对有大客户群软件的二次销售,是个很值得关注的点。
2.3.人和
这里的人和指的并不是“得道者多助,失道者寡助”,而是在整个软件生命周期里面,人的行为和方法,这也是决定软件成败的重要因素之一。
2.3.1.软件质量
要保障软件的质量,最主要的有两个方面,第一个方面软件开发的保证,第二个是软件测试的保证。
至于软件开发中如何来保证软件的可用性、稳定性、鲁棒性、可扩展性等等,在软件工程里面都有非常详细的论述,在这里就不在赘述了。
在这里要谈的就是关于软件测试的问题。目前国际上流行叫“SQO”,也就是“软件质量优化”。软件质量优化是一个非常庞大的概念,其中包括了测试管理、bug追踪,自动化功能测试、自动化性能测试、自动化性能监控等方面。要将这么庞大的一个体系建立起来不是一天两天的事情,也需要投入不少的资金,但是对于自动化功能测试来说,我觉得有必要深入讨论一下。
功能测试在软件测试中是最基本的,也是最重要的,当然工作量也是最大的,对于一次性开发的软件(也就是以后需求不会再变,软件也不再升级)来说,这种工作量还不会充分体现出来,但是这类软件非常少。当前的大部分商业化软件,软件的需求都会有变化,产品的版本也会不断更新。只要软件存在这需求的改变和版本的更新,就有一个问题,那就是功能测试中的“回归测试”。软件和其他的产品不同,修改了一个bug有可能带来很多其他的bug,开发了一个新功能有可能使得原有的一些功能出错,于是理论上来说,每次修改bug,每次添加一个新功能都要求将软件所有相关的功能重新测试一遍。但是现实之中很少这么做,因为这个工作量实在是太庞大了,更本无法开展。如果修改一个bug就测试这个bug是否还存在,加入一个功能,就测这个功能是否好用,这个明显是不够的,会给整个软件带来潜在的风险。一般公司的软件都存在这种情况,由于软件不断的更新,版本不断的替换,使得软件测试的工作量很大,经常一个版本的发行很多时间花费在测试之上,很难满足市场的去要。那么如何来解决这种矛盾呢,这里我提出的就是自动化功能测试。自动化功能测试主要的目的就是满足回归测试的需要,在第一次功能测试的时候,将所有的测试用例录制成测试脚本,到了下次需要回归测试的时候执行测试脚本,则系统自动完成所有的功能测试,这样不仅降低了人工的工作量,而且测试快速、准确,不存在人为操作失误而带来的缺陷遗漏。所以我认为,自动化功能测试工具的引入将会大大提高软件开发的效率,保证软件测试的质量和缩短软件开发的周期。
2.3.2.服务
同很多产品一样,软件产品的服务也是非常重要的,这也是衡量软件好坏的标准之一。一般的软件服务体系应该包括:
(1)       远程支持
5×8的电话支持服务,产品论坛建设等
(2)       现场支持
产品技术培训;紧急情况现场处理;产品定期巡检等
3.      综述
总之软件是一件比较特殊的商品,做好软件是非常不容易的事情,需要考虑到方方面面的因素,只有这样才能使得软件在市场上取得成功。以上纯属喝醉了瞎掰,发泄一下而已,大家看后有收获最好,没有收获一笑了之罢了!
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值