我不是一个工程师 – 我是一个软件开发者

在《Object-Oriented Software Development Using Java》这本书的导言部分,8-9页上的“软件开发过程是工程化的过程吗?”一节中,Xiaoping Jia写道:

… 对于“软件工程”这个词的精确定义仍然没有多少共识,就连使用“软件工程师”作为一个专业职称的正当性也受到质疑…

工程(engineering)和工艺(craftsmanship)之间的一个关键区别就是,工程的成功可以通过事前对设计的科学分析而得到保证,而工艺的成功却是通过当前的和之前的制作上的试验和失误获得的…

在某些非常成熟的工程化领域里,失败、有时甚至是灾难难以杜绝…但相同的失败却很少会重复发生…而对于软件开发,相同类型的失败比比皆是。

成熟的工程化领域里的成功很大的原因在于对知识的规范和积累,重复利用以前的解决方案…对于软件开发,尽管有积累的大量的经验和设计技术,却很少有被系统化的整理过的…

所以,软件开发是一项跟传统的工程方法有很大的不同的活动。充其量也只是一个不成熟的工程学科。软件开发如果想成为真正的工程方法,软件开发人员必须要机械的去执行设计分析,确保已知的失误不会重现,把设计知识系统化。

我不是一个工程师。我是一个软件开发者。在跟一个是工程师的朋友交谈中,我问他觉得我和他的工程作业上最大的不同是什么。他没有想太久。“我的产品都是大规模生产的。”

我是一个软件开发者。在我的想象里,就像Jia指出的,我们更接近是手艺人,而不是工程师。但我所说的“手艺”跟Jia说的有很大的不同,我所指的不仅仅是开发过程和工程过程之间的交集,更指的是让软件成为工艺品的工艺流程方法。

我既不是一个计算机科学家,也不是一个业余人士,既不是一个专家,也不是一个新手。我处在中间,我靠写代码为生。

[英文原文:I am not an engineer - I’m a software developer ]
分享这篇文章:

9 Responses to 我不是一个工程师 – 我是一个软件开发者

  1. bzhao says:

    I am a software developer too

  2. 宇蠢 says:

    I am a software developer three

  3. johnny says:

    I am a software developer four

  4. zanglei says:

    I am a software developer five.

  5. xt says:

    I ‘m porting firmware for PCs, which are used by many people, so I’m an engineer !?

  6. 残影 says:

    工程师设计,制作,测试,然后投入生产(详细的步骤我不知道……)
    软件开发者只需要生产一个然后拷贝就相当于大规模生产 😛

  7. stranger says:

    I am a software developer six.

  8. Techni says:

    I am a software developer sex!

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据