案例研究--Carson Whitsett 如何使用 OmniGraffle
在本期的《The Omni Show》节目中,我们将与Carson Whitsett(Carson Whitsett)进行对话,他是一位多方面的软件开发人员,也是著名的球拍游戏 MacBrickout 的幕后推手。Carson 经营着 Ditty 实验室,他分享了自己在软件和固件编程以及硬件工程方面的丰富经验,包括在医疗设备、打印机、机器视觉技术和移动应用开发方面的工作。他讲述了自己从在音乐商店修理电子产品到成为 iOS 应用程序开发专家的历程,并为 Dexcom ONE 应用程序和 GoPro 订阅服务等著名项目做出了贡献。
Andrew J. Mason 您正在收听的是 The Omni Show,我们在这里与围绕 Omni Group 获奖产品的精彩社区进行交流。我是 Andrew J. Mason,今天我们将了解 Carson Whitset 如何使用 OmniGraffle。欢迎大家收看本期的 Omni Show。我是 Andrew J. Mason。今天,我们请到了 Carson Whitset。Carson创造了 Mac Brickout、Ball 和 Paddle 游戏。他经营着一家独立的软件开发公司 Ditty Labs,在那里他们负责各种编程项目,并拥有丰富的硬件和固件知识。我们将对此进行深入探讨。今天,我们一起学习他如何使用 OmniGraftle。Carson,感谢你今天加入我们。
Carson Whitsett: 嘿,很高兴来到这里。
Andrew J. Mason: 嗯,Carson,在我们进入 OmniGraftle 之前,我很希望你能分享几段你迄今为止参与的工作。你有一些非常令人印象深刻的客户工作,我说的是非常令人印象深刻。这只是个人偏见。我在学校学的是计算机科学,但没能通过汇编语言编程。我就是坚持不下来。任何能编写固件的人,天哪,我都很敬佩你。我很想了解更多关于你们合作过的客户和项目的情况。
Carson Whitsett: 是的,我做过很多固件编程和软件。在 2000 年代早期到中期,我一直在做硬件和固件工程,我曾开发过几种不同的医疗设备。我制造过打印机,做过一些机器视觉方面的工作。我还制造过一台触摸屏投票机。我做了大约 10 年。最近在做应用程序方面的工作时,我与 Dexcom 合作开发了 Dexcom One 应用程序。我们是一个由四名工程师组成的团队,从零开始开发了这款应用,并将其部署到了 App Store。我还与 GoPro 合作开发了 GoPro+ 订阅服务,该服务至今仍在使用。我与一家名为 Neuroverse 的公司合作,开发了一款可穿戴脑电图设备。我负责该设备的固件以及 iOS 应用程序。
Andrew J. Mason: 是的,跟我谈谈游戏编程方面的问题吧,因为我是在 80 年代长大的,所以每个圣诞节收到任天堂的孩子都会想,有一天他们长大后会成为任天堂程序员、任天堂测试员或乐高人。我想,很少有人最终真的把它作为职业道路,或者至少作为一种深入的爱好道路。跟我说说你是怎么意识到这是我想走的方向的?
Carson Whitsett: 我小时候是在 20 世纪 70 年代长大的,所以我经历了电子游戏时代的黎明。当时有 Magna box odyssey,有 Atari 2600,还有电视、clicovision,所有这些东西都很新。你去朋友家做客,他们有一样东西,你有另一样东西,你就可以去玩游戏,一切都非常有趣,然后是街机,那是经典的蜈蚣、Joust、Tron,你说得出来。这些游戏都是前所未有的新颖创意。我想,这非常吸引人。当然,当时我还太小,不会给这些东西编程,但我对它们非常感兴趣,对它们的工作原理也非常感兴趣。我小时候经常把东西拆开,看看里面有什么,这些东西是怎么运转的。我觉得在我很小的时候,我就需要探索工程师和技术方面的东西。
Andrew J. Mason: 伙计,我知道每一个听众,比方说,30 岁以下的人,可能都还记得当时电子游戏或共享软件交易市场的火爆。你有软盘,你有任天堂或乐高的游戏盒,而且数量有限,所以真正拥有游戏盒的人才能玩到游戏。模式识别也是如此。天哪,我还记得在某些圈子里,我因为能在一个季度内把《Galaga》玩到 30 级,而在街机柜前闲逛了那么久,还真得到了一些街头拥簇。是啊,现在回想起来,我也不知道自己是否应该为此感到自豪,但还是有模式识别的一面。
Carson Whitsett: 他们意识到人们在开发模式,所以他们会推出新的 RAM 芯片来改变一下,这样模式就不再起作用了。
Andrew J. Mason: 伙计,这我可不知道。好吧,这有点邪恶,但也是公司的一个非常棒的想法。我们换个话题 跟我谈谈 Omni 集团。Omni Group 作为一家公司,在软件方面已经有相当长的历史了。您第一次与该公司或某款软件互动是在什么时候?请跟我谈谈你的那段经历。
Carson Whitsett: 是的。毕业后,我在一家音乐商店找到了一份电子维修的工作。我不知道自己在做什么,但我在 ITT 技术学院学过电子技术,所以我想这就是我的出路。我在那里工作了大约五年。一开始,我摸索着前进,但到最后,我已经进行了 5000 多次元件级的电子维修。我很擅长修理东西。之后,我继续前进,最终在工程部门找到了一份工作,从事硬件和固件工程。当时的工作都是基于 Windows 的。我觉得有必要提前规划我的设计。我当时已经开始做流程图和图表了。我用的是什么工具?是 Vizio。我用的是 Windows 上一个叫 Vizio 的工具。现在我在 Mac 上进行 iOS 应用程序开发或游戏开发,我正在寻找一个可以使用的同等工具,OmniGraffle 出现了。我立刻就爱上了它。这就是我工作所需要的。我就是这样认识它的。
Andrew J. Mason: 太棒了。让我暂停一下 OmniGraffle,然后快速绕到 Mac 分组本身,因为我刚刚意识到,不是每个人都知道这个游戏,但也不是每个人都了解这个宇宙及其周围的规则。如果你不介意的话,请给我们介绍一下这个宇宙中游戏的色彩和背景。
Carson Whitsett: 好的,那么 Mac Breakout。早在上世纪 70 年代,雅达利就推出了 “突围 ”游戏,在雅达利 2600 上的表现非常出色。之后他们又推出了《超级突围》。我爱上了那些游戏 然后在街机上,塔托推出了《Arcanoid》,这是《霹雳》的类固醇游戏。游戏里有很多怪物,它们会向下旋转,挡住球的去路。我一看到就着迷了 那时候我所有的硬币都用在了街机上。90 年代初,我决定自学编程。我买了一台 Macintosh 2. Ci3,这是当时最热门的电脑,然后开始学习 C 语言编程。我觉得球拍类的闯关游戏会是一个有趣的挑战,于是我开始编码。我大概做了一年,最后把它作为共享软件发布了。这款游戏非常简单。它只是一堆砖块、一个弹来弹去的球和不同的关卡,仅此而已。许多年后,也许是 90 年代末期,我重写了 MacBrick。那时我学会了 C++,也有了 OpenGL。
Carson Whitsett 我不再自己用处理器绘制所有图形,费尽心力地绘制每一个像素,而是使用 OpenGL,腾出了一些时间,这意味着我可以在游戏中做更多事情。现在我在游戏中加入了向下的气泡,就像《Arcanoid》中的几何图形一样。我还在底部的沙子里添加了一个小动物,它看起来像个萝莉。他会在沙子里来回走动。有时候,如果你把球扔到球拍下面,球丢了,那个小动物,他叫 “乌姆费特”,球会从他的壳上弹起,他就会救你的球。你可以用不同颜色的球打它,让它在沙子里挖洞找东西。掉下来的胶囊会赋予你不同的能力。MacBrick 里有很多东西。隐藏的水果和蔬菜、音乐砖、激光、炸弹球,我可以一直说下去。随着时间的推移和许多不同的迭代,我不断地添加新的内容。
Andrew J. Mason: 我认为这一切的奇妙之处在于,我有一种数字盆栽树或沙花园的感觉。除非是多年的心血,否则你不可能做到这一点,而且你花的时间越多,它就会变得越好、越特别。真是一个很酷的项目。谢谢你与我们分享。我觉得这很棒。跟我说说 OmniGraftle 和你的软件开发这两个世界是如何碰撞在一起的。你能给我们举一些用户流程的例子,或者 OmniGraftle 在你的开发过程中可能出现的一些具体方式吗?
Carson Whitsett: 对于我做的客户工作来说,OmniGraftle 是最有价值的。我会做 iOS 应用程序。我想我最近刚刚完成了在 App Store 上发布的第 60 个应用程序。OmniGraffle 在其中发挥了很大作用,因为要制作一个应用程序,你必须非常有条理。一个应用程序中有很多屏幕。我不知道你是否听说过 Figma 这个工具。很多设计师都会使用 Figma 来布局屏幕。以前,当我刚开始做应用程序的时候,我会把这些设计拿过来,然后开始编码。因为作为一个编码员,你只想编码,对吗?这样做的问题是,你会在没有完全理解设计的情况下编码。又或者,设计已经完成,但还没有完全充实。现在你把东西编好了,却又要撤销这些代码,把那些不起作用的代码删掉,因为这些代码不是设计的样子,也不是设计变更的样子。我需要找到一种方法,让这个过程变得更快。在 Omni Graffle 的帮助下,我所要做的就是在 Figma 中提取设计。
Carson Whitsett: 我会把所有这些屏幕或屏幕截图放到 OmniGraffle 中。然后我会链接所有按钮,用户可以点击的任何东西。如果这个按钮指向另一个屏幕,就会有一条线从这个按钮指向另一个屏幕。然后在这条线上,我会放一个小的屏幕过渡。你可以看到,哦,这个屏幕是应该从底部往上滑动,还是应该从侧面滑动?我还会做的另一件事是,一旦我在 OmniGraffle 中完成了整个设计,我就会仔细检查它。如果用户点击了这个按钮,但它并没有......会发生什么?
Andrew J. Mason: 会不会是为了查找错误或意外行为?
Carson Whitsett: 是的。基本上,设计者不会考虑到所有事情,利益相关者也不会考虑到所有事情。如果我们在所有事情都考虑周全之前就开始编码,那么我们就会遇到这样的问题:要么修改现有代码,这既费时又费钱;要么删除代码并添加新代码。在开始编写第一行代码之前,你需要对设计进行 100% 的充实。我会在图表上贴满红色贴纸。每当我发现有什么地方不合理、不清楚或者还没有考虑清楚,我就会在那里贴上红色的贴纸。然后,我会与设计团队和利益相关者坐下来,我们会逐一检查这些红色贴纸,并尝试将它们全部清除。直到每一个红贴都被清除后,才开始编码。这样做可以节省大量时间,因为现在一切都已准备就绪,你只需开始编码,就能清楚地知道需要做什么。图表非常清晰,你可以把它展示给其他开发人员,让他们熟悉代码。
Carson Whitsett: 你可以把它展示给质量保证人员,让他们知道应用程序应该如何运行,以及他们应该测试什么。可以给市场营销和客户体验人员看,让他们知道应用程序应该如何运行,这样他们就能在市场营销材料中或与客户交谈时解释这一点。您还可以向首席执行官展示,让他们了解应用程序的简化工作方式。在这个流程中,我还会加入逻辑。你不仅要有屏幕和屏幕的走向,还要有小流程图来说明应用程序如何决定它需要做的事情,比如它什么时候需要去后台获取一些数据。把所有这些东西都集中在一个地方,现在整个团队都可以去看一看,这实在是太强大、太有价值了。
Andrew J. Mason: 说实话,Carson,你说得太好了。我几乎把它比作敏捷人士所做的软件冲刺的可视化版本。但是,你有了这个外部工件,每个人都可以看着它,指向一个特定的屏幕,然后说,好吧,那边那个按钮,当有人点击它的时候,我们能就点击那个按钮会发生什么达成一致意见吗?
Carson Whitsett: 想想看,比如说我被另一个项目抽调了,我在另一个项目上工作了六个月,然后我必须回到这个项目上。通常情况下,你要做的是花一些时间去摸索代码。你必须仔细阅读代码,了解它们是如何组合在一起的。现在我要添加这个东西,我要确保我添加的这个东西不会破坏现有的东西,但我真的不记得它是如何组合在一起的了。我可以把我制作的 OmniGraftle 流程拿出来看看,五分钟内就能上手。现在我可以说,好了,我知道我需要做什么了,我知道我需要在哪里添加了。
Andrew J. Mason: Carson(Andrew J. Mason Carson),我觉得你是问这个问题的最佳人选。最近,我对人工智能副驾驶的世界非常好奇,它能帮助你以更自然的英语方式编码。如果有人看到你正在做的事情,喜欢你所做的工作,然后说:"你知道吗?我想我也要像Carson那样做。但如果让他从今天开始,他可能还是会,也可能不会翻开那本黑色的编程大书,翻阅其中的章节,从头开始学习汇编级别的编程语言。请跟我们谈谈你眼中的软件开发前景。如果有人刚刚接触软件开发的整个思维过程,你认为对他来说最好的方法是什么?
Carson Whitsett: 我有一个很好的例子。我正在为 MacBrick 的 30 周年纪念重写它。我是在一个全新的游戏引擎 Unity 3D 中完成的。因为要从 2D 游戏变成 3D 游戏,我必须用 3D 重新制作所有美术资产,还要学习 Blender。要做的事情太多了。一次要啃下一大口。我发现自己正处于这种情况,我觉得我真的需要一位导师来帮助我弥补这些知识差距。我有很多编程经验,也有很多制作游戏的经验。但在学习这些新工具时,我知道自己想做什么,只是不知道该怎么做。这时,我就会求助于人工智能,比如 ChatGPT-4,我可以问它:“这是我要做的事情,它就会告诉我:”这就是你要做的事情。以我的经验,我可以看着它说:"好吧,这完全说得通,或者,哦,这不......它没明白。我认为这很重要。你不能只相信人工智能给你的信息。你必须清楚地知道它是如何工作的,尤其是在向它提出编码问题时。
Carson Whitsett: 但更多的时候,它给我的结果是我根本没有想到的。我想,哦,当然,这完全说得通。它极大地加快了我开发这款游戏的速度,因为我本来需要花大量的时间去谷歌、翻阅文档、询问他人、加入用户群,但现在这些都不需要了。我只需去问人工智能,它就会给我答案,然后我就可以对它进行评估,看看它是否适合我想做的事情。
Andrew J. Mason: 很好的建议。是啊,这是个很好的建议。请跟我谈谈,在您目前的职业道路上,您会采取哪些不同的做法。你的职业生涯弧线很美,但毫无疑问,一路走来也经历了一些挫折,如果你想再试一次,你会怎么做?我不认为我会这样做。也许这对那些在职业道路上走得更早的人来说会有启发。
Carson Whitsett: 我在 2010 年首次创办 Diddy Labs 时,我们的目标是为 iPhone 制作应用程序。当时的 iPhone 还很新,应用开发还是狂野的西部。我还记得,一开始我们很难找到客户。但当我们找到客户时,我们会告诉客户,我们会以这个价格为您开发应用程序。这基本上是一个固定投标合同。每次我们赔钱的时候,我们总是给项目出价过低。错误在于,我们没有花足够的时间深入研究需要完成的细节。我们想,哦,这是一个登录界面。这应该需要一天时间。我们并没有真正考虑过登录失败会发生什么,或者如果没有网络连接会发生什么,或者登录过程中可能发生的各种情况,而这些我们都没有考虑到,我们最终需要免费解决这些问题,因为我们已经出价了,不管我们要为此收取多少费用。实际上,我在 LinkedIn 上写过一篇关于这个问题的文章,叫做《按时准确地完成估算》(Estimate Accurately Complete on Time),其中解释了我在创办新公司时所经历的挣扎,并试图达到这样一种境界,即客户对他们所支付的费用感到满意,而开发人员,也就是我们,对我们所收取的费用感到满意,同时又不至于 “鸟尽弓藏”,双方都不至于 “焦头烂额”,而且每个人都对最终结果感到满意。
Carson Whitsett: 这将是一篇值得一看的好文章,它将详细介绍我是如何解决这个问题的,而且我再也不会犯这样的错误了。
Andrew J. Mason: Carson,在我们放你走之前,还有一个问题。我想听听你工作背后的动力是什么?你显然对自己的工作充满热情。我们很荣幸 Omnigraph 能在这一过程中发挥作用,但很明显,除了日常工作之外,还有更多的事情在推动着你。也许你可以深入了解一下。在一天结束的时候,我认为这就是我的动力,这到底是什么?
Carson Whitsett: 我认为要避免无聊。我喜欢无中生有。一本书或一部电影,从头到尾只有一条路,而且总是一成不变。但游戏是互动的,每次的结果都可能不同。作为一名创意人员和个人开发者,我可以在这些不同的学科之间跳来跳去。我可以做一会儿编程。我可以做游戏设计。我可以深入研究游戏的心理学。我可以在前一分钟录制音效。我可以谱曲,创作 2D 和 3D 作品。这永远不会无聊。我可以随时戴上不同的帽子,去做别的事情。我非常喜欢这种工作方式。我认为这是让我保持激情的原因,因为我总是有事可做。如果我不喜欢做这一件事,我还可以做很多其他不同的事情,使用大脑完全不同的部分。
Andrew J. Mason:-Carson,这真是太有趣了。我们很荣幸能成为你人生旅途中的一部分。大家怎样才能与您保持联系,了解更多关于麦克布里康特的信息,听到更多关于您的项目的信息,以及看到您在做什么?
Carson Whitsett: 他们可以在 X Twitter 上找到我。我是Carson Whitsett。你可以在 LinkedIn 上找到我。如果你喜欢钢琴曲,可以在 Spotify 上听我的钢琴专辑。如果你找到了 Carson Whitset Jr.,那就是我的父亲,他在那里也有一些很酷的音乐。正如我之前提到的,我目前正在重写 Unity 中的 MacBrick。你可以通过 Facebook. Com/mcbrickout。我还会在 Twitter 上发布一些东西。我在 Twitter 上可能最活跃。
Andrew J. Mason: 哦,对了,今天是Carson的生日,祝你生日快乐。
Carson Whitsett: 谢谢。
Andrew J. Mason: 这太棒了。再次感谢你,Carson,感谢你加入我们。这真是太棒了。
Carson Whitsett: 谢谢你,Andrew。我很高兴参加这个节目。
京ICP备09015132号-996 | 网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155
© Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室