本文为 CSDN 翻译
以下是原文:自1989年以来,我一直在软件行业谋生。我很久以前写过代码,但我的职业生涯主要是基于测试、技术写作和管理发布、项目和人员。今天,请允许我讲一个长的故事。我在软件行业工作的第33个周年纪念日是刚刚过去的星期天,也就是7月3日。我会记得这个日期,因为我工作的第二天是带薪假期。我想告诉你我们的行业走了多远,学到了多少。
**初入职场,有人要就行了
这是我工作的第一家软件公司ACD由于公司标志在1996年消失,以下低分辨率Logo标志是我能在网上找到的一切。我工作的第一家软件公司是印第安纳州特雷霍特的应用计算设备公司,和聪明的同事一起工作很开心。我们制造管理电话网络的软件,我们的客户有AT&T、US
Sprint(现在只叫Sprint)、GTE(现在的Verizon),以及包括固定电话公司在内的几家固定电话公司)Ameritech(服务印第安纳州),BellSouth和Pacific
Bell。这些公司主要提供固定电话(业务中的有线)服务,但一些公司也开始参与移动服务。这是一个非常复杂的管理,我们的软件产品也非常复杂。我不是软件工程师,而是技术作家。我给客户写了很多纸质手册,解释如何安装、配置和使用我们的软件。当时软件行业很小。当我获得数学/计算机科学学位证书时,经济正处于衰退期。我没有得到很多编程工作的面试机会,即使面试没有被录用。那年夏天,我住在校园里找工作。但是夏天很快就要结束了,所以我必须回家和父亲住在一起。我根本不想这样做,所以我决定在一家软件公司找其他工作,包括质量保证、支持、IT、任何工作,如保安。我们学校的一位教授认识ACD公司的人向他们推荐了我。公司需要技术作家。我说我很乐意做这份工作,所以他们以每年2.3万美元(今天5.4万美元左右)的价格雇佣了我。令我惊讶的是,我发现我喜欢写作,甚至比写代码更感兴趣,我变得非常擅长向用户解释高技术软件。ACD大楼,现在是Rose-
Hulman风险投资公司所在地 过去软件行业是如何工作的**
我真正想告诉你的是,除了尊重超级聪明的同事,我在那里工作是什么样子的。当时的软件行业和现在很不一样,当时很多理所当然的东西都不存在。虽然已经有了互联网,但是没有网络。软件通过磁带或软盘交付给客户,CD几年后,刻录机还在发生。Java、JavaScript、.NET也不存在。当时常用的语言是C/C 、FORTRAN、Pascal、Ada、Perl、Tcl和Lisp,当然还有COBOL。我在大学里有一份暑期工作Pascal程序员。面向对象的编程虽然存在,但还是小众。当时主要面向对象的语言是Smalltalk。我的一个大学室友在那里Smalltalk这个社区很有名,甚至写了一些关于Smalltalk的书。
软件订阅还没有出现。当时,只要公司提前支付软件的所有费用,他们就可以永远使用他们购买的软件版本,但他们需要再次为软件的重大升级付费。一些聪明的公司在几年内分期付款,但许可证仍然是永久性的。当你把新版本的产品寄给客户时,他们中的大多数人不会立即安装,而有些人永远不会安装。通常他们会说,我们现在使用的版本对我们有好处。这句话是我们在软件支持方面的噩梦。经过迭代,我们公司最终决定只支持最新的四个版本的软件,这让我们的客户感到非常沮丧,但这样做
IT支持的团队非常感激。
当时最好的SDLC(系统生命周期)是瀑布式的,这种模式所包含的所有问题都没有被我们忽视。整个行业都在做长周期的项目,比如需求收集和设计规范需要两个月,然后编码需要九个月,然后测试三个月。现在回想起来,即使我们看到小规模、频繁发布的项目在很多方面都能受益(但大部分都没看到),我们也不能真正做到这一点。因为交付成本很高,频繁的安装也会干扰我们的客户。我们认为软件开发项目应该像制造或建筑项目一样管理。所以我们建立了一个巨大的甘特图,我们把它贴在一堵巨大的墙上,跟踪计划和完成的工作。在编码的第一周,我们会发现一些我们在设计阶段没有想到的事情,我们必须重新规划整个项目,重新打印新的甘特图。那时,我们从未幸免于这种情况,每个项目都是如此。
当代码最终到达时QA当时,测试人员将成百上千 Bug
焦头烂额。在软件到达测试人员之前,他们几乎没有见过这个软件,只是勉强参与设计和研发阶段。由于Bug测试阶段总是比计划时间长。但当时,我们已经向客户承诺了一个交付日期。为了达到承诺的日期,每个版本都会有很多已知的错误。我们将在几周后修复所谓的快速跟踪版本,聪明的客户在快速跟踪版本出现之前学会了不安装之前的版本。因为这一切,这个项目总是成为一个可怕的死亡长征。在发布日期前的几周里,许多人不得不在深夜和周末加班。虽然职业倦怠感很强,但很少有人辞职,因为我们认为这是必须的。不管怎样,没有多少其他软件公司可以投靠,其他公司也有死亡长征。
ACD公司的技术栈(当时我们们还没有这个词)UNIX的C ,即:数字设备公司Ultrix和IBM的AIX。我们的软件在DEC和IBM基于RISC这些机器的尺寸与酒吧冰箱相似。我们在一个又大又冷又有很多机器的机房里开源工作。由于工作地点在特雷霍特的郊区,我们的电力是由农村电力合作社提供的,不是很可靠,这几乎导致每月停电一次。微型计算机按顺序连接,必须按顺序启动。一台机器启动需要10分钟,所有计算机启动需要三个多小时。如果下午2点以后电源闪烁,我们都会回家休息一天。但是没有人能在家工作,因为微型计算机只能在办公室的网络上使用。我认为从技术上讲,把它们连接到互联网上并非不可能,但在家里,我们只能通过拨号访问。这不仅是速度的问题,而且家人也不喜欢电话被你的工作占用几个小时。
每个人的桌子上都有一个工作终端。起初,所有的工程师都使用古代工程师VT100终端,但后来公司花了2000美元买了一个巨大的图形终端,这样他们就可以在那里了X
Windows建立用户界面。当时用户体验设计还没有形成,前端和后端工程没有区别。我们的软件工程师设计了我们的用户界面,但大多数都不擅长。作为一名技术作家,我的桌子上有一个操作System
6的Macintosh
II电脑。(System是MacOS以前的名字)它有8MB内存,当时是一台尖叫的机器。我用一个叫Interleaf编程手册,在Mac使用终端模拟器连接微型计算机。有一场关于文本器的神圣战争。彼时IDE它还没有出现,所以我们都用文本器编码。我坚定地站着Emacs但我的大多数同事都喜欢阵营Vi。我们的终端在连接到微型计算机的令牌环网络上。由于信息流经网络上的每个节点,令牌环网络只在节点链完整时才发挥作用。当我决定重新安排我的小隔间时,我不知道。当我拔掉终端移动它时,我损坏了一半的网络。那天,我被大家抛弃了。AIX和Ultrix它们的底部硬件非常不同,我们的代码是由IF
ULTRIX句子形成的一团糟。有时我们必须独立编写整个子程序和函数AIX和Ultrix版本。我们必须编译两次代码,一次AIX上,一次是在Ultrix上。1995年Java它完全改变了游戏规则。你是说我们可以赖操作系统或硬件系统或硬件的代码库IF,没有单独的例程,任何可以运行的例程JVM机器运行?这是巫术!
当时软件行业的文化远没有现在多元化。ACD每个软件工程师都是35岁以下的白人。没有色人种,也没有移民。在外面任何地方工作都是不安全的。我知道我团队中的一位技术作家是同性恋,但这只是因为我们已经成为朋友,他决定冒险向我坦白。
软件工程团队有两个头衔。软件工程师和高级软件工程师。这在当时的行业中是典型的。考虑晋升为高级软件工程师,必须至少有10年甚至15年的软件工程经验。当时高级标准也比较高。当时高级工程师的技术和经验更像是今天的首席工程师。总之,我在ACD我很开心,喜欢在那里工作。然而,我们可能有十几个客户,因为,我们可能有十几个客户。我们与US
Sprint关系一直不稳定,有一天我们惹恼了他们,他们取消了合同,让我们起诉他们。这笔收入的损失让我们陷入困境,也是ACD走向衰败的开始。我不想在特雷霍特失业,所以我在印第安纳波利斯找到了工作,搬回了家。和现在一样,印第安纳州的软件开发大多集中在印第安纳波利斯。
斗智斗勇的工作
让我告诉你ACD它涉及的最后一个故事US Sprint公司。US
Sprint该公司对我们的软件发布了太多的错误感到愤怒。他们给我们发了一份清单,列出了他们想要修复的所有错误,他们想在周一之前修复,否则他们会购买竞争对手的产品,放弃我们。工程团队日夜工作,试图修复这些错误。他们一直工作到周末,但到周日早上,他们仍然没有解决几个特别棘手的错误。我们必须用磁带盒运输代码。联邦快递的最后期限是周日,工程师们还没有完成。有人眼前一亮,想出了一个绝妙的主意:我们会给它US
Sprint公司发送了一盘空白磁带,并附上了我们一贯的信件,列出了发行中的变化。星期一,我们收到了US
Sprint该公司的电话,对方说,无论他们如何尝试,他们都无法从我们寄给他们的磁带中加载软件。此时,我们的支持部门已经准备好了。"哦!对不起,一定有什么问题!我们今天会给你发另一盘磁带。"工程师们修复了最后两个错误。我们在新的磁带上写下了真正的维护版本,并将其发送给了它US
Sprint公司。于是ACD公司又活了下来,继续战斗。
关于计算机不能拿到毕业证书和我,计算机毕业 33 年,软件行业不写代码谋生的主要内容已经完成!
毕业证样本网创作《计算机不能拿毕业证吗(我在软件行业工作的第33个周年纪念日)》发布不易,请尊重! 转转请注明出处:https://www.czyyhgd.com/714129.html