盖尔定律:它所说的话及其在IT中的应用

我们讲法律的本质是什么,法律如何表现出来,以及在IT系统的设计和开发中不考虑该法律时会发生什么。


照片-Spencer-不飞溅

在《致工商管理硕士》一书中。 由乔什·考夫曼(Josh Kaufman)撰写的自我教育是100%的,加尔定律的措词如下:

“任何工作复杂的系统都是在工作简单的系统的基础上开发的。 从头开始创建的复杂系统将无法在现实世界中工作,因为在开发过程中,它们不受环境固有选择因素的影响。”

这意味着应将系统性方法应用于任何项目的开发-从简单到复杂。 换句话说,您需要从创建简单的系统开始,逐步走向其复杂性,扩展功能和能力。

简单系统通常是指由少量元素组成且没有层次结构的系统。 相反,复杂的系统具有分支结构和大量相互连接的组件。

历史记录


该法的作者约翰·加尔(John Gall)是一名儿科医生,但他的业余时间用于系统理论研究。 1977年,他出版了《 系统化:系统如何工作以及系统如何崩溃》一书 。 他在报告中说,要控制任何系统,必须了解环境因素如何影响其功能。 正是在这本书中制定加尔定律

得益于系统开发人员Ken Orr( Ken Orr )在1981年撰写的“ 结构化职权范围 ”一书中的提及,该法律获得了盛名。 他的工作获得了广泛的欢迎,有关系统分析的现代文献的作者仍在引用它。

肯·奥尔(Ken Orr)的书出版后的某个时间,盖尔(Gall)规则是格雷迪·布奇(Grady Booch)创建UML时“武装”的。 该语言还追溯了“从简单到复杂”的概念:要构建系统的抽象模型,将使用单独的类,类型和接口。


照片- 艾萨克·史密斯 -Unsplash

该法律还反映在灵活的软件开发方法中。 该规则尤其适用于极限编程( XP )。 这种方法的主要概念之一是易于设计 。 它指出,不应预先设计完整的新产品。 考虑到不断变化的需求(客户和市场),应该迭代执行计划。

何时遵循加尔定律


互联网上最能说明加尔定律的例子是万维网 。 它起源于本地的CERN项目-该组织开发了一种用于通过超文本链接链接文档的工具。 但是随着时间的流逝,网络成功地扩展到了全球范围-功能扩展,结构变得更加复杂,并且随着新协议(例如HTTPS,后来成为HTTP的发展)“增长”。

MVP (最小可行产品)开始开发,可以快速测试想法,并在必要时更改功能。 例如,Uber服务的第一个版本仅包含两个简单功能:呼叫驾驶员并使用信用卡付款。 在他们的帮助下,团队测试了其概念,吸引了用户群并继续开发该产品。 如今,这些基本功能变得更加复杂:出现了将账单分散到几个人之间,在地图上跟踪驾驶员并进行自动付款的机会。

盖尔定律有助于使用户界面更容易使用。 例如,Dropbox应用程序的第一个版本具有非常简单的界面-它一个普通的文件夹。 根据开发人员的说法,此特殊功能允许吸引大量新用户-几天之内,用于Dropbox Beta测试的应用程序列表得到了7万个补充。其他功能和对话框(如共同编辑文件)稍后开始出现。

不考虑此模式会发生什么


作为一个项目的示例,在创建哪些开发人员应了解加尔定律并加以考虑时,通常会给出CORBA技术标准。 它的规范最初是大量的,并且包含大量的说明。 由于过于复杂,该标准的开发工作进行了很长时间,而其许多功能却从未在实践中实现。 结果,CORBA没有被广泛使用。

软件产品实施失败的一个例子是2008年BBC项目数字媒体倡议(DMI)。 他的目标是使用内部工具创建大型平台,以进行视频编辑和内容存储。 DMI的基础立即奠定了许多规范,而这些规范在实践中并未实施。 开发历时五年,但从未完成。 首先,承包商被西门子-西门子公司放弃,然后被BBC自己放弃。 DMI总计花费了1亿英镑。

Google Wave服务是接口实现失败的一个示例。 它应该结合在线论坛,社交网络,即时通讯程序和版本控制系统的功能。 该平台的创建者认为它将成为一种通用的通信方式。 但是,为了一次全部替换,开发团队用各种功能使应用程序过载。 结果,用户不得不长时间处理界面的功能。 即使使用服务搜索栏也出现了困难-要使用它,您必须知道特殊标签。 该项目的开发时间为2009年至2010年-系统未达到开发人员和用户的期望,因此该项目被取消。

相关阅读:




我们在ITGLOBAL.COM提供私有和混合云,并提供旨在开发客户IT基础架构的服务。 我们希望您发现该材料对您有所帮助。 您可以阅读的关于我们的信息,以及我们在公司博客中写的关于自己的信息:

Source: https://habr.com/ru/post/zh-CN453982/


All Articles