paint-brush
软件架构决策:关注事实,不要猜测经过@inovak
452 讀數
452 讀數

软件架构决策:关注事实,不要猜测

经过 Ivan Novak4m2023/07/28
Read on Terminal Reader

太長; 讀書

YAGNI 是从极限编程中诞生的原则。这本质上是一个友好的提醒,除非认为有必要,否则不要添加功能。别像斯密蒂那样。在需要时构建所需的内容。像 Slack 一样;让用户的需求指导您的软件架构决策。
featured image - 软件架构决策:关注事实,不要猜测
Ivan Novak HackerNoon profile picture
0-item

您参与这个游戏可能是因为您想要创建不仅可以运行而且可以让用户满意的软件,对吧?


好消息!这不是猜谜游戏。这是基于深刻理解的明智决策。这是关于事实而不是猜测。


“在软件架构中,事实是值得信赖的盟友,但猜测呢?它们可能只会为你建造一座数字纸牌屋。”


这条道路可能充满了艰难的选择,但用正确的知识武装自己,你就会自信地构建正确的下一个事物,而不是十几个(或更多)猜测!

雅格尼的力量

亚格尼?不需要 _这是从极限编程中诞生的原则。 YAGNI 本质上是一个友好的提醒,除非认为有必要,否则不要添加功能。相信我,这是非常需要的。


过度设计就像深夜喝咖啡编码一样常见。两者都不应该发生,但你知道事情会怎样......


请允许我分享一个故事。我曾经和一个人一起工作过,我们就叫他 Smitty吧。现在,Smitty 是一位非常热情的开发人员。当客户只需要一辆自行车时,他就是那种会建造整艘宇宙飞船的人。这是令人敬畏的,但很多时候,这是不必要的。


有一天,Smitty 花了数周时间开发了一项复杂的功能,猜猜看,客户从未使用过该功能!所有的时间、精力和咖啡都被浪费了。


这是 YAGNI 帮助您避免的陷阱。别像斯密蒂那样。在需要时构建所需的内容。

您的指路明灯:用户的需求

但你怎么知道需要什么?您的软件并不是为了炫耀您的技术实力。这是为了为您的用户解决问题。你的指路明星?您的用户的需求,而不是您或您的团队的突发奇想和愿望。


它是关于打造一个无缝的解决方案,使其像拼图中缺失的一块一样融入用户的生活。


软件架构必须经过深思熟虑,并考虑到整个产品,而不是从一系列项目中意外继承的东西。让我们避免“意外设计”。


以 Slack 为例,它是备受喜爱的消息平台。 Slack 的与众不同之处在于它对客户需求的高度关注。它注定不仅仅是另一个消息应用程序;它被设计成一个协作中心,工作可以在这里无缝展开。


他们观察、询问、整理数据,并将这些见解融入到我们离不开的应用程序中。像 Slack 一样;让用户的需求指导您的软件架构决策。

数据驱动决策的本质

现在,要做出明智的决策,您需要数据——冷酷的事实。猜测是你生活中不需要的敌人。这就像蒙着眼睛试图击中靶心一样——大多数情况下,你都会打偏。


凭直觉做出的决定就像掷硬币一样好,这不是成功软件的构建方式。


以亚马逊为例,这是一家实际上崇拜数据的公司。每个架构决策、添加的每个功能以及所做的每个更改都基于对客户数据的详尽分析。结果?超个性化的购物体验,吸引回头客。

建立数据收集机制

“我从哪里得到这些数据?”好问题!你建立机制来收集它!这些可以像直接用户反馈一样简单,也可以像自动化数据分析管道一样复杂。可以把它想象成为洞察力设置陷阱——设置的越多,捕获的就越多。


也就是说,重要的是要记住,这不是为了收集数据而收集数据。它是关于收集可操作的见解,帮助您为用户提供更好、更有用的功能。来吧,拥抱你内心的数据科学家!

迈向数据驱动、以用户为中心的方法之旅

转向数据驱动、以用户为中心的方法可能看起来很困难,但结果绝对是值得的。采用新方法、培养数据素养和培育用户至上的文化是整个团队范围内的变革。


是的,这似乎具有挑战性,但回报是更精简、更高效、价值驱动的软件开发流程。当我们更多地关注正确的事情时,我们就能事半功倍!

倡导变革

你看,可能会有阻力。可能有些人坚持旧的生活方式,舒适的生活方式。但这是你捍卫新时代的机会。您有机会带领您的团队走向一个以事实而非猜测为指导的未来。


软件是为了解决实际问题而构建的,而不是为了满足开发人员的渴望。

您的行动号召

这是你的第一步。从小处开始。下次当您要添加功能或做出架构决策时,请问:“我们有数据支持这个决策吗?它为用户服务,还是只是一个闪亮的新事物?”


伟大的软件不是建立在心血来潮或预感之上的;它建立在明智的决策之上。


最终,它是为了向用户提供巨大的价值——打造人们使用、喜爱、并且无法想象没有他们的生活的软件。而且你完全有能力做到这一点。


因此,走出去,收集事实,将用户放在第一位,然后开始构建令人难以置信的软件。您的用户正在等待。