将工程重新投入软件工程

一个不太简单的问题

尊敬的软件制造商,

我们是什么?

我们是黑客吗? 用理查德·斯托曼(Richard Stallman)的话说 ,他们本着嬉戏的聪明精神探索“可能的极限”吗?

用软件技巧宣言的话说,我们是手工艺人,“正在通过实践和帮助其他人学习工艺来提高专业软件开发的标准吗?”

我们是忍者吉迪斯 ,上师还是摇滚明星

刻板印象和漫画

就个人而言,我将不需要任何这些称号,而且令我感到困扰的是,任何人都想用摇滚明星之类的词来美化我们的工作 我当然看不到我在这里工作的任何人穿着皮裤并将他们的臀部推向尖叫的观众(我也不想!)。

我有点喜欢长大的漫画,就像一个脚的,胡须的,马尾辫的地牢大师,类似于《辛普森一家 》中的漫画人》,但我周围都不是。 这是一种刻板印象,可能是一个古老的刻板印象,它可能永远也无法反映出事实。

那么,什么定义了软件制造者呢?

做而不是做

我的经验是,软件创造者的最典型特征是我们是要解决实际问题的行为者。 当没有螺栓要转动时,为什么要创建扳手? 如果结果不能使某人的生活更好,为什么还要组装螺栓,支架和其他零件?

实际的结果,这就是我们所追求的。

每天上班,我都想编写具有结果的代码。 它可能正在计算统计数据,传递消息,预定行程,支付账单或一百万种事物中的任何一种。 但是,构建软件的本质(目的,动机,核心)在于最终目标。 没有最终结果,制作软件的活动将失去任何意义。 这将是世界上最令人不满意的经历。

如果我们是“工程师”怎么办?

我认为,这就是工程师的定义 杜克大学(Duke University)土木工程学教授亨利·彼得斯基(Henry Petroski)表示:“科学就是了解,工程就是要做。” 通过软件工程师对心脏和血液的输送,还有什么比这更好的描述?

做事是工程师。

科学就是了解,工程就是要做。 〜亨利·彼得罗斯基

工程师是行动者,有警告

工程师是行动者,但有重要区别。 我们不是设计师,也不是疯狂的科学家。 例如,我们不是《 返璞归真》(Back to the Future )上的骗子科学家Doc布朗,他总是在时空上徘徊。

将工程重新投入软件工程

正如Doc Brown所看到的那样有趣,我们不想被称为危险人物。

但是,要从软件获得真实世界的结果,我们确实必须了解一些有关真实世界的知识,并且这也已嵌入到工程思想中。 通常,要完成某项任务,我们需要知道的是如果已经应用的知识。

换句话说,获得结果的最快,最好的方法就是将其中的内容付诸实践。

怎么回事

反面也是如此。 忽视现有知识通常会导致灾难。 一栋没有完善工程实践的建筑倒塌了。

因此,当我们处理摆在面前的问题时,我们随时可能泛滥成千上万个现实世界的考量,从而有可能使我们的努力脱轨。 我们唯一的安慰是,我们会意识到它们并减轻其影响。

以一个正常的日常业务为例:在一天的凌晨5点至晚上7点之间,整理一些网站访问统计信息。 为了首先选择正确的数据,我们必须了解数据库使用哪个时区( UTC )和时间格式( ISO-8601 )。

即使到那时,我们的努力也可能完全受到简单监督的阻碍。 尽管数据库中的时间以UTC为单位,但是“高峰时间”是在太平洋时间发生的,这意味着它们会根据夏令时与否而有所不同。 观察太平洋标准时间时,高峰时间落在UTC的一个范围内(下午12点至凌晨2点),而观察太平洋标准时间时则高峰时段落在另一个范围(下午1点至凌晨3点)。 如果我们想正确的话,我们需要考虑到有关日期实际上在哪个时区有效。

因此,了解已收集的关于现实世界的知识体系,然后通过软件进行应用,对于使用软件执行任何操作至关重要。 这就是为什么我现在对程序员有一个强烈的提示:

将工程重新投入软件工程

我的意思是:熟悉会影响您的特定软件领域的任何科学或数学。 不只是计算机科学! 了解任何相关的统计数据,物理学,生物学,气象学,化学,地质学或心理学。 将参考资料放在手边。 不要做任何假设,也不要在已有好的道路的情况下开拓自己的道路。

知道并遵守标准。 寻求尝试和真实。 物理学家和数学家弗里曼·戴森(Freeman Dyson)曾经说过:

一个好的科学家是一个有独到见解的人。 优秀的工程师是指设计时所用的创意尽可能少的人。
将工程重新投入软件工程

这两个指导原则是:了解公认的科学,并尽可能地应用已经存在的稳定解决方案,这将使我们为世界做更多的事情。

From: https://hackernoon.com/put-the-engineering-back-in-software-engineering-8aff78bc88e3

相关文章:

  • 2021-12-21
  • 2021-12-23
  • 2022-01-18
  • 2021-08-17
  • 2021-04-11
  • 2021-05-28
  • 2021-06-30
  • 2021-05-19
猜你喜欢
  • 2021-06-11
  • 2021-09-21
  • 2021-12-03
  • 2022-01-12
  • 2021-09-19
  • 2021-11-22
相关资源
相似解决方案