软件开发人员的“七重苦”(1)

软件开发这个行业无疑的是有快乐的,但这篇文章里,我们先不关注他,而是要来看看那些让人痛苦的地方。

有时候想想,人作为一种生物还是挺有意思的。

快乐的东西快乐过了,也就忘了,记的牢的的反倒是些让人不快乐的东西。

 

  • 第一重:垃圾代码

佛家总讲成住坏空,软件亦莫能外。

唯一有点特别的是,软件“住”的阶段短,“坏”的阶段来的快。

要想软件保持不“腐败”,其实要花的精力远比想的多,这导致在商业利益比较强势的世界里,大多时候有的只是“能用就行”的软件,而不是“好”的软件。

“能用就行”的软件里,大多时候到处都是垃圾代码。

如果说超过100行的方法/函数让人痛苦的话,那么时有出现的超过200行的方法/函数就是让人绝望了。

不改不行,改了不知道对错,一旦错了很可能被抱怨。这就是垃圾代码带来的痛苦。

软件行业已经存在超过30几年了,现存的软件很多。所以软件开发人员遇上垃圾代码的可能性绝对高于50%

 

开源的世界要好很多,只可惜很多时候开源和饭碗的关联有点艰难。

 

  •  第二重:莫名其妙的加班

很多日程是把程序员的工作时间作为变量的。

简单来讲就是,要完成的工作是不确定的,但日程是确定的。

这样一来,软件开发人员必须加班。

但关键是一个人每天能写的既定质量水平的代码大概就那么多,一旦逼急了,只能放水,少想多做,进而贡献更多的垃圾代码。

因此说,这类加班很莫名其妙:目的可能是节约成本,缩短工期,但实际上垃圾代码一出,大多时候是适得其反。

可以10人月做完的项目,只计划投入5个人月,最终投入了15个人月的例子其实不少。

项目越复杂,越容易出现这种情况。

 

  • 第三重:需求变化下的无用功

没什么比,费了很大力气完成一项功能,结果收到的反馈是“这不是我们想要的”或“这个功能不需要了”更让人泄气了。

需求变化是正常的,迭代也是正常的,可无用功太多一定是不正常的。

但软件这个行业中,这事似乎没法根绝。

这也许根本就不是个技术问题,或者说不只是技术问题。

人有偏好,偏好在变化。世界有走势,走势在变化。这些都会传导到软件里来,进而使无用功成为一种宿命。

  • 第四重:选择太多

在很多工程领域里,确定性的东西比较多。但软件开发里恰恰相反,确定性较少,选择太多。

这也许是好事,但有的时候确实也让人痛苦。

假设说,我们要从头开发一款软件,那么至少要做这些选择:

  • 用什么语言?这好像很简单,但如果真要很理智的去分析和选择,其实很难,C++C#Java那个没有自己的优势呢。
  • 用什么框架?选新技术,可能支持不到位,也可能很快被淘汰;选老技术,可能会有些已知的限制。
  • 是买还是自己造?买的话省时间,但一旦出问题,很可能导致项目卡壳。自己造的话,有可能时间上来不及。
  •  ... ...

每次面临这类问题时,都让人感觉,世界很大,自己不过是一只小小鸟。

其实选择让人难受的主要原因是自身知识与未知世界间的矛盾,但软件的世界真的很大,一个人要想了解所有事情完全不可能。

所以痛苦的选择题就总在那里,不管你爱或不爱。

软件开发人员的“七重苦”(2)

--------------------------------------------------------------

 

理想流 + 软件 = 《完美软件开发:方法与逻辑》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和逻辑推演本质,追求真理。

posted on 2012-02-06 00:10  理想流  阅读(2641)  评论(14编辑  收藏  举报