软件开发究竟是“难”还是“复杂”?

开发 开发工具
我一直的观点是要对“难”做一点分解。好比说航空母舰的弹射器,我们造不出来,很“难”与一台机器有一千个螺丝要拧,保证3年中所有螺丝都拧对了,很“难”,这两种场景下“难”的含义是不同的。

我一直的观点是要对“难”做一点分解。

好比说航空母舰的弹射器,我们造不出来,很“难”与一台机器有一千个螺丝要拧,保证3年中所有螺丝都拧对了,很“难”,这两种场景下“难”的含义是不同的。

 

软件开发的难度更多的类似于后者,表现为繁杂,而不是类似于前者表现为“搞不定”或“做不出来”。

总是有人喜欢把问题绝对化,所以这里补充一句,软件涵盖的范畴可以很广,因此确实有很难搞定的,类似于弹射器的领域,但应该不是主流。

 

以前的很多提法,在这样一种大前提下就变的没有什么意义了,比如说:国产操作系统。

当很多公司或组织标榜这类事情的时候,似乎自己更愿意认为这是一种技术突破。

但实际上在开源如此发达的今天,这类东西的开发更需要的是组织和市场运作,而非是突破技术屏障。

 

由这一点可以推导出一个很有趣的结论:

既然不体现为一种“搞不定”或“做不出来”式的难度,那么一帮智商水平并不是非常高的人(或者说并不绝对优秀的人),

老老实实把代码评审,静态测试,单元测试这些环节做好,一样能做出不错的产品(当然很那辉煌灿烂)。

反过来讲就是,在大多数产品开发中,天才是有帮助的,但不是绝对必要的。

 

这点与这样一个事实相符:软件开发的队伍似乎更加杂牌,什么专业的都有。

这事儿逆转过来就不成立。

一个人可以以前是做涡轮机的,中途能够转行做软件开发。

但做了软件开发的,就很难去做涡轮机。

 

如果进一步推导,就会发现这一点对考虑个人成长也很有意义。

单反类相机,镜头很难搞,所以介入壁垒比较高,最终导致做单反的就比较赚钱。

电视机这东西,大家都能做,所以介入壁垒比较低,最终导致当初很牛的一些做电视的公司都亏损。

 

软件开发中,如果“只有你能搞定,别人不太容易搞定”的事情比较少,那么人员的可替换性就强,

稀缺性就不好,从价值上来看,就不太容易保值。

 

反过来讲,就是每个人如果想保持一种长久的价值,都要找到属于自己的一块“价值高地”。

 

软件可以依附到很多东西上,比如金融,财务,电商等等。因此“价值高地”还是有一些的。

 

可以是某个公司独有的东西,可以是某些专业知识(如:财务等),诸如此类。

原文链接:http://www.cnblogs.com/daoshi/archive/2012/08/20/2646977.html

【编辑推荐】

  1. ASP.NET在线文件管理模块的设计与开发
  2. 软件开发究竟是“难”还是“复杂”?
  3. 软件定义网络与ADC的交集是什么?
  4. 值得开发者关注的5个新兴智能平台
  5. Ubuntu用户的福音:基于Java开发的开源QQ客户端iQQ

 

责任编辑:林师授 来源: 博客园
相关推荐

2011-02-28 09:51:43

内省

2018-07-05 16:15:26

缓存数据cache miss

2016-11-01 15:16:52

QQ状态即时通讯

2010-06-28 14:47:45

云计算

2009-05-06 16:10:17

Java传值引用

2019-10-21 13:58:22

爬虫互联网程序员

2021-01-05 09:23:49

网页端消息

2011-02-16 16:13:40

Debian

2020-05-06 18:32:37

人工智能AI制药

2020-05-07 10:53:04

人工智能技术开发

2019-02-14 10:10:11

系统厂商芯片

2019-04-26 13:55:02

Istio微服务架构

2019-06-04 14:15:08

JavaScript V8前端

2010-08-24 09:19:59

2019-07-22 15:29:53

JavaScriptGitHub语言

2020-12-22 21:24:45

在线状态服务端状态状态同步

2018-05-30 15:29:56

2017-08-16 09:13:27

2020-06-11 09:18:34

动静分离架构架构设计开发

2017-01-17 14:42:21

Ceph云计算存储
点赞
收藏

51CTO技术栈公众号