作者 | Dev by RayRay

译者 | 弯月,责编 | 伍杏玲

出品 | CSDN(ID:CSDNnews)

以下为译文:

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

我想谈一谈我们必须像构建现实世界的基础设施那样重视软件的构建。每当我与其他人谈起这件事时,我们都非常震惊, 作为软件开发人员,为什么我们未能认真对待自己的工作呢?

需求

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

软件开发

在从事软件开发的最近十年中,我见识了很多收集需求的方法。大多数人并没有认真对待这项工作,他们的思想非常“敏捷”,并没有真正理解自己在构建什么。

虽然他们制定计划本身就遇到了问题,但依然会义无反顾地开始写代码。没有任何需求,只有我们需要构建什么的想法。一边写代码一边思考需求。这些项目迟早会因为缺乏清晰的目标而受阻。

现实世界的基础设施

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

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

为了确立一个好的需求清单,需要回答很多问题。我想上述问题只是其中很小一部分。

为什么人们会如此重视现实世界基础设施的构建呢?可能是因为他们不想花冤枉钱,他们不希望发生事故,他们希望为最终用户创造成功。当然,他们也想赚钱。

现实世界与软件开发

为什么我们大多数人(从事软件开发的人)不会严肃认真地想清楚需求呢? 我们不在乎吗?我们不想为我们的用户创造成功吗?我们不在乎钱吗?我并不这样认为!

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

请不要误会我的意思,我并不想别人对我有意见或不高兴!

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

灵活性

如果比较构建软件开发与构建现实世界的基础设施,就会发现二者在灵活性方面有很多差异。深入研究一下,看看是否真的有很大的不同,还是说软件开发人员推动了新事物的发展?

软件开发

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

起初听起来这种方式还不错。然而问题出现了,我们需要等待数月之久,才能测试软件。

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

需求之所以会发生变化,是因为用户提供了反馈或人们使用软件进行了测试。

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

然而当一家公司从瀑布式转变为敏捷式后,他们就认为不再有需求了,他们可以随时根据需要提出任何变更,即便他们没有意识到变更带来的影响。于是问题出现了。

作为一家软件公司,如何才能以敏捷的形式开展工作,这个话题足以写一本书或一系列的文章。

如果公司制定出需求,而且这些需求都能得到满足,那么就可以将影响降到最低。但是大多数公司不会花时间来制定需求。

因此在大多数情况下,影响都会超出估计。每当需求不断变化,或者我们需要更新依赖关系,或者从一个框架改为另一个框架时,每个人都会有点过于轻敌。

很多人没有意识到这些变化的影响!希望你不是其中之一!

现实世界的基础设施

在现实世界基础设施的构建过程中,一旦发生任何变故,每个人都知道这可能会对金钱或完工日期造成巨大的影响。

当必须有所变动时,整个工程都需要暂停。而且还需要看看变动带来的影响。但是这种效果可能会很大。

因此,整个建筑团队、建筑师和其他人员都必须回到图纸上。需求的变化会产生巨大的影响!团队中的每个人都清楚这一点。

因为他们知道每次变动都需要付出金钱和时间的代价,而且可能还会对项目的成功带来风险。

现实世界与软件开发

将两个世界相比较,我认为我们必须更加清醒地意识到变化带来的影响。依赖关系的变化、架构的变更。在做出决定之前,我们应该针对每项变化进行适当的调查。

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

因此,我们应该意识到这一点。此外,如果你非常清楚变更造成的影响,那么就有责任为做出决定的人员提供建议。

维护

说起维护,我们都知道软件开发和现实世界的基础设施都离不开维护工作。但是公司处理软件和现实世界基础设施的维护方式却有很多差异。

软件开发

我见过很多公司都没有人来维护软件。当开发结束,你要求投入维护人员时,有些公司甚至会感到很惊讶。有些人甚至会很愤怒!

当然,也并非所有公司都会轻视软件的维护工作。谢天谢地,有很多优秀的公司,在软件发布后就会投入人员来更新软件或改Bug,甚至改进软件。

但是在小规模的公司中,普遍没有人承担这些工作。

这些公司里的大多数经理都认为:“开发团队应该为软件的未来做好万全的保障,不应该有任何Bug。”

然而,我们都知道人无完人,所以软件也永远不可能没问题。

现实世界的基础设施

在现实世界中,道路、桥梁、房屋或其他建筑物等基础设施通常都需要有人来承担维护的工作。

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

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

道路需要时不时地铺筑水泥和沥青,木材需要新的油漆,或者由于环境而造成的其他问题。

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

令人非常震惊的是,许多公司甚至都没有考虑软件的维护工作。他们将其归咎于开发人员,认为他们应该获得没有任何Bug的软件,或者觉得他们必须在未来十年内重新构建这些软件,所以没必要维护。

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

服务器获取安全补丁,框架的Bug得到修复。我们都希望我们每天使用的软件会越来越好,越来越安全,不是吗?

我希望这篇文章能引起人们的注意,希望我们作为软件开发人员更加深刻地意识到这个问题。

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

我们应当以身作则,影响那些没有认真对待这个问题的公司。我们为自己的工作感到自豪,并更加认真地对待每一项工作!

链接:https://medium.com/better-programming/we-are-not-serious-enough-about-software-development-b9e3222f2906

*本文为CSDN翻译文章,转载请注明出处。

推荐阅读

视频大战再起:B站、头条对战爱优腾

知乎上高赞的40个有趣回复,很精辟!

天秀,17 岁高中生独立开发全球疫情追踪网站后火了!

END

来和小伙伴们一起向上生长呀~~~

扫描下方二维码,添加小詹微信,可领取千元大礼包并申请加入 Python学习交流群,群内仅供学术交流,日常互动,如果是想发推文、广告、砍价小程序的敬请绕道!一定记得备注「交流学习」,我会尽快通过好友申请哦!

(添加人数较多,请耐心等待)

为什么我们程序员不把软件开发当回事?相关推荐

  1. Python最抢手、Go最有前途,7000位程序员揭秘2019软件开发现状

    作者 | 屠敏 整理 报告来源 | JetBrains 转载自 CSDN(ID:CSDNnews) 互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT 半 ...

  2. 收藏!程序员必备的软件开发工具大全!(附高速下载地址)

    对于每一位开发者而言,软件开发工具的重要性显然不言而喻.事实上,除了个人能力之外,它们也在团队的效率及实际生产力层面扮演着关键性角色. 今天阿晨就把自己的私货全部掏出来整理在下面! 内附高速下载地址! ...

  3. 从一个程序员笑话看软件开发管理

    有一个笑话是这样的: 1. 程序员写出自认为没有Bug的代码. 2. 软件测试,发现了20个Bug. 3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug. 4. 测试组发现其中5个改动根 ...

  4. Python 最抢手、Java 最流行、Go 最有前途,7000 位程序员揭秘 2019 软件开发现状...

    作者 | 屠敏 整理 报告来源 | JetBrains 出品 | CSDN(ID:CSDNnews) 互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT ...

  5. @程序员,物联网软件开发不得不克服的七大挑战

    物联网软件开发是个雷区.市场需要高质量.具有可扩展性.强大.安全且人性化的解决方案,为了将所有风险都考虑在内,物联网开发团队必须重新评估程序和工作流程.本文列出了物联网软件开发项目所面临的七大挑战. ...

  6. 高性能python软件开发_Python 最抢手、Java 最流行、Go 最有前途,7000 位程序员揭秘 2019 软件开发现状...

    作者 | 屠敏 整理 报告来源 | JetBrains 出品 | CSDN(ID:CSDNnews) 互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT ...

  7. 7000位程序员揭秘2019 软件开发现状:看Python、Java与Go,谁主沉浮

    互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT 半边天的技术人,如今如何了?从技术角度来看,其又该作何改变顺应潮流? 接下来,我们将从 JetBrai ...

  8. 7000 位程序员揭秘 2019 软件开发现状

    报告来源 | JetBrains 互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT 半边天的技术人,如今如何了?从技术角度来看,其又该作何改变顺应潮流? ...

  9. Python最抢手、Java最流行、Go最有前途,7000位程序员揭秘2019软件开发现状

    作者 | 屠敏 整理 来源 | JetBrains 出品 | CSDN(ID:CSDNnews) 互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流.而对于身处其中且撑起 IT 半边 ...

最新文章

  1. 20应用统计考研复试要点(part15)--应用多元分析
  2. python十个运维实战项目_干货 | 这4个Python实战项目,让你瞬间读懂Python!
  3. 如何下载coursera视频
  4. python中or的用法_解析python中and与or用法
  5. 如何制作一个横版格斗过关游戏(2) Cocos2d-x 2.0.4 .
  6. 反射在工厂模式中的使用
  7. java输入一个矩阵顺时针打印_剑指Offer(Java版):顺时针打印矩阵
  8. NBA数据分析及可视化BI数据大屏 (Kobe·Bryant)
  9. qu32调音台说明书_调音台图解及使用说明
  10. 基于STM32F103的多种波形示波器制作
  11. 百度深度学习实验室(IDL)招聘算法实习生
  12. flv格式怎么转换成mp4?视频格式转换步骤详解
  13. MFC中通过SendMessage修改Edit控件的文本
  14. 计算机多功能解说词,音乐教室解说词
  15. UOS体验(一)之VMware安装教程
  16. 对接商汤摄像头详细步骤
  17. 用AI把好朋友的照片转换为铅笔素描 —— 【模型识别2020之U2Net】
  18. 让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅
  19. centos7启动服务uthorization not available. Check if polkit service is running or see debug message for
  20. (PDC2008)Anders Hejlsberg: The Future of C#

热门文章

  1. 高并发资金交易系统设计方案—百亿双十一、微信红包背后的技术架构
  2. git中fatal: Authentication failed的问题
  3. 京东商品详情页碎碎念
  4. springboot page size过大导致内存溢出_Spring Boot 内存泄露怎么办呢?看这里看这里!!...
  5. CentOs7 无可用“Chinese Support“
  6. cmd中操作mysql_Windows中cmd操作mysql
  7. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导
  8. 使用HTML语言编写HTML教程,HTML教程:HTML编写小经验
  9. linux:Too Many Open Files(打开的文件过多)
  10. linux decode函数,Oracle 中 decode 函数用法