2007年5月18日星期五

软件开发技术和软件工程

今天看到了一篇文章,介绍C/C++异常处理机制的缺点;其中提到了"软件开发技术"和"软件工程". 我想把这这两个概念放在一起比较非常有意思.
我经常看到一些同事或朋友为自己的会了一个技术津津乐道,比如可以用了一种很巧妙的办法把一个功能完成.或者在讨论一个项目时,不厌其烦的讲解着所谓的技术有多么多么高深. 其实这些所谓的"高深"技术,已经是前辈门研究出来的成果,已经告诉了我们这个技术的实现方式,和一个功能的完成办法.这样的技术,我们要做的事情无非是看文档资料,设计成计算机程序而已.
我的意见是,这样的技术当然要掌握,但是为一个技术而沉迷,不能跳出技术的圈子看整个项目,是很遗憾的.一个项目最终的成败,大部分情况不是技术决定的,而是项目管理\项目流程决定的.一个技术人员在成长过程中,不仅需要关注技术,还需要关注项目.
软件工程追求的是项目的可靠性\可维护性,和开发的可控性; 软件技术追求的是更好的编程方式\更高的软件性能和可维护性. 所以,仅关注软件开发技术,有可能在项目中和软件工程是有冲突的,因为两者的焦点并不一致.
总的来说,我人为一个程序员,一定要有软件工程的概念.

没有评论: