发现软件开发中过度设计的陷阱,揭示其背后的原因,并学习如何避免其后果。
瑞航 111 航班的悲惨事件
1998年9月2日,瑞士航空111号航班发生了一起悲惨事件。
这架航班在从纽约飞往日内瓦的途中,驾驶舱内冒烟。
飞行员首先宣布“盼盼”,然后宣布“求救”,并试图备降至最近的合适机场。
不幸的是,情况恶化,导致飞机在加拿大新斯科舍省佩吉湾附近坠入大西洋。
遗憾的是,机上229人全部在事故中丧生。其中大多数是联合国高管。
90年代最严重航空事故背后的原因
随后的调查显示,火灾可能是由飞机娱乐系统接线故障引起的,是这场悲剧的主要原因。
火势迅速蔓延,机组人员束手无策,最终导致飞机失控坠入大海。
不仅是火灾,还有标准操作程序,瑞航飞行员在发生不明原因的火灾时应该遵循标准操作程序。
SOP要求他们先倒掉燃油,而不是优先考虑让飞机尽快着陆。因此,他们浪费了倾倒燃料的关键时间。
导致崩溃的过度设计
瑞士航空是少数尝试实施机上娱乐系统和机上互联网连接的航空公司之一。
然而,那个时代的飞机并不是专门为它设计和开发的。
瑞士航空几个月前就知道机上娱乐系统存在过热问题。
事实上,一些航空公司甚至因为耗电而跳过安装它。
但瑞士航空继续前进,现在我们都看到了后果。
软件产品开发领域的过度工程
无论是航空业还是任何其他行业,过度设计始终是一个危险信号。
对于软件开发来说,它杀死的产品比缺乏良好的工程实践还要多。
因为它们很难使用并且充满了错误。
它们不但没有改善用户的生活,反而让用户变得不必要的复杂化。
但是软件产品开发中过度工程的真正含义是什么?
简单来说——解决您没有的问题的代码或设计。
这才是真正意义上的过度设计。
这个经典的模因显示了软件产品可以偏离真实用户需求多远。
为什么人们过度设计软件产品?
没有人这样做是出于恶意。
发生这种情况是因为我们试图预测未来并为未知做好准备。
以下是过度设计背后的一些原因。
1. 需求不明确
如果开发团队不知道产品的发展方向,那么显然他们能够找到实现该目标的最佳方式。
2. 追求完美
工程师可能想要创造最新、最好的。
然而,这种对完美的渴望实际上会导致不必要的复杂性、浪费时间和金钱。
3. 确认偏差
开发人员常常过于执着于自己的想法,而忽略了更简单的解决方案。
因此,您最终会得到一个充满附加功能的产品,这使得管理和维护变得非常令人头疼。
4. 错失恐惧症
由于担心错过潜在的好处或进步,您可能会感到采用最新技术的压力。
这种担心可能会导致包含不必要的功能或使用与项目实际需求不符的复杂技术。
软件产品开发中过度工程的后果是什么?
您现在可能已经意识到过度设计不适合您的产品。
让我们看看过度设计的后果,它可能会在很长一段时间内破坏您的产品。
增加了开发时间和成本
维护挑战
降低性能
可扩展性问题
用户体验差
错误和错误的可能性增加
浪费资源
无法满足用户需求
项目失败的风险
更大的技术债务
如何不过度设计您的软件产品
防止过度设计的最佳方法是将您的工程师转变为真正的产品工程师。
这就是我们在 Azilen 所做的事情。
这就是为什么我们称他们为 PROEngineers。
除此之外,您还可以通过以下方法来结束软件产品过度设计的困境。
1. 亚尼
“你不会需要它”——这是一条原则,规定程序员在认为有必要之前不应添加功能。
当您将其与其他几种实践(例如持续重构、持续自动化单元测试和持续集成)结合使用时,它的效果最佳。
2. KISS
KISS 一词是“保持简单愚蠢”,指的是简单的系统更容易修复、发展和维护。
这意味着简单性是编码中的超级英雄。
您的代码库应该像一个组织良好的工具箱,每个工具都有特定的用途。
3. 最坏的就是更好的
当您追求简单时,请考虑“越坏越好”。
这个概念表明,一种易于理解和实施的简约、简单的解决方案可能比技术上优越但复杂的替代方案更有效。
4. 明确需求
清晰的理解是成功产品开发的基础。
花时间与利益相关者互动,提出问题,并确保每个人都达成共识——关于什么符合目标、什么应该避免。
要求有变化吗?重复循环。
5. MVP 获胜
听说过 MVP 吗?这不仅仅是一个体育术语;它代表最小可行产品。
将其视为项目的“核心”版本。
首先了解要点,然后您可以根据要求进行改进。
6.KTCR
保持技术选择真实。技术堆栈决策可以决定你的软件产品的成败。
选择对您的项目规模和需求真正有意义的工具。
并避免仅仅因为新的库或框架流行就使用它们。
7. 乐高积木
将您的代码分解为类似乐高的模块——漂亮、干净,并且在需要时易于替换。
并避免像叠叠乐游戏那样将所有内容连接起来。
一开始它可能会屹立不倒,但一个错误的举动就会轰然倒塌。
8.定期返厂
没有人喜欢笨重、过时的代码库——甚至你的代码也不喜欢!
定期的代码审查和重构会议就像对代码库进行春季大扫除。
它消除了冗余,简化了复杂的结构,并确保您的代码保持干净和可维护。
9. 避免过早优化
不要浪费时间去修复没有损坏的东西——这是经验法则。
相反,应专注于解决眼前的问题,并仅在性能成为真正关注的问题时进行优化。
因为过早的优化可能会导致解决方案过于复杂。
10. 少即是多
用户界面就像一个笑话。如果一定要解释的话,那就是一个糟糕的设计。
因此,您的设计选择应该优先考虑以用户为中心的界面、一致的模式和响应式布局。
总的来说,这一切都是为了在美观的设计和实际的用户体验之间找到最佳平衡点——不需要花哨的东西让事情变得过于复杂!文章来源:https://www.toymoban.com/diary/system/601.html
文章来源地址https://www.toymoban.com/diary/system/601.html
到此这篇关于软件产品开发:如何避免过度设计的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!