现实世界的基础设施的构建有很大的不同呢?

以下为译文:

最近,我一直想知道为什么大多数公司认为构建软件的过程与构建现实世界的基础设施有如此不同?

我想谈谈我们如何必须像构建现实世界的基础设施一样重视构建软件。 每当我和其他人谈论这个问题时,我们都会感到震惊,为什么我们作为软件开发人员不能认真对待我们的工作呢?

需要

首先让我们从处理软件开发的需求开始:

软件开发

在过去十年的软件开发中,我见过很多收集需求的方法。 大多数人并不认真对待这项工作,他们的思维非常“快速”,并不真正理解他们正在构建什么。

尽管他们在制定计划时遇到了问题,但他们仍然毫不犹豫地开始编写代码。 没有任何要求,只有我们需要构建的想法。 编写代码时考虑需求。 这些项目迟早会因缺乏明确的目标而受阻。现实世界的基础设施

当在现实世界中建造建筑物、桥梁、购物中心或其他基础设施时,人们首先讨论需求。

目标用户需要什么? 需要解决的问题是什么? 需要建在哪块土地上? 人们为什么需要这座建筑? ……

为了制定良好的需求列表,需要回答许多问题。 我想,以上问题只是一小部分。

为什么人们如此关注建设现实世界的基础设施? 也许是因为他们不想浪费金钱,他们不想发生事故,他们想为最终用户创造成功。 当然,他们也想赚钱。

现实世界与软件开发

为什么我们大多数人(从事软件开发的人)不认真考虑需求? 我们不在乎吗? 我们难道不想为我们的用户创造成功吗? 难道我们不关心钱吗? 我不这么认为!

你的老板也不会这么想。 但他们知道什么? 您的老板很可能不是软件开发人员、架构师或设计师。 即使你的老板是,你会听他的吗?

请不要误会我的意思,我不想让任何人对我有问题或对我感到不安!

但我认为作为软件开发人员,我们必须更认真地对待我们的需求。 我们必须对我们的工作感到更加自豪。 为了给这些人提供建议,我们必须提出要求。

灵活性

如果将构建软件开发与构建现实世界的基础设施进行比较,就会发现灵活性方面存在很多差异。 深入挖掘一下,看看是否真的有很大的区别,或者软件开发人员是否在推动新的东西?

软件开发

几个世纪以来,我们已经从瀑布式开发过渡到敏捷开发。 在瀑布式开发中,所有过程都是顺序的:编写需求、构建软件、测试软件,然后发布。

乍一看,这似乎是一个不错的方法。 然而,问题出现了,我们不得不等待几个月才能测试该软件。

瀑布式开发效果不太好,所以一些聪明人提出了敏捷宣言。 这套指南可以帮助我们更加灵活地构建软件。 因为在开发过程中,需求可能会发生变化。

由于用户提供反馈或人们使用软件进行测试,需求会发生变化。

也许软件公司不知道应该为用户解决什么问题。 因此,敏捷开发应该使应用程序开发成为一个学习的过程。 敏捷是企业成功的关键。

然而,当公司从瀑布式转向敏捷式时,他们认为不再需要,并且可以随时提出他们想要的任何更改,即使他们没有意识到更改的影响。 那么问题就出现了。

作为一家软件公司,如何以敏捷的方式工作是一个值得写一本书或一系列文章的主题。

如果公司开发了需求并且满足了这些需求,那么影响就可以最小化。 但大多数公司不会花时间制定要求。

所以大多数情况下影响会超出预估。 每当需求不断变化,或者我们需要更新依赖项,或者从一个框架更改为另一个框架时,每个人都会有点得意忘形。

许多人没有意识到这些变化的影响! 希望你不是他们中的一员!

现实世界的基础设施

在建设现实世界的基础设施时,如果出现问题,每个人都知道它会对资金或完工日期产生巨大影响。

当需要改变时,整个项目需要暂停。 我们还需要看看这些变化的影响。 但影响可能是巨大的。

所以整个施工团队、建筑师和其他人都必须重新回到绘图板。 需求的变化会产生巨大的影响! 团队中的每个人都知道这一点。

因为他们知道每一次改变都会花费金钱和时间,也可能给项目的成功带来风险。

现实世界与软件开发

比较这两个世界,我认为我们必须更加意识到变革的影响。 依赖关系的变化和架构的变化。 在做出决定之前,我们应该对每个变化进行适当的调查。

如果我们更认真地对待时间和金钱对业务的影响,就不会再轻易考虑架构变更。

因此,我们应该认识到这一点。 此外,如果您清楚了解变更的影响,您就有责任向决策者提供建议。

维持

说到维护,我们都知道软件开发和现实世界的基础设施都离不开维护工作。 但公司在维护软件和实际基础设施方面存在许多差异。

软件开发

我见过很多公司没有人来维护软件。 有些公司甚至对开发完成后要求维护人员感到惊讶。 有些人甚至会生气!

当然,并不是所有的公司都会对软件维护掉以轻心。 感谢上帝,有很多优秀的公司会投入人员来更新软件或纠正错误,甚至在软件发布后对其进行改进。

但在小公司里,一般没有人承担这些任务。

这些公司的大多数管理者都认为:“开发团队应该确保软件的未来,不应该出现任何bug。”

然而,我们都知道没有人是完美的,因此软件永远不可能完美无缺。

现实世界的基础设施

在现实世界中,道路、桥梁、房屋或其他建筑物等基础设施通常需要人们维护。

你的房子经常需要一些维护,比如粉刷墙壁、更换屋顶、修复漏水等。当然你可以聘请一家公司来做这些事情。

每个人都知道现实世界的基础设施需要维护,否则就会失修。

道路有时需要水泥和沥青,木材需要重新涂漆,或者环境引起的其他问题。

软件开发和现实世界的基础设施

令人震惊的是,有多少公司甚至不考虑软件维护。 他们将其归咎于开发人员,认为他们应该获得没有任何错误的软件,或者感觉他们必须在未来十年内重建它,这样就没有必要维护它。

老实说,我们不会对建造房屋、道路、桥梁和其他现实世界基础设施的人说这些话。 那么,您为什么认为软件不需要维护呢?

服务器收到安全补丁并修复了框架错误。 我们都希望我们每天使用的软件越来越好,不是吗?

我希望这篇文章能够引起人们对这个问题的关注,并且我们作为软件开发人员能够更加意识到这个问题。

软件开发与构建现实世界的基础设施没有太大不同。 因此,我们应该更加认真地对待我们的软件开发,并更加意识到我们对它的影响。

我们应该以身作则,影响那些不认真对待这个问题的企业。 我们为自己的工作感到自豪,更加认真地对待每一项工作!

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender