您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

软件工程,必须跨越的四大门槛

时间:2022-04-04 14:36:16  来源:CSDN  作者:

作者 | Oto Brglez

译者 | 弯月

出品 | CSDN(ID:CSDNnews)

在软件开发中,总会遇到一些不同的难题。在本文中,我将介绍一些关键的主题,由于这些领域的“投资”很难短时间内在ROA/KPI/OKR仪表板上看出成效,远远比不上那些“客户非常喜欢”的闪亮新功能,因此常常被忽视、遗忘或排除在外。

软件工程,必须跨越的四大门槛软件工程,必须跨越的四大门槛

 

复杂性

第一个摇摇欲坠的“支柱”就是复杂性。在做技术规划时,我们常常会忽略复杂性引发的各种问题。虽然只是添加了一个小小的库,然而其背后引入的依赖性却无法预知。很多人会因为患得患失而不断添加各种微服务,然而这会引发一系列的后续工作:部署、版本控制、发展,乃至逐步淘汰。不仅如此,这也会加剧组织的复杂性:随着产品、团队和公司的发展,组织成员、文档、利益相关者等的数量也会增加,导致组织的灵活性降低。

在考虑复杂性时,你还应该想到另一个可怕的问题:每个工程师每天都在构建功能,但这些构建工作都是正确的吗?就目前来看,这些构建工作都是正确的?那么,再过两年、三年、五年乃至十年,还正确吗?该问题的回答越复杂,你就越应该感到害怕。我们应该通过良好的需求定义、明确的目标和持续的“简化”来对抗复杂性。

在谈论和思考复杂性时,应该采用记录时间的方式:记录下为了支持某些功能而浪费的小时数,记录下为了让 X 进入生产环境而不得不在 Y 上浪费的小时数。还有为了寻找与 Z 相关的信息而花费的时间。总的来说,我们不仅要知道需要什么,还要知道为什么需要。

软件工程,必须跨越的四大门槛

 

技术负债

这就引出了我们的第二个“支柱”,技术负债不仅会破坏士气,影响计划和截止日期,而且在极少数情况下还会导致整个组织瓦解。每个项目,每个组织都有技术负债,就是因为他们不愿意谈论这个话题,而且即便谈论也是因为延误项目而受到指责或以此为借口。

当然,你可以打一个补丁,然后再打另一个补丁,不断累加。你可以调整界面,以便进度条在屏幕上多停留几秒钟;也可以将负载均衡器的超时时间延长至几分钟,让服务“消化”有效负载;甚至可以用另一个服务打包整个服务。

这些不恰当的解决方案确实可以争取一些时间,而且很多产品,尤其是年轻的产品,都采取了这样的措施。然而,你必须做到心中有数,这些都是技术负债,最终仍然不得不偿还。不偿还这些债务,就会威胁到团队和组织。技术负债是一种风险,尤其是当你身处管理职位时,必须时刻关注技术负债。

你需要记录并公开讨论技术负债,向其他工程师解释为什么某些实现采取了蹩脚的做法。此外,还需要与管理层沟通,向他们澄清技术负债引发的各种问题:收入损失、系统停机、开发周期延长、错误和 bug 频发等等。

软件工程,必须跨越的四大门槛

 

资源

这个“支柱”比较显而易见,且不同的组织有不同的称呼:资产、人员、基础设施、构建产品所必需的元素等等。我们经常讨论将来的计划,比如我们需要招聘 50 名工程师、20 名数据科学家,我们需要扩大云预算、购买新的 SaaS 服务等。

然而,我们应该多花些时间思考如何留住现有的人员、利用现有的服务,并以更有效的方式利用我们的资源。

从风险的角度来看,培养团队内现有的专家比招募新成员的风险更小,尤其是在当前。尝试新技术意味着,你的技术栈中将出现一条你不知道如何驯服的“猛龙”。

我建议多花些时间认为思考如何利用当前的资源,以及如何提升他们的价值和性能。

软件工程,必须跨越的四大门槛

 

实验

我很喜欢这个“支柱”。实验有一种特殊的力量。然而,很多组织都会忘记实验,或者更直白的说,他们会严格限制实验和创新,他们希望“一切照旧”,甚至还有人说“被迫如此”。

我希望鼓励每个人勇于尝试以前从未接触过的框架和技术,同时也希望每个人都能积极地想办法解决符合组织愿景和挑战的难题。

作为一名工程师,你应该积极地向管理层提出有关公司如何创新和提高竞争力的问题。作为管理层,你应该多投入一些时间和资源开展相关的活动,思考如何将一些不成熟的想法变成出色的解决方案。

软件工程,必须跨越的四大门槛

 

总结

当然,对于各个组织、项目或产品来说,关键性的支柱肯定不止这四个。常见的还有优先级、预算、销售等等,但是我认为这些支柱能够让组织保持良好的发展,而且还能帮助组织保持领先地位。

参考链接:

https://www.linkedin.com/pulse/four-dusty-pillars-software-engineering-oto-brglez/



Tags:软件工程   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
生成式人工智能潜力的释放:软件工程师的MLOps和LLM部署策略
译者 | 李睿审校 | 重楼生成式人工智能最近的爆发标志着机器学习模型的能力发生了翻天覆地的变化。像DALL-E 2、GPT-3和Codex这样的人工智能系统表明,人工智能系统在未来可以...【详细内容】
2023-12-18  Search: 软件工程  点击:(122)  评论:(0)  加入收藏
计算机科学与技术考研方向:软件工程薪酬高,人工智能前景好!
一、计算机科学与技术考研方向的概述计算机科学与技术是一门涵盖了计算机硬件和软件的学科,它研究计算机系统的设计、实现、应用以及与其他学科的交叉。考研方向则是指该学科...【详细内容】
2023-11-19  Search: 软件工程  点击:(100)  评论:(0)  加入收藏
软件工程的核心问题并非是编程
【CSDN 编者按】本篇文章介绍了作者在软件工程领域中遇到的一些常见问题,以及他使用的一些问题解决方法。作者分享了如何定义问题、分析问题、设计解决方案、实现解决方案、...【详细内容】
2023-08-03  Search: 软件工程  点击:(251)  评论:(0)  加入收藏
软件工程师年薪930万!谷歌薪资大揭秘,劈柴15.6亿历史最高
硅谷大厂中,谷歌员工称得上是科技行业中收入最高的一些人。据统计,谷歌工程师在2022年总薪酬中位数为279,802美元(约200万人民币),但这仅是基本工资。如果计入股权和奖金,他们的收...【详细内容】
2023-08-02  Search: 软件工程  点击:(383)  评论:(0)  加入收藏
谷歌公开自家「AI+软件工程」框架DIDACT:数千名开发者内部测试,用了都说生产力高
新智元报道编辑:LRS【新智元导读】AI时代的软件开发流程是什么样的?任何一个大型软件都不是一开始就构思完善的,而是通过开发人员的一次次改进、编辑、单元测试、修复构建错误...【详细内容】
2023-06-07  Search: 软件工程  点击:(306)  评论:(0)  加入收藏
来自谷歌的传奇和薪酬最高的软件工程师
“谷歌搜索在 2002 年下降了几个小时;Jeff Dean 手工处理了所有查询,检查质量翻了一番。”- Jeff Dean Facts。 当然,这不是真的。杰夫·迪恩 ( Jeff Dean ) 的许多流行...【详细内容】
2022-10-04  Search: 软件工程  点击:(531)  评论:(0)  加入收藏
软件工程,必须跨越的四大门槛
在软件开发中,总会遇到一些不同的难题。在本文中,我将介绍一些关键的主题,由于这些领域的“投资”很难短时间内在ROA/KPI/OKR仪表板上看出成效,远远比不上那些“客户非常喜欢”的闪亮新功能,因此常常被忽视、遗忘或排除在...【详细内容】
2022-04-04  Search: 软件工程  点击:(219)  评论:(0)  加入收藏
2022 软件工程师状况报告:Go 最抢手|开发者最“嫌弃”PHP、Swift
近日,知名人才招聘网站 Hired 公布了“2022 年软件工程师状况报告”。 “2022 年软件工程师状况报告”基于对 2020 年 1 月 - 2021 年 12 月间收集的 2000 份调查回复进行整...【详细内容】
2022-03-25  Search: 软件工程  点击:(398)  评论:(0)  加入收藏
软件工程专业的就业方向有哪些?
软件工程专业有Web开发、移动终端开发、大数据开发、计算机系统工程师、视频开发工程师、计算机软件应用工程师等就业方向。第一,Web开发。Web开发包括前端开发和后端开发。...【详细内容】
2021-10-19  Search: 软件工程  点击:(343)  评论:(0)  加入收藏
硅谷软件工程师真的都年薪百万吗?
有一种说法,硅谷程序员是不是收入动则就是年入百万呢?事实上,确实是这样,硅谷程序员和我们国内程序员一样,在美国也属于高收入群体,年入百万属于大概率的事件。大概率到一个什么...【详细内容】
2021-08-11  Search: 软件工程  点击:(1147)  评论:(0)  加入收藏
▌简易百科推荐
Meta如何将缓存一致性提高到99.99999999%
介绍缓存是一种强大的技术,广泛应用于计算机系统的各个方面,从硬件缓存到操作系统、网络浏览器,尤其是后端开发。对于Meta这样的公司来说,缓存尤为重要,因为它有助于减少延迟、扩...【详细内容】
2024-04-15    dbaplus社群  Tags:Meta   点击:(2)  评论:(0)  加入收藏
SELECT COUNT(*) 会造成全表扫描?回去等通知吧
前言SELECT COUNT(*)会不会导致全表扫描引起慢查询呢?SELECT COUNT(*) FROM SomeTable网上有一种说法,针对无 where_clause 的 COUNT(*),MySQL 是有优化的,优化器会选择成本最小...【详细内容】
2024-04-11  dbaplus社群    Tags:SELECT   点击:(3)  评论:(0)  加入收藏
10年架构师感悟:从问题出发,而非技术
这些感悟并非来自于具体的技术实现,而是关于我在架构设计和实施过程中所体会到的一些软性经验和领悟。我希望通过这些分享,能够激发大家对于架构设计和技术实践的思考,帮助大家...【详细内容】
2024-04-11  dbaplus社群    Tags:架构师   点击:(2)  评论:(0)  加入收藏
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(5)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(9)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(16)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(14)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(9)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(14)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(10)  评论:(0)  加入收藏
站内最新
站内热门
站内头条