首 页 大赛动态 散 文 摄 影 诗 歌 美 术 视 频 网友热评 在线投票
  首页 >> “长城杯”2012中国航天网络文化艺术大赛 >> 散文  
 
软件开发的苦与乐
来源:中国航天网 发布时间:2012年06月01日
  经常有人会问我,软件开发为什么有趣?我想,最直接的乐趣是一种创造事物的纯粹快乐,而这种快乐同时也来自于自己的工作能对其他人有所帮助。软件开发不仅满足了我们内心深处进行创造的渴望,而且还愉悦了每个参与其中的人内在的情感。我们在内心深处期望其他人愿意使用我们的劳动成果,并能对他们有所帮助。从这个角度而言,这种快乐在小时候用粘土为“爸爸的办公室”捏制文具盒时就已有所体现。

  软件开发的乐趣也在于软件开发的整个过程能体现出魔术般的力量,就像是将相互啮合的零部件组装在一起,看到它们精妙地运行,得到预先所希望的结果。编程人员,就像诗人一样,凭借自己的想象和创造力,模拟、抽象各种可能的运行情况,来建造自己的“沙滩城堡”。然而我们在航天的工程实践中所开发的各种嵌入式软件毕竟同诗歌不同,它是实实在在的东西;可以让装置调转、导弹发射,能独立产生可见的输出;能在计算机的屏幕打印运行结果,绘制图形,甚至发出声音。像西游记似的神话传说中的魔法在我们的时代很多已变成了现实。在键盘上键入正确的咒语,装备动作、屏幕变幻。

  另外,这项工作的非重复特性还产生了不断学习的乐趣。每次开发过程中,人们总是会不断面对新的问题,要么在某个设计思路,要么在其它方面,总是有些不同。因而,解决问题的人可以从每一次开发过程中不断学习新的事物:有时是实践上的,有时是理论上的,或者兼而有之。

  然而这个过程并不全都是喜悦。当它们真的出现时,我们需要理性而坦然地面对。

  首先,软件开发的过程必然是追求完美的过程。因为计算机是以这样的方式来变戏法:如果咒语中的一个字符、一个停顿,没有与正确的形式一致,魔法就不会出现。(现实中,很少的人类活动要求完美。)事实上,我认为工作中最困难的部分,就是将自己的工作目标不断向趋于完美的方向调整。我所经历的很多事情告诉我,如果不能预先把可能出现的问题解决掉或进行调优,那么它们早晚就会从某个场景中蹦出来现身,对你进行骚扰和折磨。尤其是像航天这样的大型工程中,细小的差池往往会带来灾难性的后果。所以在软件开发的过程中必须绞尽脑汁,严、慎、细、实。

  其次,开发任务往往不是由开发人员自己来设定的,他们很少自己能控制工作环境和工作目标。开发人员依赖其他人提供的资源和信息。在工作中,对其他人的依赖是一件非常痛苦的事情。用管理学术语来说,个人的权威和他所承担的责任是不匹配的。比如,对于开发人员而言,他依赖任务提出方提出的需求,而这些需求经常不能一次发布完整(需要后续不断补充和完善),或者文档记录得很糟,或者在现有的条件下难以实现。所以,开发人员还不得不花费大量时间去研究和修改,而它们在理想情况下本应该是可靠完整的。因此,开发人员所面临的挑战是在有限的时间和资源内,寻找解决问题的方案。

  软件开发的另一个烦恼是寻找琐碎的bug,这是一项实实在在的重复性工作。世界总是充满了辨证,伴随着创造性活动的,往往是枯燥沉闷的时间和艰苦的劳动。软件开发也不例外。不仅如此,人们发现调试和查错往往具有二次方的复杂度。结果,寻找最后一个错误比第一个错误将花费更多的时间。

  这就是软件开发。一种乐趣和苦恼共存的创造性活动。对于许多人而言,其中的乐趣远大于苦恼。因为,无论如何困难,思想的火焰,理想的光芒,奋斗的炙热,永远是使人快乐的。

  (作者:尚焜)
打印 关闭窗口
 
 
 
制作单位:中国航天报社  地址:北京市海淀区阜成路8号  邮编:100830