幕后花絮:JMP®Live(2021-EU-PO-732)中的软件开发级别:初学者
SAS JMP高级软件开发人员Aurora Tiffany-Davis
窥视幕后,了解我们如何开发JMP Live软件。 开发软件不仅仅是坐在键盘上编写代码。 在工作的“编写代码”部分之前,之中和之后,查看我们使用哪些工具和流程。
了解我们如何:
- 了解需要什么。
- 定义成功的模样。
- 编写代码。
- 发现问题(这样我们的客户就不必这样做)。
- 维护软件。
自动产生的笔录...
成绩单
|
| 嗨,我是Aurora Tiffany-Davis, |
| JMP Live团队,我今天想与您谈谈 |
| 我们如何在JMP Live团队中开发软件。 |
| 首先,我想让您想象一下软件开发的样子 |
| 喜欢你。 如果您自己不是开发人员,那么 |
| 您脑海中的图片可能已被电视和 |
| 您看过的电影。 |
| 您可能正在想象一个独自工作的奇才天才, |
| 而且软件开发过程非常简单。 他们 |
| 认真思考一个问题。 他们写一些代码 |
| 然后他们确保它可以正常工作。 它可能会做到, |
| 因为毕竟它们是一个 |
| 天才。如果我们都是像好莱坞这样的天才,说我们是, |
| 这个过程可能对我们有用,但实际上我们只是人类, |
| 因此,我们需要的不仅仅是 |
| 那。首先,我们不是一个人工作。 我们非常努力 |
| 合作,我们有一个过程可以帮助我们 |
| 生产高质量的软件。 我要指出的是,这里没有 |
| 一种正确的软件开发过程。 你的 |
| 各个公司之间的流程将有所不同,甚至 |
| 在公司内部。 但是我今天要做的是引导您完成 |
| 如果要在中开发新功能,该怎么办 |
| JMP Live。 |
| 首先,在我坐下来编写代码之前,我必须 |
| 有一些实际需要。 必须有一个真实的人 |
| 谁在JMP Live中找到了一些东西 |
| 并没有按照他们认为的方式工作,这是 |
| 说他们发现了错误或有一个错误的好方法 |
| 请求新功能。 我们会在 |
| 内部系统,所以我要做的第一件事就是 |
| 该系统,并找到一个很好的高优先级问题 |
| 匹配我的技能,然后开始思考,然后开始 |
| 谈论它。 我接下来要做的就是尝试了解 |
| 通过与人交谈的需要。 什么样的用户要去 |
| 需要这个功能吗? 他们怎么样 |
| 要用它吗? 然后,我将在自己的计算机上运行JMP Live, |
| 然后开始研究新功能的适用范围 |
| 进入JMP Live |
| 今天存在。 然后我会提出代码并开始思考 |
| 通过新代码将如何适合我们的代码库。 |
| 一旦我认为自己对需要有充分的了解,我就会 |
| 将继续进行设计步骤。 再来一次,我的第一个 |
| 要做的就是与人交谈。 我将与用户交谈 |
| 我们在JMP中拥有经验丰富的专家,我将与我交谈 |
| 同事问:“您是否曾从事与 |
| 这之前? 您以前曾经在代码的这一部分工作过吗?” |
| 然后,我将开始充实设计。 我可能会写文章 |
| 并绘制图表并共享这些内容,以便我可以 |
| 确保团队的其他成员通常 |
| 适应方向 |
| 我要搬进去 现在我坐下来开始写一些 |
| 代码。为此,我将使用集成开发 |
| 环境,这是一个包含很多内容的程序 |
| 旨在帮助我们更好地完成工作的功能。 |
| 现在,我已经写了一些代码,第一步是找到 |
| 我刚创建的问题。 我只是人类,所以机会 |
| 我在第一次尝试时编写了100%无缺陷的代码,这非常苗条。 |
| 我的第一步将是 |
| 使用静态分析。 静态分析不会运行代码, |
| 它看起来就像写在一块 |
| 纸。一个类比可能是Microsoft Word中的拼写检查。 拼写检查 |
| 无法告诉我我是否写过引人注目的内容 |
| 小说,但它可以告诉我是否错过了逗号。 |
| 静态分析针对代码执行此操作。 |
| 现在,我已经找到并解决了那些非常明显的问题, |
| 下一步将是寻找不太明显的问题, |
| 为此,我将使用自动化测试套件。 我们有 |
| 针对我们的代码编写了广泛的测试。 自动化的 |
| 测试确实可以运行代码,或者更确切地说,它可以运行 |
| 代码,提供了一定的输入,并期望有一定的输出。 |
| 坐下来写下这些是非常有价值的练习 |
| 测试,因为有时候我坐下来写一个新的测试 |
| 任何功能,都迫使我真正阐明我的想法 |
| 首先该软件应如何工作。 |
| 它还提供了一个非常关键的保护措施,以防止 |
| 同事在将来不小心破坏了此功能。 所以 |
| 这是找到的好方法 |
| 提早出现问题。 一旦我编写并自动运行这些 |
| 测试,我将继续进行一些手动测试。 我可能会运行JMP |
| 驻留在我的本地计算机上,或者在我们拥有的几台服务器中的一台上 |
| 在办公室里闲逛并尝试一些东西,只是要确保 |
| 以我的方式运作 |
| 认为应该的。 我什至可以查看数据库 |
| 坐在JMP Live后面,并跟踪记录 |
| 用户,帖子,组,评论,并确保记录是 |
| 以我期望他们的方式写。 |
| 现在,我对自己写的一些文章保持谨慎的乐观态度。 |
| 代码,我创建了一个有用的 |
| 特征。下一步是向我的同龄人征求意见。 患病的 |
| 通过同行评审对此进行说明。 现在在JMP Live中,我们将100%的 |
| 我们通过同行评审编写的代码,原因是 |
| 我们发现它是如此有价值。 |
| 我可能错过了一些东西,因为我只是 |
| 对某事有盲目性。 或可能是 |
| 如果我的团队中的其他人只是知道我 |
| 缺少。在评论中,审阅者通常也会 |
| 从锻炼中获得很多价值,因为他们可能 |
| 了解一些新技术。 |
| 现在,团队对我们创建的团队非常乐观 |
| 一些好的代码,我最终将提交我的代码或将其检入 |
| 源代码存储库。 |
| 我们有一个持续不断的构建系统,可以监视我们 |
| 提交代码,当我们这样做时, |
| 分析它。 它寻找真正的基本内容,例如文件 |
| 命名正确的方式和正确的位置? 它也会重新运行 |
| 静态分析,它将重新运行我们的整个自动化测试 |
| 套房。这样做是为了防止有人忘记这样做 |
| 在此过程的早期。 或更常见的情况是 |
| 自上次以来,一些细微的变化已经改变了 |
| 自动化测试套件已运行。 |
| 因此,它会进行所有这些分析以及何时完成分析 |
| 这一步,该代码现在可供外部人员使用 |
| 开发团队 |
| 看它。 最早接受此测试的人是测试 |
| 我们在JMP Live和JMP团队中拥有的专家 |
| 更广泛地。 这些是测试专业人员。 这就是他们所做的 |
| 在他们的整个职业生涯中,他们真的很擅长。 |
| 他们可能会重新运行自动化测试套件。 他们可能会添加更多测试 |
| 到我们的套房。 他们可能会手动运行JMP Live并四处张望 |
| 一般来说。他们可能会在本地运行JMP Live,并假装这样做 |
| 作为用户的事情绝对是疯狂的。 到底是什么 |
| 用户可以做的最疯狂的事情? 让我们看看该软件 |
| 对此作出回应。 他们对这些测试非常有创意 |
| 场景。他们可能还会在各种计算机上运行该软件。 |
| 不同的浏览器和操作系统,以确保我们 |
| 该软件灵活而强大。 |
| 一旦他们签署了这项新功能,现在 |
| 可在我们的下一个软件版本中获取。 |
| 现在让我缩小范围,向您展示整个过程。 |
| 这是很多步骤。 我们真的为所有这些做所有这些吗 |
| 我们的软件有变化吗? 信不信由你,我们愿意。 但是这个 |
| 流程的规模很大,具体取决于 |
| 工作。 如果我们有一个非常简单的明显错误,我们将逐步 |
| 通过此过程,但我们会很快做到。 |
| 另一方面,如果我们有一个非常复杂的新功能, |
| 在此过程的每个步骤中,我们都将放慢速度。 |
| 我们会花时间并多加注意,以确保 |
| 我们做对了。 |
| 现在,任何需要时间的东西都会花费金钱,那为什么会这样呢? |
| JMP是否愿意将这笔钱用于软件质量? |
| 原因很简单。 我们为自己的工作感到自豪,我们 |
| 想要生产出好的产品。 |
| 下一个原因是不太理想化的。 我们知道 |
| 无论我们有什么问题 |
| 过程,在我们的产品中,如果找不到它们,我们的 |
| 客户会这样做,但这对业务不利。 所以我们 |
| 希望将其最小化。 |
| 现在没有任何流程可以交付 |
| 绝对完美。 因此,我们真的邀请您继续参与 |
| JMP社区的成员。 转到community.jump.com,让我们 |
| 知道JMP Live是否有任何问题,如果它不起作用, |
| 您认为应该的方式,或者您想要的任何新事物 |
| 将来看。 |
| 这种现实世界的反馈对我们来说非常宝贵,并且 |
| 我们真的很欢迎。 |
| 这就是我今天为您准备的一切,但我真的希望 |
| 您将享受其余的探索体验。 谢 |
| 你。 |
最佳峰会数据访问与操作电子海报质量与可靠性