我不是一个工程师——我是一个软件开发者-阿里云开发者社区

开发者社区> 狼人2007> 正文

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

简介: 导读:本文是从《I am not an engineer - I’m a software developer》这篇文章翻译而来。译文来自外刊IT评论《我不是一个工程师——我是一个软件开发者》。 内容如下: 在《Object-Oriented Software Development Using J...
+关注继续查看

导读:本文是从《I am not an engineer - I’m a software developer》这篇文章翻译而来。译文来自外刊IT评论《我不是一个工程师——我是一个软件开发者》。

内容如下:

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

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

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

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

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

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

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

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

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

译文出自:外刊IT评论

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9950 0
【工业串口和网络软件通讯平台(SuperIO)教程】六.二次开发导出数据驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    导出数据接口的作用       在数据集成系统项目中,要么是自已集成其他厂家的设备,要么是其他厂家集成自己家的设备,在没有统一的标准前提下,就会有各种集成数据的格式。
585 0
我不是一个工程师——我是一个软件开发者
导读:本文是从《I am not an engineer - I’m a software developer》这篇文章翻译而来。译文来自外刊IT评论《我不是一个工程师——我是一个软件开发者》。 内容如下: 在《Object-Oriented Software Development Using J...
861 0
《软件工艺师:专业、务实、自豪》一2.1 面向流程的敏捷软件开发原则
本节书摘来华章计算机《软件工艺师:专业、务实、自豪》一书中的第2章 ,第2.1节,[英]桑德罗·曼卡索(Sandro Mancuso)著 爱飞翔 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
849 0
《软件工程(第4版?修订版)》—第1章1.11节本章对单个开发人员的意义
本章介绍了许多概念,它们对于优秀的软件工程研究和实践来说都很重要。单个的软件开发人员可以通过下面的方法使用这些概念。
1308 0
《软件工程方法与实践》—— 1.5 软件工程开发方法学
在软件工程学科中,方法学用来表示一套涵盖整个软件生产过程的技术的集合。目前使用得较广泛的软件工程开发方法学,分别是结构化开发方法学和面向对象开发方法学。
1894 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13697 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11867 0
【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录。开发包文件包括如下图:   SuperIO.dll是软件平台的核心模块, SuperIO目录是软件平台的参数配制、数据存储的目录。
671 0
+关注
狼人2007
个人对技术的追求:代码少而精捍;思路清晰美观;可扩展好维护;技术驱动商业; 人生格言:只要你有信念,有追求,并且坚持,那你一定比随波逐流,行得远行得正...
3528
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载