(转)软件产品化,国内IT人之痛
原文链接:http://blog.csdn.net/harrymeng/article/details/5254415
记得在网上看过一则印度软件的有趣故事,意思是先从印度6个不同城市的软件公司中选出6位软件开发人员,出一道千行程序的题目,让6位开发人员分别开发,最终拿出来的6个程序竟然完全一样;另一个测试是,将一个千行程序分成六段,让每位开发人员只开发其中指定的一段,结果6段程序合在一起就是一个完整的程序,不用做任何改动!简单太强了,阿蒙佩服得五体投地,心想如果我的开发人员也是如此,那将是多么美好的事情啊!
无论如何,这个故事至少说明印度的软件人才相当地统一化、标准化与规范化,难怪别人会成为世界软件工厂,而看看我们国内,大部分软件公司的产品/项目开发还是主要依赖于开发牛人或软件高手,始终较难摆脱作坊式的开发模式,我想,如果我们也来搞类似的测试,结果一定是乱七八糟五花八门的,印度的长处正好是我们的短处。
之所以引出这么个故事,一是无奈地自我讽刺一下,二是勉励自已乃至国内IT人当自强,努力奋斗,早日实现软件产品化,真正做到赶印超美,呵呵,总觉得好怪,为什么我们一直在追赶?当年中国经济要赶英超美,现在中国软件要赶印超美,中国足球要赶日超韩,上帝啊,求求你,让别人来追我们赶我们一次吧!
本文想说的是软件产品化。众所周知,软件产品的魅力在于一次开发多次复制,这种复制是无声无息的,基本上不花什么成本,不象硬件那样总是要有材料与生产成本,IT企业的主要利润也是来自于不断地复制产品与销售,这是相当吸引人的地方,但比较悲哀,我们现在很多人还停留在项目化定制开发模式,项目开发的目标就是以最低成本、最短时间交付客户需求,而较少去在项目的可持续发展方面进行研究和构架,完成后的项目很难产品化。做项目的成本是相当高,如果管理不当监控不好,往往会亏本,因此软件产品化是IT企业发展的关键所在,能否产品化决定着企业的日子是否好过。
那什么是软件产品化?引用网上较好的定义:“软件产品化,即客户无需为软件添加或调整代码和语句即能完成软件的安装配置、应用初始化、系统管理、用户使用的全过程,并且软件至少能满足80%以上的用户某一组应用需求。软件产品化只是完成了产品的生产环节,后面的产品销售、市场推广和售后服务都需要逐步建立完善的体系。”个人觉得,通用软件产品可以调研后直接立项并进行产品开发、推广与销售,比如金山词霸、杀毒软件、游戏软件、学习软件等等,而行业软件产品往往是由项目做起,经过多年对行业管理理念与理论、产品技术、客户数量的积累,而逐渐抽象、提炼、整合而成的行业应用软件产品,比如BI、ERP等等。
那么我们如何才能做到软件产品化呢?结合网上学习与阿蒙自身的经验认识,我想主要遵循以下的一些原则:
(1)正确的产品定位。
基本上,我们的一生都在做很多的定位,工作定位、生活定位、品牌定位、市场定位、产品定位等等。定位是对产品在未来的潜在顾客的脑海里确定一个合理的位置。“定位的基本原则不是去创造某种新奇的或与众不同的东西,而是去操纵人们心中原本的想法,去打开联想之结。定位的真谛就是“攻心为上”,消费者的心灵才是营销的终级战场。”产品的定位决定了产品后续需求管理的策略和指导思想,决定了产品营销的策略与战略。就如同我们的人生,在不同的阶段都要给自已做一个正确的定位,才不至于缺乏奋斗与前进的动力,不至于迷失方向。
(2)明确产品的亮点,并得到客户的认可。
这一点无疑是最重要最关键的,最好的亮点就是我有你无或你有我强的创新点,我们作为个体,其实也是一个产品,我们每一个人都有自已的亮点,没有亮点的人多般平庸且碌碌无为,我们都喜欢一专多能的人才,我们往往80%的时间是在使用与发挥人才的一专,产品也一样,没有亮点的产品就如同一个没有亮点的人一样平庸平淡乏味。
(3)采用可定制、可扩展的技术架构:丰富的参数设定,功能可组装。
我们是搞技术的,这一点应该很容易理解。我经常陪儿子玩积木,我觉得积木是一个非常棒的产品,我们可以根据需要拼出各种各样漂亮的成果,比如火车、轿车、高楼、别墅、木屋、长城、沙发、桌椅等等,这些不同形状不同色彩不同大小的组件,就是构成不同产品成果的可重复应用的元素,软件大部分的功能理论上也是可以分解成许多可用来组装与重用的组件,如果一个程序员第一次写增删改的数据库代码,可能他觉得很有意思并且学到了东西,但如果他写到第一千次的时候,我相信他会开始厌倦与烦燥,软件复用性是软件开发所应该追求的目标,也是软件产品化很关键的技术。
(4)简单易用,操作易懂。
这也是软件产品应该追求的目标,试想一个软件产品的使用与操作过于复杂,花了用户很多的学习时间,我想到最后没有人愿意使用这样的产品。如果你的软件能够让用户在很短的时间内就明白如何使用,那么你就已经成功了一大半了。
(5)二八原则。
二八原则是19世纪末20世纪初意大利经济学家帕累托提出的,这个原则很简单:
任何一组事物中,最重要的只占其中约20%,其余的80%虽然是多数,但是却是次要的。 比如,80%的财富掌握在20%的人手中,而剩下80%的人,只拥有那20%的财富。同样的,20%的恋情才决定了你的终身幸福,而80%的桃花,只是过眼云烟。再比如,人生中20%的时间,决定了80%的成就,而另外80%的时间,浪费在了20%的事情上。
呵呵,太有道理了,此原则应用到软件产品上一样地有道理,很悲哀地说,我们所千辛万苦开发出来的软件产品,实际上只有20%的功能是用户经常使用的,其他80%的功能是较少使用的。另外,我们的产品不可能满足所有人的需求,我们只需关注最广大的80%的用户,因为另外20%的需求很可能会使另外的80%的人产生困扰。
估计还有很多很多的原则,是阿蒙暂时还没有学习到或领悟到的,但无论如何,软件产品化应该是软件企业认真思索与谨慎执行的事情,它所带来的好处不言而喻,而且它也是行业发展的趋势,产品化是一个很诱惑的词汇,现在也开始盛行服务产品化了,我想自已需要不断地学习与成长,以至于可以跟上技术的进步与行业的发展!
(转)软件产品化,国内IT人之痛的更多相关文章
- 软件项目发展历史<人月神话>这本书好
几乎是计算机软件开发的发展历史 人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...
- Linux Mint如何安装“微信、QQ、迅雷、WPS办公软件”等国内上瘾软件
很多小伙伴都用ubuntu或者Linux Mint,但由于已经习惯了让人成瘾的国产软件,比如迅雷,qq,微信等,其实我们应该培养更为健康的上网习惯,这些软件不是非用不可,但如果你不用不行, 那么也是有 ...
- Linux安装软件时90%的人会遇到这个报错,如何解决?
提示 Could not get lock /var/lib/dpkg/lock 报错? 有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示: E: Could not ...
- 关于变量参数的传递,python让人蛋痛的地方
def find_file(file_table): with open(file_table, 'r', encoding='utf-8') as read_f: line_dict = {} fo ...
- 软件推荐-国内参数优化软件:1stOpt - First Optimizationg
首页:http://www.7d-soft.com/index.htm 4.0新功能 (预定2010年8月6日): 1:支持复数拟合.复数方程组计算: 2:支持微分方程拟合求解: 3:通用全局优化求解 ...
- IT软件外包行业深入分析:现状、前途、趋势、待遇 什么是软件外包 外包公司是怎么工作的 软件外包公司的面试 软件外包公司需要什么样的人
目录: [0] - 为什么要对大学生谈软件外包? [1] - 什么是软件外包? [2] - 软件为什么要外包? [3] - 为什么要承接软件外包 [4] - 做软件外包有前途吗? [5] - 外包公司 ...
- 第一章-第六题(帮人抢票,帮人选课这些软件是否合法 你怎么看?)--By梁旭晖
我觉得这些软件是合法的,符合道德规范的. 计算机当初设计的初衷就是简化甚至替代人类的工作.而软件作为计算机硬件的驱动着,其设计就是体现这些原则. 现在互联网上的订票,选课类型的网站还是有很多的,比如: ...
- [转]Fedora22添加国内软件源和本地软件源
Fedora22添加国内软件源和本地软件源 Linux系统和Windows系统一个很大的区别就是软件安装方式,windows系统下安软件,我们去相应的网站下载软件安装包离线安装就可以了.虽然Linux ...
- 获明略科技B+轮战略投资,思迈特软件Smartbi用强产品思维推动BI生态完善
今天,商业智能BI和大数据分析产品提供商思迈特软件(Smartbi)宣布完成亿级B+轮战略融资,本轮投资方为领先的全球企业级数据分析和组织智能服务平台提供商--明略科技. 此前,思迈特软件曾先后获得来 ...
随机推荐
- 题解 SP1841 【PPATH - Prime Path】
模拟赛考到了这个题,但我傻傻的用了\(DFS\),于是爆了零 后来才想明白,因为搜索树的分支很多,但答案的深度却又没有那么深,所以在这里\(BFS\),而\(DFS\)一路搜到底的做法则会稳稳地\(T ...
- 【新生学习】深度学习与 PyTorch 实战课程大纲
各位20级新同学好,我安排的课程没有教材,只有一些视频.论文和代码.大家可以看看大纲,感兴趣的同学参加即可.因为是第一次开课,大纲和进度会随时调整,同学们可以随时关注.初步计划每周两章,一个半月完成课 ...
- springboot+quartz以持久化的方式实现定时任务
springboot+queue以持久化的方式实现定时任务 篇幅较长,耐心的人总能得到最后的答案 小生第一次用quartz做定时任务,不足之处多多谅解. 首先 在springboot项目里做定时任务是 ...
- SpringBoot环境下使用测试类注入Mapper接口报错解决
当我们在进行开发中难免会要用到测试类,而且测试类要注入Mapper接口,如果测试运行的时候包空指针异常,看看测试类上面的注解是否用对! 正常测试我们需要用到的注解有这些: @SpringBootTes ...
- 配置mongoDB的错误
1,将启动配置到服务的时候没有反应,后来发现没有用管理员模式打开shell命令,所以没有反应. 2,用管理员模式的时候报错 格式问题,将由空格的路径用“”包住即可 3.启动的时候报错windows不能 ...
- go项目dockerfile最佳实践
1. 前言 2. 不需要cgo情况下的最佳实践 3. 依赖cgo情况下的最佳实践 1. 前言 这几天在构建golang编写的web项目中,关于dockerfile编写的一些总结 可能是单纯我比较菜(大 ...
- Python Cookbook(第3版) 中文版 pdf完整版|网盘下载内附提取码
Python Cookbook(第3版)中文版介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码 ...
- python之路第一节-pip的使用
第一次写博客,一边吃着旺仔冻痴一边学着python,爽~ 我之理解pip 首先,python封装好了大量的函数,这些函数存在各种各样的库中. 那么怎么去向我们可爱的pycharm等软件导入这些库呢,两 ...
- java.lang.ClassNotFoundException: org.apache.tomcat.util.security.Escape
tomcat-embed-jasper 依赖中不要有版本号 技术交流群: 816227112
- linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)
文件系统管理 文件系统是Linux系统存放文件的空间.文件系统的类型有很多种,CentOS支持多种文件系统,目前常用的是ext4和xfs文件系统.我们以ext4文件系统为例来说明对文件系统的管理. U ...