软件开发究竟是“难”还是“复杂”?
2012-08-20 06:36
302 查看
我一直的观点是要对“难”做一点分解。
好比说航空母舰的弹射器,我们造不出来,很“难”与一台机器有一千个螺丝要拧,保证3年中所有螺丝都拧对了,很“难”,
这两种场景下“难”的含义是不同的。
软件开发的难度更多的类似于后者,表现为繁杂,而不是类似于前者表现为“搞不定”或“做不出来”。
总是有人喜欢把问题绝对化,所以这里补充一句,软件涵盖的范畴可以很广,因此确实有很难搞定的,类似于弹射器的领域,但应该不是主流。
以前的很多提法,在这样一种大前提下就变的没有什么意义了,比如说:国产操作系统。
当很多公司或组织标榜这类事情的时候,似乎自己更愿意认为这是一种技术突破。
但实际上在开源如此发达的今天,这类东西的开发更需要的是组织和市场运作,而非是突破技术屏障。
由这一点可以推导出一个很有趣的结论:
既然不体现为一种“搞不定”或“做不出来”式的难度,那么一帮智商水平并不是非常高的人(或者说并不绝对优秀的人),
老老实实把代码评审,静态测试,单元测试这些环节做好,一样能做出不错的产品(当然很那辉煌灿烂)。
反过来讲就是,在大多数产品开发中,天才是有帮助的,但不是绝对必要的。
这点与这样一个事实相符:软件开发的队伍似乎更加杂牌,什么专业的都有。
这事儿逆转过来就不成立。
一个人可以以前是做涡轮机的,中途能够转行做软件开发。
但做了软件开发的,就很难去做涡轮机。
如果进一步推导,就会发现这一点对考虑个人成长也很有意义。
单反类相机,镜头很难搞,所以介入壁垒比较高,最终导致做单反的就比较赚钱。
电视机这东西,大家都能做,所以介入壁垒比较低,最终导致当初很牛的一些做电视的公司都亏损。
软件开发中,如果“只有你能搞定,别人不太容易搞定”的事情比较少,那么人员的可替换性就强,
稀缺性就不好,从价值上来看,就不太容易保值。
反过来讲,就是每个人如果想保持一种长久的价值,都要找到属于自己的一块“价值高地”。
软件可以依附到很多东西上,比如金融,财务,电商等等。因此“价值高地”还是有一些的。
可以是某个公司独有的东西,可以是某些专业知识(如:财务等),诸如此类。
--------------------------------------------------------------
理想流 + 软件 = 《完美软件开发:方法与逻辑》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和逻辑推演本质,追求真理。
好比说航空母舰的弹射器,我们造不出来,很“难”与一台机器有一千个螺丝要拧,保证3年中所有螺丝都拧对了,很“难”,
这两种场景下“难”的含义是不同的。
软件开发的难度更多的类似于后者,表现为繁杂,而不是类似于前者表现为“搞不定”或“做不出来”。
总是有人喜欢把问题绝对化,所以这里补充一句,软件涵盖的范畴可以很广,因此确实有很难搞定的,类似于弹射器的领域,但应该不是主流。
以前的很多提法,在这样一种大前提下就变的没有什么意义了,比如说:国产操作系统。
当很多公司或组织标榜这类事情的时候,似乎自己更愿意认为这是一种技术突破。
但实际上在开源如此发达的今天,这类东西的开发更需要的是组织和市场运作,而非是突破技术屏障。
由这一点可以推导出一个很有趣的结论:
既然不体现为一种“搞不定”或“做不出来”式的难度,那么一帮智商水平并不是非常高的人(或者说并不绝对优秀的人),
老老实实把代码评审,静态测试,单元测试这些环节做好,一样能做出不错的产品(当然很那辉煌灿烂)。
反过来讲就是,在大多数产品开发中,天才是有帮助的,但不是绝对必要的。
这点与这样一个事实相符:软件开发的队伍似乎更加杂牌,什么专业的都有。
这事儿逆转过来就不成立。
一个人可以以前是做涡轮机的,中途能够转行做软件开发。
但做了软件开发的,就很难去做涡轮机。
如果进一步推导,就会发现这一点对考虑个人成长也很有意义。
单反类相机,镜头很难搞,所以介入壁垒比较高,最终导致做单反的就比较赚钱。
电视机这东西,大家都能做,所以介入壁垒比较低,最终导致当初很牛的一些做电视的公司都亏损。
软件开发中,如果“只有你能搞定,别人不太容易搞定”的事情比较少,那么人员的可替换性就强,
稀缺性就不好,从价值上来看,就不太容易保值。
反过来讲,就是每个人如果想保持一种长久的价值,都要找到属于自己的一块“价值高地”。
软件可以依附到很多东西上,比如金融,财务,电商等等。因此“价值高地”还是有一些的。
可以是某个公司独有的东西,可以是某些专业知识(如:财务等),诸如此类。
--------------------------------------------------------------
理想流 + 软件 = 《完美软件开发:方法与逻辑》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和逻辑推演本质,追求真理。
相关文章推荐
- 软件开发究竟是“难”还是“复杂”?
- 【理想流】软件开发究竟是简单的还是复杂的
- 软件开发究竟是简单的还是复杂的
- 软件开发简单还是复杂?
- 大规模复杂的软件开发还是深蓝深蓝的海洋
- epiinfo是美国CDC开发维护的流行病学数据录入和分析软件,在DOS时代占主流,随着Windows的普及用的人越来越少了,epiinfo重新开发Windows版本后,体积庞大且不好用。在数据录入方面已被EpiData取代,不过epiinfo的分析模块,比如地理信息系统某些情况下还是挺有用的。
- ERP,自主开发还是选择套装软件
- 自己开发,还是找软件公司?
- wtp 还是 myeclipse 安慰我过时开发软件环境
- 软件开发管理重要?还是干活重要?
- 软件开发复杂度分析
- Windows内核开发中如何区分文件对象究竟是文件还是文件夹?(FILE_OBJECT包括了无数详细信息)
- 软件开发需求分析究竟应该由谁来做
- 学软件开发几年,自己最感兴趣的一点就还是.net 的 现在工作大多用asp 找个老师指点迷津……
- 虽然本人不是什么成功人事,还是想给辛苦埋头开发软件的兄弟姐妹们一点儿建议《IT软件开发人员发展规划》参考
- 学软件开发.Net专业是考研好呢还是直接工作呢?
- 软件开发,该用二层还是三层呢?
- MDA:一场软件开发方式的革命,还是Case Tools老瓶中装的新醋?
- 自然系统是分层的,软件项目的设计需要减少层的相干性来推动工作的规划。微软的开发平台还是做得不完善,至少aspx界面需要浪费大量的沟通才能设计好。
- 软件系统的开发是难还是繁杂?