监管软件业


85

每隔几年就会有人对软件行业提出更严格的法规。

IEEE文章已经越来越一些注意最近关于这个问题的。

如果为为公众暴露于物质或财务风险的系统编写程序的软件工程师知道,他们的能力将受到考验,那么这种想法就可以减少代码中的缺陷和失败,并可以节省一些生命。

我对此的价值和优点表示怀疑。在我看来,这看起来像是提出该建议的人的土地争夺。

对我来说最重要的是:

该考试将测试基础知识,而不是主题知识

因为大的故障(例如THERAC-25)似乎很复杂,所以“基础知识”永远无法防止这些微妙的问题。

忽略任何本地问题(例如某些司法管辖区对标题工程师的现有保护):

这样做的目的是崇高的-避免使用庸医/俗语1,并使这种区别对购买其软件的人更为明显。加强对软件行业的监管能否实现其最初目标?

1正是按照医疗行业的规定来进行的。


3
我希望托马斯·欧文斯对此做出回应,因为我知道他有一个完美的答案。
maple_shaft

3
我想听听人们在这个话题上要说些什么,这听起来很像是我的讨论问题,非常适合Stack Exchange Q&A格式。
PersonalNexus

12
坦率地说,鉴于政府在监管技术时似乎无能为力,因此我赞成通过宪法修正案来实现技术与国家的分离(参见SOPA)
JohnFx 2012年

3
每天变化的行业如何受到监管?
乔恩·雷诺

4
这些“足够好”的情况并没有很多,这些情况以后常常会引起错误,这些错误通常是管理/营销的错误:“ SHIP SHIP SHIP!”。
阿伦(Aren)2012年

Answers:


105

关于软件工程师可以与医学专业人员或会计师归为同一类的观点,对他们试图解决的“问题”一无所知。在我对此发表意见之前,让我们先分解一下提出这项立法的监管机构副主席桑顿先生的一些论点。

桑顿说:“就像医生,会计师和护士这样的执业专业人员一样,软件工程师也应该获得许可。” “ 在选择承包商编写软件公众需要能够依靠某种凭证。”

-IEEE授权和注册副主席Mitch Thornton

表面上听起来很合理。毕竟,还有其他行业可能被认为是“成功监管”的行业。通过成功监管,我的意思是,如果您在黄页上仰望医生,则可以肯定地确定他或她已经在认可的大学接受了彻底的教育,并通过了许多考试,并且已经完成了居留权。以下是一些“成功监管”的行业(就专业人员而言)。

毕竟,您不希望任何人从胰腺中清除肿瘤或在镇外研究该核电站的离心机。为什么软件工程师不应该有类似的限制?

只有那些程序可能“危害公共健康或安全,保安,财产或经济的人,才需要进行测试”

这是一个模糊的表述,可以自由解释和应用。我可以说苹果公司或Facebook是美国经济不可分割的一部分-我现在是否需要获得政府的特别许可才能为他们编写代码,因为如果我无能为力地关闭该网站,可能会损害美国人的利益。经济?在我的上一份工作中,我不小心关闭了谷物升降机,因为它的cron工作有问题-可能危及食品供应。

我意识到我正在避免该提案的实际意图。其背后的思想是确保在您的新捷达上编写防抱死制动系统代码的人有能力并且得到适当的许可,可以为防抱死制动系统编写代码。在你的捷达上。

问题是:当今时代的软件工程涵盖了所有内容,您不可能针对所有学科进行测试。业务规则过于具体,各学科之间的差异也很大。我们的假设工程师在捷达(Jetta)上为ABS系统编写代码可能正在为伊兰特(Elantra)上的ABS系统编写完全不同的内容。他必须重新获得认证吗?

如果您对所有这些派生学科进行测试怎么办?假设一下,每个在电子商务网站上工作的程序员都被认证为具有电子商务能力的程序员。所以?这是否突然意味着这些程序员和公司实际上将必要的验证并建立PCI合规?即使他们这样做,故障仍然会发生。

IEEE许可和注册委员会副主席Mitch Thornton认为,该考试将测试基础知识,而不是主题知识。

这是踢脚线。缺乏基础知识永远不是问题。我的防抱死制动器没有停止工作,因为Chuck苦苦挣扎于控制结构的概念。他们之所以失败,是因为由于尾灯电气短路而导致ABS关闭的故障,并且电源未正确重新布线。或者其他的东西。

我写的胰岛素泵软件没有停止工作,因为我缺乏基本技能。之所以停止,是因为当我的欧洲队友使用公制但我没有使用时,我在测量胰岛素分配方面存在一个错误。

您可以在开发中考虑到这一点,但是您永远无法通过认证进行测试

如果此“证书”生效,将会发生以下情况:事件的数量将保持不变。为什么?因为它无法消除ABS或胰岛素泵故障的实际问题


33
+1个极好的答案。我特别喜欢:“缺乏基础知识永远不会成为问题。”
乔纳森·汉森

4
很好的答案,但它只从程序员的角度考虑了软件工程。实际上,真正的软件工程是团队的一项工作,涉及多个技能和学科,业务分析师,质量保证,项目管理等。事件很可能是由于编程欠佳造成的,因为它们错过了需求,被误解了需求,管理不善的项目和不正确的测试。OP的测试是否提及了其中任何内容?当然不是因为它是针对程序员的。
maple_shaft

3
我要补充一点,尽管我认为整个IEEE想法从一开始就是垃圾。政府要做的就是解决问题。让所有人对造成的任何损失负责。仅此一项就可以解决问题
乔纳森·汉森

16
反对“缺乏基础知识永远不是问题。” 实际上,这经常问题所在。新程序员(或更老的程序员)多久忽略一次输入清理?案例验证?对于物理系统,我可能会读取一个传感器。它可以打开或关闭。坏了怎么办?我的软件如何分辨?那我该怎么办?假设它是开还是关?这些类型的“基本”事物确实普遍存在争议。
sdg

3
@JonathanHenson再说一遍,我认为大多数SQL注入实例都是这样-缺乏基本知识...但是总体而言不错。+1。
杰夫·弗兰

72

多么幸运的是,没有人死于医疗法规,没有人因为金融法规而受到欺诈的伤害,没有人由于住房法规而丧失了房屋的赎回权,没有人由于理发师法规而遭受了严重的理发,也没有飞机失事多亏飞机管制。

显然,法规的存在并不意味着没有缺陷或失败。相反,缺陷或故障的存在并不意味着法规可以防止这些缺陷或故障。作为各个安全关键行业的成员,软件工程师已经受到严格的监管,在这些行业之外几乎没有需求。


10
+1表示“软件工程师已被严格监管为各自安全关键行业的成员,而在这些行业之外几乎没有需要”
Trevor Boyd Smith

3
我不喜欢这个答案的愤世嫉俗的语气。您是说无需监管,因为监管永远不会解决任何问题?
弗雷德·富

8
我的意思是说,超出一定的限度,很少有更多的法规解决更多的问题。在能够杀死人的机器上强制某些软件测试实践是有道理的。在学位课程结束时再进行一次基本技能认证考试只会增加官僚主义。
Karl Bielefeldt

2
@larsmans我同意Karl的观点,如果政府正在处理导弹或认为应该执行高标准的事务,请让他们根据选择的标准聘请自己的程序员和工程师。无论如何,私营部门不应该在公共风险上赚钱-那是法西斯主义。首先,不应允许私营企业危害公众。知道自己最需要什么的人就是冒险的人。让他们处理自己的事务。是的,我知道洛克希德·马丁公司(Lockheed-Martin)等会这样做。他们不应该被允许。
乔纳森·亨森

3
考虑到过去一年左右的时间里丢失了信用卡详细信息的大型公司的数量,我想说没有令人满意的自我监管。您可能会争辩说,这些系统不是至关重要的系统-但是在发生这些事件之后,对人们口袋的影响可能同样困难。
HorusKol

32

我认为,历史已经恰当地表明,一个优秀的工匠与一个平庸的工匠之间的区别是无法用任何形式的客观手段来检验的。基础知识并不能使优秀的程序员,智慧和经验-不能真正地客观地教授或衡量-如何应用该基础知识。

同样,这些测试通常只是一些流行语和具体程序而已,无法衡量任何实质性的内容。

如果软件行业想要发展某种形式的行会,那将是解决该问题的一种更好的方法。但是,集中化只有摧毁卓越的力量,而不能创造卓越。

此外,该措施试图防止的问题可能不会通过测试得到解决。无论如何,我也很想看看@ThomasOwens回答这个问题。

至少从美国的意识形态来看,政府的职责是使软件公司对由于软件缺陷或不安全而造成的任何财产损失负责。这将鼓励公司执行自己的标准并对此事承担个人责任。这始终是一个更好的解决方案,并且不包含中央政府超越其界限。

更新资料

昨晚我想着再喝一杯啤酒或十杯啤酒。

规范医学领域所做的一切只是消灭了除一种之外的所有范式。如果他们的目标是淘汰顺势疗法和自然疗法的医生,而手术医生则将其称为“庸医”,那么这种调节是成功的。但是,我不同意这样的事情对除立法者以外的任何人都是有利的。考虑一下这件事。它已将医疗保健成本推高到不可持续的水平,大大增加了MD的责任水平,并从市场上消除了消费者的所有选择权和自决权。医学界已经没有更多的思想市场,并且新的治疗方法和有关医学的思维方式现在被抑制了。此外,进入该领域的壁垒非常高,因此,我们缺乏良好的MD s。此外,监管机构有权控制医生的供应,以便他们可以依次控制医生的报酬价格。

我们确实从医疗法规中获得了一些收益,但是费用却太高了。

如果通过了这样的规定,软件工程师也会发生同样的事情。现在我可以看到,监管机构将裁定面向对象的编程是设计的唯一标准,并且不允许功能和程序程序员进行实践。然后,他们将开始告诉我们,由于它不安全,因此不允许我们管理自己的内存。然后他们将把JAVA和C#塞入我们所有的喉咙,并告诉我们必须使用它,而Oracle和Microsoft变得更胖,更快乐。创新将被扼杀,创造力将被取缔。微软和谷歌将制定法律,因此市场规则将倾向于自身的盈利能力和社会福祉。

另外,让我提醒大家,计算机最初是业余爱好者和学术界的努力。除了80年代和90年代初的Unix战争以外,我们还拥有免费的操作系统,免费的编译器,免费的程序等等,这些很快就会结束。Richard Stallman,Linus Torvalds和Dennis Richtie遗赠给我们的世界将逐渐消失。

总之,我是否会厌倦与“我将以每小时25美元的价格为您设计wordpress CMS网站”或“任何500美元的iPhone应用程序”竞争?不是吗,为什么?因为我擅长于自己的工作,我想要的客户愿意为卓越付出代价。当我独立或在工作场所从事项目时,我会冒着自己的头和名誉冒险的风险。无论我走到哪里,那都会跟随我。而且,大多数人都知道他们得到了所支付的东西。一个只愿意向我支付他们付给草坪人的价格的客户无论如何都要面对噩梦。如果政府确定法律结构以强迫服务提供商赔偿其损失,那么几乎没有合格的程序员仍然在该领域受雇。

顺便说一句,我们仍然有糟糕的医生,唯一的区别是,很少有力量将他们从市场上撤离。如果他们必须对自己的行为负责,那么他们将不得不倒闭,然后再有机会对客户造成无能的破坏。


8
尽管我同意您的发言的总旨,但我发现其中最有趣的部分是第一句话。您将软件开发描述为一种技巧,而这正是问题所在。一个人没有建造吊桥;一位工程师设计了一座吊桥,以确保其效力和安全性。无论您给他们什么头衔,软件工程师的行为都仍然比工程师更像工匠。
埃里克·利珀特

4
@乔纳森·亨森(Jonathan Henson):总的来说,他们当然不会。许多商店在Joel测试中得分为零。(joelonsoftware.com/articles/fog0000000043.html)至于是否应该这样做,这是商业决定,而不是道德决定。所有这些东西都花钱:很多钱。如果您正在建立飞机控制系统,从长远来看,承担这些成本是有利可图的。如果您要构建一个Facebook游戏,也许不是。
埃里克·利珀特

1
不,建筑师图章和PE图章一样好。我当然会说,就像架构师一样,我们需要纳入许多目前称为工程学科的内容。尽管仍然认为建筑是一种手工艺。无论如何,工程技术也可能是一种技巧,所以我可能只是一言不发。
乔纳森·亨森

1
@Andy,我想我们应该要求堆栈交换将该站点的标题更改为softwareengineers.stackexchange.com :)
Jonathan Henson,2012年

1
@JonathanHenson得罪了?没关系,不用担心!:)我应该更清楚地表明我发布了链接,只是因为它与您的评论很奇怪。
yannis'2

23

硅谷新闻-2015年6月31日

恐怖:未经认证的程序员使程序中止

受害者说:“我再也不能跑了。” 警方正在调查。

刑事:由于不正确使用指针并试图从系统文件读取而撤销了H. Acker Jr.博士的许可证

辩护人说,将向最高法院提出上诉。

公告:1975年通过Cobol认证的程序员应在2025年之前重新认证

此后,IEEE确认的认证没有改变。

广告:Magic Knowledge Stuffers,Inc.保证的认证

在21天的时间里教自己编程。


我正在尝试确定这是现场的完整答案还是幽默的评论。(也许两者都有?)
Lyndon White

@Oxinabox 6月31日的日期是幽默
蚊蚋

“在10天内自学编程!” 嘿嘿
BЈовић

20

有几种不同的方法可以将法规应用于任何专业-定义明确的知识体系,道德规范,教育计划的认证,证书和许可以及支持专业发展以及专业的其他方面的专业协会。职业。软件工程具有专业的大多数特征。

我喜欢从软件工程知识体系(SWEBOK)和《软件工程道德与专业实践准则》开始。尽管对它们的普遍接受仍然相当有限,但我认为它们可以作为确定将自己标识为软件工程师的事物的类型的良好基础,以及这些人应如何以专业的身份行事。这并不意味着这些是硬性规定,而是这些文档可以指导专业软件工程师确定与他们可能被要求从事的工作通常相关的内容。SWEBOK会不时进行修订,以确保与时俱进。

下一个特点是对教育计划的认可。在美国,软件工程程序的认证ABET处理。他们还认可计算机科学,信息技术,计算机工程和其他与计算相关的专业。ABET 在其网站上发布了他们对认可程序要求 -软件工程被视为工程程序。认证的目的是确保不同工程专业的毕业生之间的一致性,至少在课堂上讲授的主题方面。它没有说明教育质量。

毕业后,将使用证书和许可来根据标准知识体系评估在课堂上(有时在工作中)获得的知识。尽管获得认证的学校都有明确的教材要教,但尚无法衡量课程完成后教材的学习质量和学到了多少学生。认证和许可提供了做到这一点的方法-每个人都参加相同的考试,并证明了该专业扎根的各种知识体系中的知识。在软件工程中,IEEE提供的植根于SWEBOK的认证 - 认证软件开发面向老年人和应届毕业生的助理,以及经过认证的软件开发专业人员对于那些有行业经验的人。为了使这些增值,必须接受SWEBOK作为对软件工程的良好定义。

最后,专业协会维护该行业的指导文件,促进会议和出版物的知识和思想交流,缩小学术界和行业之间的差距,等等。两个主要的学会是IEEE计算机学会ACM,但是世界上还有其他学会。这些将所有内容打包成一个不错的小包装,并有助于将信息传递给合适的人。

从这里开始,还有其他问题要问。软件开发是否是工程学科?认证或许可会给软件工程师增加任何价值吗?认证有用吗?

我认为并非所有软件开发都需要严格的工程学科。这并不是说对建筑软件的科学和工程学进行的经验性科学研究不会对每个人都有帮助-确实可以。但是,开发最新的视频游戏,为起搏器开发嵌入式软件或建造下一个航天器之间存在很大的差异。重点在所有这些方面都不相同-三个中的两个值得熟练的工程师注意。另一个可以从工程实践中学习,但不需要依靠它们就可以成功完成项目。

认证和许可需要公认的知识体系。SWEBOK是一个很好的文档,提供了坚实的基础,但并未被广泛接受。除非您可以基于从业人员可以接受的具体内容来进行学术课程和认证/执照考试,否则真的没有意义。如果SWEBOK或替代文件被广泛接受(至少在要求严格工程的领域中),则可以使用认证或许可考试来评估对所需知识的理解。

但是,认证存在一个明显的问题-这是对一本书的测试。有些人擅长阅读,学习,记忆和参加考试。但是,这并不意味着他们是一名优秀的工程师。人们一直无时无刻不在溜溜。认证或许可证仅一步之遥。在工作中,必须由其他经验丰富的工程师进行培训和指导,以培养好的从业人员。此外,阻止人们在关键环境中练习的能力还可以帮助减轻对社会和企业的风险。

关于这一点的一本不错的书是史蒂夫·麦康奈尔(Steve McConnell)的专业软件开发:更短的时间表,更高质量的产品,更成功的项目和更丰富的职业生涯


我有点不舒服,所以如果我错过了任何东西或没有任何意义的东西,请戳我,我会解决的。多谢你们。
Thomas Owens

“没错,
三个人中的

+1感谢您添加对此事的意见。希望您能好起来。
乔纳森·亨森

12

如果政府法规获得通过,美国的软件行业将大幅收缩,因为与满足这些法规相关的成本将高于初创企业和小型企业所能承受的成本。

在我们的行业中,与法学学位或医学博士学位相关的稀缺性和成本或多或少将变得显而易见。当替代方案是每个人都可能建立下一个Facebook时,这不是很好。

人们会犯错,没有任何法规可以防止灾难的发生。考虑一下NASA,它对人类已知的软件开发具有最严格的要求。他们还有软件错误吗?(是的,很多次,是的!)

市场对这些问题的解决远胜于法规。创建导致问题的软件的公司对受伤的人员负责。我们其余的人不必为他们的错误付出代价。


8
如果这些法规生效,那么可能还没有成立的现有软件公司列表将大大补充此答案。微软和Facebook是一个良好的开端,因为认证可能会要求一个学位(如果不是以一个职业开始,几乎所有以测试开始的职业都会增加一个学位要求)。
psr 2012年

1
IMO将医生/律师与软件工程进行比较的@maple_shaft是无效的。这些字段太不同而无法比较(请参阅Jarrod Nettles的答案以了解为什么无法将软件工程与医生/律师进行比较)。
Trevor Boyd Smith

1
@maple_shaft-您的意思是该认证将提高工程质量。我很怀疑那是结果。我认为花在学习大多数测试上的时间不是花在学习更好的工程上的时间。
psr 2012年

4
我相信,每个人都在做出未经证实的假设,即授予医生和律师执照实际上会改善医生和律师的素质。我对该假设非常怀疑。许可所确保的一切就是,医生和律师可以收取高昂的费用,而且任何人都无法做些无耻的事情。在这方面,我全都为许可软件工程师服务。它不会提高软件的质量,但肯定会使我们许多软件开发人员变得富有。哈哈,当时政府逮捕了一名高中生,他们未经许可擅自使用软件。
Dunk 2012年

1
@maple_shaft完全取决于失败的性质-Facebook不响应并不重要(不影响投资者的资金)-Facebook向所有互联网用户提供您的所有个人详细信息和私人消息是另一回事。此外-带有信用卡详细信息的应用程序/游戏(例如在Facebook上)意外发布了信用卡详细信息将产生严重的影响。
HorusKol '02年

11

1999年,ACM 在很大程度上退出IEEE SWEBOK工作时发表了许可声明。在审查了公开可用的SWEBOK文档和ACM声明之后,我支持ACM的意见。

看完这篇文章,需要有4-6年经验的人参加考试,以测试基本知识。这太荒谬了,应该在门外大笑。


10

设备的软件组件是实现细节。例如,在控制系统行业中,所有安全设备以前都是硬接线的,人们并不信任软件。但是,我们现在看到了基于软件的安全设备,例如安全继电器和安全PLC。这些是允许的,因为它们仍必须满足安全设备的行业法规(取决于安全类别)。因此,在某些情况下,设备需要冗余处理器以及两个不同团队编写的冗余代码,等等。

如果要出售给公众并消费,则该产品必须符合安全准则。这些规则不会更改,因为产品包含软件。确保产品符合所有法规标准是工程师的职责,并且如果产品包含软件,则他们必须对软件进行审查并胜任该领域的工作。如果不是,则他们(或他们的公司)如果批准了设计,而事实证明是错误的,则应承担责任。

您并不需要仅仅因为某些产品需要满足更严格的要求而对所有程序员进行监管。在此类产品涉及软件的情况下,您需要一个完善的工程学科来可靠地确定软件组件是否符合要求。如果有的话,那就是IEEE的意思:软件工程这个相对年轻的领域需要发展到其他工程学科的可靠性和信任水平。

它确实与“编程”无关,而与“工程”无关。

当然,这使我们回到了开发人员与工程师之间的有争议的问题。通常,这是两个经常重叠的不同角色。开发人员部分意味着您要制作软件。该角色的工程部分意味着,如果对设计加盖印记,则您将对公共安全负责。你可以成为一个没有别人的人。


5
+1恕我直言,您真正要暗示的是法规必须在产品上,而不是工程师上。例如,火灾和入侵报警系统所需的法规(批准)确保软件能够正常工作,而不是软件编写者的能力。(许多法规看起来与系统完全由电子电路制成时非常相似。)
jwernerny 2012年


4

最好通过质量保证流程的监管来完成软件行业的监管。

这已经完成了-大型软件公司拥有大量的测试人员,QA管理人员,自动测试套件,代码审查流程,测试流程,并且不断地进行。有些公司的全部目的是对其他公司进行软件质量审核。标准组织具有质量检查和质量检查审核的指南。

在公司内部,软件工程师负责其工作质量。但是,他们的制衡是公司的质量流程。


2
这正是我的意见。航空业对编程质量控制和测试有严格的规定。公司需要审计其信息资产并实施更多的测试和审查。我认为这是软件的黑暗日子,因为许多人仍然因为不做自己认为正确的事情而偷工减料,而且开发人员本身还不足以改变行业。
Tjaart

重点-运行设备的软件与工业工程一样,对于公司进行良好和安全的工程同样重要。
Jarrod Nettles 2012年

3

与解决“软件相关问题”的大多数现代尝试相同。那些试图立法的人很少了解问题的根源。如果在开发安全关键软件时遵循规定的过程(当然是意图),那么对于飞机,医疗设备的核电站而言,一个错误永远不会导致故障。整个算法可能会错误实施,而不会损害任何算法。

FDA和FTA都需要进行风险分析,并以此为基础制定缓解策略。后者通常是瑞士奶酪策略,在这种策略中,人们接受任何缓解措施都是有缺陷的,因此对同一风险采取了多种缓解措施(一种缓解措施也可以应用于多种风险),每种缓解措施都像是一块瑞士奶酪,您可以浏览一下一个,也许两个切片放在一起,但是将足够多的切片放在一起,那就不可能了。即使缓解措施得到了完美实施,也不会导致100%安全的设备。如果风险分析不正确,则不会有人想到(Y2K)。

您可以测试工程师,甚至可以对主题进行测试,并且要求很高的水平,但这很重要。大多数安全关键错误是集成错误。它们不是一个人的代码中的错误,而是由于两个软件系统的软件和硬件之间的未对准或者是由于alpha粒子将程序计数器从其正确位置弹出而引起的。

我曾与经验丰富,能力强的开发人员一起使用过几个安全关键系统,这些开发人员将通过他们所在领域的任何明智测试。我从来没有去过一个没有发生安全关键错误的项目。(幸运的是,我从未去过该系统曾经伤害过任何人的系统)


1
+1-表示:“大多数安全关键错误是集成错误。” 实际上,在我们经过的所有过程中,几乎从来没有编码错误。99.98%的时间是不同模块和设备之间应该如何工作的理解问题。
Dunk 2012年

@Dunk谢谢,这实际上是来自Levison的qoute。我本打算在文本中包含一个事实,但似乎我忘记了:)
符文FS

2

人们永远无法完全消除沙特人和庸医,因为尽管它们已有很长的实践和传统,但它们几乎存在于每个职业中,甚至存在于医学界。

不过,就此声明而言,我是不确定的,但我不确定IT部门到底是什么可怕的霸主,以其可恶的方式描绘了他对软件开发的不受约束的控制和调节。如果您实际上是在谈论IEEE,那么它们当然具有监管方面的内容,但是符合IEEE标准的意愿或多或少是随意的,而不是出于枪口。他们正在尝试制定通用的行业标准,以使我们所有人都使用相同的语言并全面提高效率。

此外,他们制定的标准有助于使通用做法合法化,并为软件开发奠定基础,从而最终成为更具纪律性的工程领域,与机械工程或化学工程不同。尽管软件越来越接近该目标,但它可能永远不会被完全接受为工程学科。

核心问题是软件开发人员可能会做任何事情,从编写漂亮的桌面小部件到实施导弹制导系统。在一个方面,错误的严重性和后果要比另一个严重得多,因此,需要严格规范的工程学科来合理,安全和高效地进行处理。这很像错误地设计了桥并导致其崩溃的错误严重性。桥梁的设计师必须遵守我的工程标准以确保质量。


4
通常,此类法规也成为法律要求。例如,土木工程需要PE
Paul Nathan 2012年

@PaulNathan好观点,这就是为什么自然发展为普遍接受的学科的原因是自我调节(例如MPAA)并最终导致法律法规(州议会,FCC等...)
maple_shaft

7
我不认为软件开发已经准备好进行自我调节,甚至接近自我调节。坦率地说,“真正的工程师”具有“真正的素质”的想法对我来说是个玩笑。航天飞机爆炸了,火箭着火了,桥梁倒下了,建筑物倒塌了……等等。尝试从上方施加质量很不错,但是,哈哈。
保罗·内森

1
将机械工程与软件工程进行比较,使我想知道现实世界中的工程模拟对现代操作系统而言将是什么。
FrustratedWithFormsDesigner 2012年

1
@maple_shaft-核心问题将是您不能使用Linux / BSD / grep / vi / Firefox等,因为它们不是由官方SE编写的。在VB中拥有MSCE证书的人会没事的。
马丁·贝克特

1

我不会称其为更严格的监管,而是进入壁垒。在这方面,我认为是值得的。为了提高质量,这值得商de。

目前,任何John / Jane Doe都可以编写程序。没有进入障碍。拿起几本有关脚本和Web技术的书,然后开始学习,或者更糟的是,开始使用Google搜索以了解如何“做到”。

当我们作为一个整体来决定也许是时候增加准入门槛,保持行业更高的标准,从黑客/工匠到工程师的演变时,我便一直在从事这种规定。

今天有太多不合格的编程人员。无论他们是否在关键系统上工作,他们仍在生产代码,仍在生产泥浆大球

在这方面,自我调节或更恰当地为进入创造障碍是一件好事。因为我们说的是,嘿,您不能只是走在街上自称软件工程师。您实际上必须阐明一定的技能水平。

降级技巧不只是考试或获得“荣誉徽章”。测试只是一种验证。真正的验证是学校,实习,学徒制,在高年级下的指导,练习,这些都是其中的一部分。

我可以看到IEEE正在努力实现的目标,但是目前为止,这是徒劳的。行业快速变化,对将产品推向市场的需求过多,“黑客”的心态等等。法规根本必须来自内部。


我给出+1,因为应该有某种方法可以将即兴演奏排除在某些系统之外。但是,我给出-1,因为当今大多数软件都可以由黑客充分开发,并且阻止他们能够提供该服务以降低成本是违反公共利益的。同样,律师和医生也是如此。他们所做的90%的工作可以非常经济有效地处理,就像资格较低的人一样能胜任。但是,根据当今的法律,他们可以随意对公众进行制裁。
Dunk 2012年

在招聘过程中不应该评估技能。哦,等等,人力资源部根据纸质证书聘用人员(这些人员没有显示出软件开发中的适用知识),而人力资源部人员对开发软件的需求/要求一无所知。双重失败...
Evan Plaice 2012年

0

我没有读过这篇文章,但是如果问题是关于软件行业法规是否可以使人类受益,我认为这取决于具体情况:

  1. 整个行业涵盖了广泛的领域,其中一些是至关重要的领域(例如,控制医疗设备中的辐射剂量),而某些领域则不是(例如,“您是哪个木偶?” Facebook应用程序)。对于风险很低的应用程序,我看不出有任何法规要求。

  2. 一个不应该法律法规开始。相反,应该从针对开发人员的认证计划开始。当认证计划产生可衡量的收益时,才存在法律法规的问题。

  3. 即使认证计划产生可衡量的结果,但出于严格的商业原因,行业很可能会标准化要求该认证的要求,并且我们不需要法律法规。(这就是为什么存在像MCSE这样的代表团的原因-公司更愿意为受MCSE培训的领域雇用MCSE。)

  4. 综上所述,仍然存在一些在商业上引起危害的领域(通常是负面的外部性,有时是某些机构的市场力量的结果)。例如,一个地区可能只有一家当地医院;在这种情况下,后端软件的质量可以对患者所接受的护理水平产生巨大的影响,但对患者选择的医院所起的作用并没有太大的影响。这样,医院就不一定有太多的业务案例来投资更高质量的开发商。在这种情况下,可能会有公共卫生案例来规范允许医院雇用的开发商。

恕我直言。


0

我必须回答这个...

从@JonathanHenson所说的开始,到@gnat的输入开始,我说的还可以,有钱的人可以买得到认证的东西,没有钱的人或国家不能买到许可证(对于有认证的东西来说很多),因此如果实践起来,仍然会有叛徒​​。即使关闭了传统的(而不是传统的)交付方式,人们仍然会找到向感兴趣的用户交付软件的方法。即使这意味着要开发另一个HTTP协议,甚至是替代性的整个网络堆栈,也只专注于使连接不可检测(有关可能的人,请参阅最后一段)。

此外,由于世界变得越来越贫穷,因此支付某物的想法正处于危险之中,因此越来越多的人将越来越少的钱用于支付事物,甚至有些国家仅使用FOSS软件,而没有任何认证(我想到了巴西和印度,但肯定还有其他国家),其中一些国家正在变得越来越大。他们使用由未知程序员制作的未经认证的软件,这些程序员的技能未知。

同样,即使存在某种类型的认证,该认证也只会认证知识,而不是道德认证,只要认为某些医生确实使用了未经授权就从人们身上摘下来的器官,那么也会有经过认证的程序员没有道德,有意或无意地编写草率的代码。在大多数FOSS项目中,大多数潜在的技术不熟练的程序员也会审查其他人的代码,并尝试以使成对编程少的方式尝试发现错误。

最后,您怎么说的黑客组织(不是黑帽黑客组织,而是白帽或灰帽组织),他们对安全性了解更多,并且开发的安全软件只能匹配某些政府部门最专业的程序员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.