翻译 | 我在软件行业45年学到的东西

原文地址: https://www.bti360.com/what-ive-learned-in-45-years-in-the-software-industry/

借助的翻译工具:DeepL 翻译,Google 翻译、维基百科

英语水平有限,如有翻译错误的地方,欢迎指出

后续翻译修改地址:https://www.yuque.com/gaohanghang/zxdcmz/kpsp0d

BTI360(弗吉尼亚阿什本的一家软件公司)的队友乔尔·戈德堡(Joel Goldberg)在软件行业工作了超过四十年后,最近退休。当他离开时,他与我们的团队分享了他在职业生涯中学到的一些经验教训。在他的允许下,我们在这里分享他的智慧

回顾软件行业的四十年,我为之震惊。我从打孔卡(又称穿孔卡霍尔瑞斯式卡IBM卡,是一块纸板,在预先知道的位置利用打洞与不打洞来表示数字消息)开始了我的职业生涯,并在云计算时代结束了。尽管发生了所有这些变化,但在我的整个职业生涯中对我有帮助的许多原则并没有改变,并且仍然很重要。在我离开键盘之前,我想分享我从软件工程师的职业生涯中学到的六个想法。

1. 当心知识的诅咒

当你知道某件事的时候,几乎无法想象不知道那件事是什么样子。这就是知识的诅咒,它是无数误解和效率低下的根源。对复杂事物感到适应的聪明人尤其容易受此困扰!

如果你不防范知识的诅咒,它有可能混淆所有形式的交流,包括代码。你的工作越专业,你的沟通方式就越有可能让不熟悉的人无法理解。抵抗知识的诅咒。努力理解你的受众。试着想象一下,如果你第一次了解你正在沟通的内容,会是什么样子。

2. 专注于基本原理

技术不断的变化,但是一些软件开发的基本方法超越了这些趋势。这六个基本原理在很长一段时间内仍将持续存在。

  • 团队合作 - 优秀的团队可以打造出优秀的软件。不要将团队合作视为理所当然。
  • 信任 - 团队间的信任能够促进发展,努力成为一个值得自己和他人信赖的人;
  • 沟通 - 诚实和主动地沟通。避免知识的诅咒。
  • 寻求共识 - 花时间让你的整个团队都参与进来。让讨论和分歧带给你最好的解决方案。
  • 自动化测试 - 经过良好测试的代码可以让你的团队充满信心地快速前进。
  • 整洁、易懂、可浏览的代码和设计 - 把下一个将接手你代码的工程师当成你的客户。构建你的继任者在阅读,维护和更新时不会遇到任何麻烦的代码。

3. 简单

与复杂性作斗争是永无止境的。解决方案应尽可能简单。假设下一个维护你代码的人不会像你那么聪明。当你可以使用更少的技术时,请这样做。

“设计师知道自己的设计已经达到完美,不是因为再也没有东西可添加,而是再也没有东西可以拿掉了。”

Antoine de Saint-Exupery

4. 首先寻求理解

斯蒂芬·科维(Stephen Covey)的七个习惯之一是:“首先寻求理解别人,然后再寻求被理解”(“Seek First To Understand, Then To Be Understood.”) 。这条格言对我成为一个好的倾听者和团队伙伴的帮助比任何其他建议都大。如果你想影响他人并与之有效合作,你首先要理解他们。在你开始尝试表达自己的想法之前,先积极倾听,了解他们的感受、想法和观点。

5. 当心锁定

始终会有下一个热门生产力产品,该产品将有望彻底改变软件的构建方式。电脑辅助软件工程(CASE)工具,COTS,企业资源计划产品(ERP)例如 Peoplesoft 和 SAP ,甚至是 Ruby。如果你接受他们的整体发展理念,他们就会声称在成本和时间上都有惊人的减少。高昂的前期成本或可能要遵守的约束并不总是那么明显。锁定过去主要发生在供应商中,但现在也可以发生在框架中。无论哪种方式,锁定都意味着巨大的变更成本。做出明智的选择。新的并不总是更好!

概念补充:

供应商锁定:

供应商锁定是指切换到其他供应商的成本非常高、以至于客户不得不继续使用原始供应商的情况。由于财政压力、人手不足,或需要避免业务运营中断,客户可能在产品或服务质量不佳时被“锁定”。

想象一个办公室由一个咖啡供应商提供咖啡,并且该供应商要求办公室中只有他们出售的特定咖啡机。现在想象一下,该供应商提供的咖啡质量急剧下降。转换到新的咖啡供应商将意味着他们购买的旧机器变得无用,因为转换可能需要购买新的咖啡机。鉴于更换所有咖啡机会很麻烦,成本也会增加,办公室的工作人员就被锁定在与老供应商的协议中,被迫饮用劣质咖啡。

Apple 在服务初期将消费者锁定为必须使用 iTunes 就是供应商锁定的真实示例,因为通过 iTunes 购买的音乐只能在 iTunes 应用程序或 iPod 中播放。

6. 当你不适合这个角色时要诚实和承认

在你职业生涯的某个阶段,你可能会发现自己处在一个不适合的角色中。不合适不是性格缺陷,但这是一个你不容忽视的问题。对于这样的困境,可能有不止一种解决方案:你可以进化,或者角色可以进化。关键是要有自知之明,认识到发生了什么,让自己走出不健康的境地。不快乐对谁都没有好处,BTI360 也认识到了这一点。

当我在通用汽车公司时,如果你的下一步行动不是向上管理更多的人或承担更大、更复杂的项目,你就是一个失败者。对许多人来说,这使他们的职业道路变得很悲惨(参见彼得原则)。在 EDS,公司的文化不是这样的。人们在管理岗位上进进出出。从范围更广的角色(如战略规划师)到范围更窄的角色(如 PM 或项目级开发人员),没有任何耻辱感。我是利用这种灵活性的人之一,从技术金字塔顶端的角色转回项目级开发人员。我从来没有回过头来。

最后的看法

在我加入 BTI360 之前,我就对这里的文化有足够的了解,知道这是一个重视我上面所描述的原则的地方。我希望你们每个人都自主的维护强大工程师文化,这将继续使 BTI360 成为创造软件的好地方。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值