制造软件开发:更大并不总是更好

制造和IT洞察力:软件开发项目中代码行数多并不意味着项目就会成功;有效的软件开发不仅仅是一个复杂的编程包。没有为合适的人进行适当编程培训的软件工具只会给每个人带来很大的麻烦。

通过丹尼斯Brandl 2016年4月7日

参加专业组织的众多优势之一是有机会了解成功和不成功的自动化编程项目。最近的一个项目证明了一句老话:“越大并不总是越好。”虽然对银行账户和甜点来说更大可能更好,但在应用于编程、系统设计和控制设计时,它肯定不是更好的。软件程序中代码行数多并不一定等于软件质量好。

代码行数更少

该项目涉及修复由公司控制工程师构建的定制报告包。问题是这位工程师不是程序员,而且从未接受过任何软件设计、软件工程或编程方面的正式培训。

没有软件开发的既定程序,也没有设计审查的政策。结果是一种蛮力方法,它为每个特定的月份和年份使用单独的函数,并且有过多的代码重复。开发的软件没有文档。代码中没有注释,任何函数上都没有头描述。一旦到达未编程的日期,报告就失败了,没有人记得软件是如何工作的。完全的重新设计和重写解决了这个问题,并将代码行数从近10,000行减少到不到200行,并消除了100多个不必要的功能。

从这个例子中应该学到的教训是,开发软件需要一个更好的过程。没有人会想到,给一个化学或电气工程师一个3D建模工具,会让他具备成为汽车设计师和开发新汽车设计所需的技能。然而,太多的经理和工程师认为给化学、电气或机械工程师一个编程工具就能使他们有资格开发专业软件。有效的软件开发不仅仅是一个复杂的编程包。未经训练的工具只是工程师的玩具。使用没有有效政策和程序的工具只是爱好。

要记住的一个关键点是,软件的无效设计和开发是人的问题,而不是技术问题。改进技术使我们能够更快地构建软件,但这并不一定意味着更好。如果没有培训、底层解决方案空间的知识和一定的经验,技术工具往往是浪费的。

软件开发的四个经验教训

在开发安全的、可支持的、健壮的制造软件时,应该学到的关键经验是:1)在生产解决方案中使用新工具之前,提供关于新工具的重点培训,或提供实验和学习环境的时间;2)制定全面的政策,在所有软件设计提交代码之前对其进行审查;3)编写如何进行设计评审的程序;而且4)为如何进行代码审查编写有效的程序。设计评审程序的目的是发现无效的算法,而不是评判设计者。在他的书中创造力,Inc。皮克斯动画总裁Ed Catmull讨论了创意过程以及它是如何迭代的,我们的第一次、第二次甚至后来的尝试往往是在错误的方向上。独立的观点往往能指出我们看不到的缺陷。代码审查的目的是识别最佳实践实现的弱点。代码作者,就像书籍、剧本和行业杂志专栏的作者一样,需要编辑来检查和纠正作者看不到的错误。

开发安全可靠的制造软件,特别是任何控制系统软件,都要求在培训、策略、过程和工具方面具有高度的成熟度。当与优秀的工程师结合在一起时,这些将为构建未来的成功提供成功的组合。

丹尼斯Brandl他是北卡罗来纳州卡里市BR&L咨询公司的总裁,网址是www.brlconsulting.com。他的公司专注于IT制造业。与他联络:dbrandl@brlconsulting.com.由制作编辑克里斯·瓦夫拉编辑,控制工程, CFE传媒,cvavra@cfemedia.com

更多的建议

关键概念

建立程序用于软件开发,并为设计评审创建策略。

无效的软件设计不是技术问题;这是人的问题。

成熟的政策强大的培训计划对于开发安全可靠的制造软件至关重要。

考虑一下这个

哪些最佳实践公司是否可以利用培训政策来减少潜在的软件开发错误?

在线额外

参见下面链接的Brandl的其他制造IT文章和其他故事。