人月神话-焦油坑:编程的乐趣与苦恼

软件系统犹如一个焦油坑,在软件开发的实践过程中,只有极少数的团队能够满足项目的目标、时间进度和预算的要求。

编程的乐趣

  • 首先是一种创造事物的纯粹的快乐。像小孩儿玩泥巴时赶到愉悦的感觉是一样的。
  • 其次,快乐来自于开发对他人有用的东西。
  • 第三,开发过程中的乐趣还来自于将各种不同的模块组合到一起,然后看到他们正确的运行。
  • 第四是学习的快乐,开发过程中总会遇到各种各样的问题,在解决这些问题的过程中能够学到新知识,也可以获得丰富的实践经验。
  • 最后,程序员的乐趣还来自于创造出自己想象的事物。诗人可以运用自己丰富的想象来描述事物,程序员也可以,但与诗人不同的是,程序员可以将自己想象的事物用代码实现,因为程序是实实在在存在的。

编程的苦恼

  • 首先,必须追求完美。程序中容不得一个字符的错误,所以这是一个细致的工作。
  • 其次,程序的目标、资源和信息都有他人提供,程序员很少能控制工作环境和工作目标。用管理的术语来说,个人的权威和他所承担的责任是不相配的。
  • 第三,对其他人的依赖是一件很痛苦的事情。我们不提倡重复的造轮子,经常会把别人的程序拿来引用,但这些程序往往是不完善的,它可能没有详尽的文档,没有相应的示例,甚至还会包含错误。我们要被迫去理解他的设计思想,花时间去研究和修改它,这是非常痛苦的。
  • 第四,概念设计是有趣的,但寻找琐碎的Bug却是一项重复的劳动。伴随着创造性活动的,往往是枯燥和沉闷的劳动,编程工作也不例外。
  • 最后,当我们的程序即将开发完成的时候,发现它已经过时了。这个有点无奈,不过技术的不断革新必然会出现这种情况,但并没有想象的那么糟糕。

 

这,就是编程。一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。

你可能感兴趣的:(编程)