欢迎来到开云·体育(中国)官方网站【官方网站】
开云体育网站平台多少
开云体育网站平台多少
电话:0851-85824918
传真:0851-85824918转8018
E-mail: gyjlykj888@163.com
地址:贵阳市花果园中央商务区2号楼1单元44层
  您当前位置:首页 > 产品中心 > 软件产品
开云体育网站平台多少:软件开发最难的不是编码而是需求你认同吗?

作者:开云体育app官网 出处:开云体育电脑版    发布时间:2023-07-11 07:28:54

  【编者按】文章首要谈论了在软件开发进程中,编码并不是最困难的部分,而是需求的界说。作者经过自己的阅历和比方,强调了需求的不清晰、不一致或过错是导致软件问题的首要原因。文章还谈论了人工智能在软件开发中的运用,指出虽然 AI 在某些范畴(如棋类游戏)现已取得了很大的成功,但在软件开发中,由于需求的杂乱性和不确认性,AI的运用还面对很大的应战。作者以为,人工智能或许最适合重写现已存在的软件,但关于新的、杂乱的需求,人工智能还无法代替人类。

  跟着各种有关 AI 开展的抢手文章许多呈现,咱们这些软件开发者深感忧虑,忧虑不久的将来就会被 AI 代替,失掉作业。有些人幻想商务高管和产品司理将绕过大多数或一切的软件开发者,直接要求 AI 按他们的需求创立他们想要的东西。作为一个现已花了 15 年时刻依据这些人供给的标准来创立软件的人,我很难对一切的忧虑认真对待。

  编程虽然需求必定的根底,但学起来也并没有幻想的那么难。一旦你把握了语法、逻辑和技能,大多数时分你就能够墨守成规编写代码了。真实困难和杂乱的问题一般触及到软件应该满意什么样的需求,以及怎么规划出高雅和高性能的计划。创立软件最困难的部分并不是编写代码,而是发明需求、剖析需求,并且这些软件需求依然需求由人类界说。

  本文将谈论需求和软件之间的联系,以及假如 AI 要代替人类的软件开发者,它需求具有什么样的才能或条件。

  在我软件职业生涯的前期,我自动承受了一个项目的使命,并加入了团队,以协助进步团队的作业效率。该软件的首要功用是在电子商务网站上供给定制产品的装备服务。我被分配了生成动态的条款和条件的使命。条款和条件中包括的表述不只依赖于购买的产品类型,还要依据客户地点的美国州的法令要求进行调整。在开发进程中,我以为我发现了一个或许的缺点。用户会挑选一种产品类型,这会生成相应的条款和条件,但在作业流的后续进程中,软件会答使用户挑选不同的产品类型和预界说的条款和条件。这将违背商业需求中规矩的一个特性,该需求已得到客户的书面承认。我诚实地问客户,“我应该删去答使用户掩盖正确条款和条件的选项吗?”我清楚地记住他的答复。他必定地说道:“那永久不会产生”。

  这位高档执行官在公司作业了多年,了解公司的业务流程,并且自动承当了监督这个软件的职责。我作为一个新人,怎么能质疑任何人,尤其是这是一家付钱让咱们为其构建产品的公司的高档执行官呢?我有些疑问地摇了摇头,但也没有多想这件事。

  几个月后,就在软件行将上线的几周前,客户方的一个测验员发现了一个缺点,并把它指使给了我。当我看到这个缺点的详细状况时,我苦笑了一下。

  我之前对掩盖默许条款和条件的忧虑,我被奉告永久不会产生的作业,猜猜产生了什么?猜猜谁为此担任,谁被要求修正它?

  修正这个问题相对简略,并且“bug”的影响较小,但这种阅历在我开发软件的职业生涯中一向重复呈现。我与许多软件工程师交谈过,知道我并不是仅有一个遇到这种状况的人。问题变得越来越大,更难修正,然后导致本钱也更高,但问题的源头一般是相同的:需求不清晰、不一致或过错。

  想要用 AI 代替程序员,客户需求准去额描绘他们想要什么。现在还做不到,咱们仍是安全的。

  想要用 AI 代替程序员,客户需求准去额描绘他们想要什么。现在还做不到,咱们仍是安全的。

  虽然人工智能的概念现已存在很长一段时刻,但最近引人瞩目的成果也引发了媒体,乃至过会的高度重视。人工智能在某些范畴现已取得了巨大成功,第一个让人想到的便是棋类游戏。早在1980年代,人工智能就开端运用于棋类游戏中。公认的是,人工智能现已逾越了人类在棋盘上的水平。这并不令人惊奇,由于棋类游戏的变量是有限的(可是游戏还未被彻底处理)。

  棋盘游戏总是从 32 个棋子在 64 个格子上开端,有公认的清晰的规矩,最重要的是有清晰的方针。在每一轮中,有有限的或许着法。下棋便是遵从规矩体系。人工智能体系能够核算每一步的成果,挑选最有或许抓获对手棋子、占据优势位置,终究取胜的走法。还有另一个人工智能十分活泼的范畴 —— 自动驾驭轿车。制造商们一向许诺着自动驾驭轿车的推出。有些轿车有自动驾驭才能,但也有约束条件。在许多状况下,轿车需求继续监控;驾驭员或许需求双手抓住方向盘,自动驾驭功用并不是彻底自主的。

  就像玩棋的人工智能程序相同,自动驾驭轿车在做决守时首要运用根据规矩的引擎。不同于棋盘程序,怎么在每一种或许的状况下导航的规矩并没有清晰界说。在一次行程中,驾驭员或许需求做出数千个小判别,比方避开行人、绕过双泊车,以及在繁忙的穿插路口转弯。做出正确的判别意味着差异在于安全抵达商场仍是被送到医院。

  在科技职业,标准是可用性到达99.999%乃至99.9999%—— 一个网站或服务在 99.999%(或99.9999%)的时刻内是可用的。到达最低的 99% 的本钱并不高,这意味着你的网站或服务一年能够不可用超越三天——87.6 小时。可是每多一个 9,本钱就呈指数级增加。当你到达 99.9999%的 时分,你一年只能答应 31.5 秒的停机时刻。这需求更多的规划和尽力,当然花费也更高。取得首个 99% 或许并不简单,但比较于那终究的细小部分,它在份额上明显更简单也更廉价。

  人工智能的水平再高,也不或许消除事端和逝世的危险。这些危险和成果每天都在人类驾驭员驾驭轿车的进程中产生。我不知道政府会承受何种程度的事端和逝世率,但咱们有必要等待自动驾驭轿车至少要比人类驾驭者有更低的事端和逝世率。

  构建和保护软件更像驾驭,而不是下棋。触及的变量更多,规矩根据判别。当你构建软件时,你或许有期望的成果,但它不太或许像棋类游戏那样确认。软件很少完善;功用会被增加,过错会被修正;这是一个继续的进程。可是与软件不同,一旦棋局输赢已定,竞赛就完毕了。

  在软件开发中,咱们的确有一个东西能够使咱们的软件规划更接近于棋类游戏的严格控制的规矩引擎:技能标准。在最佳的状况下,标准说明晰预期的用户行为和程序流程。这便是用户进行数字买卖的办法:点击这个按钮,创立这个数据结构,运转这个服务。可是,咱们往往得不到这样的标准。咱们经常被赋予一份清单,上面列出了功用标准的期望,草草画在餐巾纸背面的线框图,以及含糊不清的需求文档,然后被奉告要做出最好的判别。

  更糟糕的是,需求或许会改变或被疏忽。最近我被要求协助一个团队构建一个能够协助人们获取关于与 COVID-19相关的健康问题信息的东西。这个运用程序将面向那些没有牢靠 WIFI 的区域。该团队期望我能协助构建一个能够经过 SMS(手机短信)进行查询的运用程序。起先,我对能参加其间感到十分振奋。

  可是,当我开端听到团队描绘他们想要的东西时,我意识到这将是一个问题。关于一个零售公司来说,问询你在1-10 的范围内再次在他们的店肆购物的或许性是一回事。可是经过多选问题问询你或许体现出的 COVID 感染症状的多步查询则是另一回事。我从未说不,但我的确提出了在这个进程中或许呈现的一切毛病点,并期望团队清楚界说咱们将怎么处理一切问题的计划。咱们是否会运用逗号来分隔数字,将每个数字映射到一个答案?假如提交的答案并未映射到给出的任何选项,将会产生什么?

  经过一切这些问题,团队到达了相同的定论。咱们决议最好仍是不要继续进行。信不信由你,我会说这实际上是一个成功的成果。假如在提交的用户数据无效时,一切潜在过错没有清晰的处理计划,那么继续进行将更糟蹋。

  运用 AI 来创立软件的主意,是让那些相同的利益相关者直接与核算机对话来创立一个根据 SMS 的查询吗?AI是否会问一些探究性的问题,关于怎么处理经过 SMS 搜集查询数据或许呈现的一切问题?它是否会考虑到咱们作为人类在这个进程中或许做错的一切作业,以及怎么处理这些失误?

  为了从 AI 中生成一个功用完好的软件,你需求知道你想要什么,并能够清楚、精确地界说它。有时,在我开端编写代码之前,我未意识到一些潜在的困难和应战。在曩昔的十年中,软件职业从瀑布方模型变为灵敏开发。瀑布办法在编写任何代码之前就精确界说了你想要什么,而灵敏则答应你在进程中进行调整。

  许多运用瀑布法的软件项目失利了,由于利益相关者以为他们知道他们想要什么,并以为他们能够精确地描绘和记载它。可是,他们在终究产品交给时常常感到极度绝望。灵敏软件开发被视为是这一问题的处理计划。AI 或许最适合用于重构咱们已有的、但需求运用更新硬件或更现代编程言语进行重写的软件。还有许多组织的软件是用COBOL编写的,但学习怎么运用它的程序员越来越少。假如你切当知道你想要什么,或许你能够让 AI 比一组人类程序员更快、以更低的本钱开发软件。我以为 AI 能够比人类程序员更快地开发软件,但这是建立在有人先搞清楚了软件的功用和需求的根底上的。

  虽然瀑布法被亲热地称为“逝世行军(death march)”,AI在运用瀑布法构建软件时或许体现得相当好。在瀑布法中做得糟糕的是谁?是咱们自己!软件开发的关键是写代码前的许多作业,而不是把签署的文档交给程序员团队编写代码的部分。人工智能能够把作业做得很超卓,但它还不能直接读取你的思维,也不能告知你应该想要什么。

  你是否也以为需求的界说是软件开发中最困难的部分?你有没有遇到过由于需求不清晰或过错而导致软件开发呈现问题的状况?你是怎么处理的?欢迎在谈论区共享你的阅历和经历。

  你是否也以为需求的界说是软件开发中最困难的部分?你有没有遇到过由于需求不清晰或过错而导致软件开发呈现问题的状况?你是怎么处理的?欢迎在谈论区共享你的阅历和经历。

  ▶微信付出兑换今天好礼不再累积提现免费额度;ChatGPT 上线最强运用「代码解说器」;GCC 10.5 发布极客头条

  ▶ Oracle 再严查 Java 答应,网友:公司已卸载 Java,从头招聘程序员开发新体系!

  ▶ “高仿 Twitter” 1 天拿下 3000 万用户,惹马斯克发律师函:你个“山寨货”!回来搜狐,检查更多

上一篇:汤骏哲生长记:乘“云”而上的大明“98后”软件开发师
下一篇:重庆闻名软件开发公司 软件开发职业的开展趋势
网站首页
关于我们
新闻中心
公司新闻
产品中心
软件产品
联系我们
解决方案
网站域名

微信二维码扫描
联系电话:0851-85824918  手机:0851-85824918转8018  邮箱:gyjlykj888@163.com
Copyright 2020   开云·体育(中国)官方网站  版权所有.  地址:贵阳市花果园中央商务区2号楼1单元44层   
免责声明:本网站部分资料来自互联网,如果涉及到版权问题,请及时通知本站,我们尽快删除或更改。