我们对软件开发还不够认真
为什么我们不像对待现实世界的基础设施那样对待软件?
我在考虑为什么大多数公司将构建软件的过程与构建实际基础结构大不相同。
在本文中,我想谈一谈我们将构建软件更像构建实际基础结构时所必须讨论的话题。 当我与其他人谈论这件事时,我们比以往更加惊讶! 作为软件开发人员,我们为什么不认真对待我们的工作?
1.要求
让我们从如何处理软件开发需求开始。 我知道有不同类型的公司从事比其他公司更大的软件开发工作,但是请听我说。
软件开发
在我的软件开发的最后十年中,我看到了多种收集需求的方法。 他们中的大多数人并没有那么认真地对待它,而且头脑敏捷。 好吧,敏捷,实际上他们并没有真正了解自己正在构建什么。
他们在制定计划时遇到了问题,相反,他们才开始编码。 没有任何要求,只是我们需要构建什么的想法。 我们必须一路搞清楚。 这些项目迟早由于缺乏清晰的视野而搁浅。
实际基础架构
当需要在现实世界中建造建筑物,桥梁,购物中心或任何其他基础结构时,人们首先开始讨论要求。
他们有什么目标用户? 需要解决的问题是什么? 需要在哪一块土地上放置? 人们为什么要使用它? 等等。
为了确定一个好的需求清单,需要回答很多问题。 我想我的问题只是其中的一小部分。
但是,为什么构建现实世界基础架构的人们如此重视呢?
好吧,他们不想浪费钱。 他们不希望发生事故。 他们希望为最终用户创造成功的故事。 当然,他们想赚钱。
现实世界与软件开发
好吧,当我只考虑这一点时,我就有一种感觉,为什么哦,为什么我们大多数人(以开发软件为生)而不是认真考虑适当的透彻要求?
我们不在乎吗? 我们不是要为最终用户打造成功案例吗? 我们想浪费钱吗? 我不这么认为!
你的老板也不会这样想。 但是他们怎么知道? 您的老板很可能不是软件开发人员,架构师或设计师。 如果老板是那样,您会听吗?
不要误会我的意思,我不要别人对我生气或不高兴!
但是我认为,作为软件开发人员,我们必须更加认真地对待我们的要求。 我们必须对我们的工作感到更加自豪。 要为这些人提供建议,我们必须提出这些要求。
2.灵活性
如果将软件开发与构建实际基础结构进行比较,则在灵活性方面有很多差异。 但是,让我们深入研究一下,看看它是否真的有很大的不同,还是我们软件开发人员只是推动新事物发展?
软件开发
几个世纪以来,我们一直在从瀑布过渡到敏捷。
使用瀑布,所有过程都排成一行并遵循顺序。 编写需求,构建软件,测试软件并发布。
起初,这听起来还不错。 但是,当介于两者之间的某个地方出现问题时,一切都进行了数月之久,之后人们才开始测试该软件。
效果不是很好,因此一些聪明的人提出了《敏捷宣言》。 可以用于构建更灵活的软件开发方式的一些准则。 因为在开发过程中,需求可能会发生变化。
因为用户提供了反馈或人们使用该软件进行了测试,所以它们可能会更改。
也许软件公司不知道为用户解决真正的问题。 因此,敏捷准则应使应用程序开发成为学习过程,其中敏捷性是企业成功的关键。
但是,当一家公司从瀑布式转变为敏捷式时,他们认为他们不再需要需求,并且他们可以在需要时抛弃任何变更,而没有意识到变更的效果。 那引起问题。
但是,作为一家软件公司,如何敏捷地工作足以编写一本有关(或一系列帖子)的完整书籍。
当公司满足其要求并切实解决问题时,可以将影响降到最低。 但是大多数公司不会花时间来制定要求。
因此,在大多数情况下,其影响要大于估计的影响。 但是,如果需求在变化,或者我们需要更新依赖关系,或者我们从一个框架更改为另一个框架,那么每个人都会轻视它。
很多人没有意识到这些变化的影响! 希望您不是其中之一! 如果您是,请继续阅读。
实际基础架构
在实际基础结构的构建阶段中发生变化时,每个人都知道,这可能会在金钱或何时完成建造方面产生巨大的后果。
当必须进行更改时,需要暂停整个过程。 它还取决于更改的影响。 但是效果可能会很大。
因此,整个建筑团队,建筑师和其他人员必须回到图纸上。 需求的变化会产生巨大的影响! 团队中的每个人都会知道这一点。
因为他们知道每次更改都会花费更多的时间和金钱。 并可能对项目的成功构成风险。
现实世界与软件开发
如果我将两个世界相互比较,我认为我们必须更加意识到变化的影响。 依赖关系的变化。 架构变更的变更。 在做出决定之前,应对每个更改进行适当的调查。
当我们更加认真地考虑时间和金钱对企业的影响时,我们就不会再轻易考虑架构变更了。
因此,让我们彼此意识到这一点。 为您的工作感到自豪!
而且,如果您非常了解我们可能造成的影响,则有责任为做出决定的人员提供建议。
3.维护
当我们考虑维护时,我们知道软件开发和现实基础架构都离不开它。 但是,公司处理软件的维护方式与实际基础架构之间存在很大差异。
软件开发
我见过许多没有人来维护软件维护的公司。 甚至,当您要求他们在开发阶段完成后就职时,公司也会感到惊讶。
他们看起来真的像在烧水!
好吧,也许不是所有公司都对软件维护轻描淡写。 谢天谢地,有很多好的公司,一旦软件发布,就有人来更新他们的软件。 或正在修复错误甚至更好的人,他们会改进软件。
但是在较小的公司中,让人们这样做并不是很普遍。
这些公司中的大多数经理都这样想:"好吧,开发团队应该使软件过时,或者不要引入任何错误。"
好吧,希望我们大家现在都知道,人还不完美,所以软件永远都做不完。
实际基础架构
就道路,桥梁,房屋或其他建筑物等基础设施的维护而言,通常需要人来进行维护。
您的房屋可能不时需要一些维护,例如粉刷墙壁,修复屋顶,修复泄漏等。或者您雇了一家公司为您做这件事。
但是每个人都知道现实世界中的基础设施需要维护,否则会变得很糟糕。
时不时地,我们的道路需要新的混凝土层。 我们的木材需要新的油漆,或者由于其环境需要固定。
软件开发与实际基础架构
关于维护的令人震惊的事情是,许多公司甚至都不考虑这部分。 他们只是将其归咎于开发人员,他们必须拥有无错误的软件,或者必须在未来十年内构建它。
但是说实话,我们不会对正在建造房屋,道路,桥梁和其他现实世界基础设施的人们说这些话。 那么,为什么我们期望我们的软件免维护?
服务器获取安全补丁,框架获取错误修复。 我们都希望我们每天使用的软件会更好,更安全,对吗?
希望您的公司在这方面做得很好! 如果是这样,高五,我的朋友!
但是,让我们帮助其他人,软件开发人员和公司更多地了解软件开发的这一部分。
结论
感谢您在这里阅读所有内容!
我希望我的故事引起了人们的注意,希望我们作为软件开发人员更加意识到这一事实。
软件开发与构建实际基础架构没有太大的不同。 因此,让我们更加认真地对待我们的软件开发,并更加意识到我们对其产生的影响。
我们可以凭借自己的认真或缺乏认真程度来建立或破坏一家公司。 让我们为我们的工作感到自豪,并更加认真地对待它!
如果您同意或不同意我,请在评论中让我知道。 我期待着就改善我们的工作进行良好的对话!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义