Vaughn Vernon谈当今软件开发所面临的挑战

简介:

Vaughn Vernon举办了一场演讲,阐述了他所遇到的各种软件开发方面的严重问题,但也为这些问题提出了应对的方案。在他看来,大量的项目与开发团队都深陷设计糟糕的系统中难以摆脱,无数开发者在不停地为系统打补丁,只为系统能够继续运行下去。这使软件开发文化在很大程度上遭受了严重的破坏。

以Vernon的经验来看,有一种问题是最突出的,即IT部门被视为一个成本中心,业务部门将软件开发视为一种负面的因素,它在逐渐地榨干组织的资源,是一种金钱上的浪费。这样的业务部门不可能将软件视为一种改变游戏规则的因素,而是视为一种他们不得不忍受的东西。

在Vernon看来,让业务人员花费大量时间在协作工具中编写规格说明是一种毫无意义的浪费。大多数开发者都不会在意这些规格说明,因为其中缺少他们所需要的信息,反而只会造成低效的协作。正确的做法是让业务人员与开发者进行对话交流,从而在更短的时间之内推出一份能够满足业务需求的扎实的设计。

Vernon提到了一种被他称为任务板洗牌的做法:将某个便签从待办事项栏目里挪动至开发中栏目中就被视为软件设计的完成。这会导致每次挪动便签就带来一种随机的设计方案,造成系统缺乏所必需的、经过沉思熟虑的设计。有太多的人认为无设计是一种对代码或开发者时间上的节约,但Vernon认为这种节约是一种错误的做法,只会造成糟糕的设计。

Vernon坚定地相信,为了克服他所描述的这些问题,我们必须提高团队中的开发者成熟度。业务部门对于软件开发部门的看法只是某些对于业务有兴趣的人员,为了改变这种看法,我们需要通过创建解决方案,进一步促进业务发展的方式帮助业务部门实现卓越。而实现这一点的一种方案就是开始与业务部门进行合作。围绕着工作内容的上下文与模型建立团队,并设立统一语言。

事件风暴是一种领域建模的辅助工具,Vernon将其描述为发现边界上下文的一种极度实用与重要的工具。经过几个小时的讨论,或许就能够建立一种统一语言,并且理解领域中的边界上下文。在事件风暴会议中所产生的结果也可用于某种基于指标的估算过程的估算单元,其结果将接近于真实的数字。

微服务是时下的热门话题,Vernon认为它与领域驱动设计中的边界上下文有着相似之处。但在Vernon看来,以单一组件的粒度部署微服务似乎太细了,他认为以边界上下文的规模创建微服务是一种更为有效的途径。

Vernon随后提到了Actor模型,他确信这是一种非常重要的工具,开发人员 —— 甚至是多数开发人员都应当开始使用这种工具。随着服务器的内核与内存的不断升级,Actor模型也表现为一种能够有效地利用这些新资源的方式。Vernon提出了一项建议,开发者可使用Actor模型,围绕着单一的边界上下文构建微服务。他认为Actor模型往往能够极大地简化系统的设计,这种设计表现出优秀的简洁性。与之形成鲜明对比的是,当今的企业软件往往会使用复杂的技术栈,其中包含大量不同的机制,哪怕是高级开发者也需要几个月的时间才能完全掌握。

Vernon在结语中表示,大量的团队都深陷设计糟糕的系统中难以摆脱,但随着开发者成熟度的提高以及DDD的普及,将对这一现状产生很大的改变。
本文转自d1net(转载)

相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
新时代软件测试工程师的挑战与机遇
随着科技的飞速发展,软件测试在当今信息化社会中扮演着举足轻重的角色。本文将探讨新时代软件测试工程师所面临的挑战和机遇,分析其发展趋势及应对策略,旨在为广大软件测试从业人员提供启示和指导。
|
17天前
|
机器学习/深度学习 人工智能 Devops
探索软件测试自动化的未来:技术挑战与机遇
随着软件开发周期的不断缩短和复杂性的增加,软件测试自动化在确保质量和效率方面扮演着越来越重要的角色。本文将深入探讨软件测试自动化的发展现状、面临的技术挑战以及未来的机遇。
18 2
|
15天前
|
API 开发工具 Android开发
安卓应用开发的新趋势与挑战
随着移动技术的不断进步,安卓平台正迎来一系列创新的开发工具和框架。本文将深入探讨这些新工具如何简化开发流程、提高应用性能,并分析它们为开发者带来的挑战与机遇。我们将从多个角度审视安卓开发的当前状态,包括跨平台解决方案的流行度、Kotlin语言的崛起以及安卓系统新版本的特性。
|
23天前
|
机器学习/深度学习 敏捷开发 人工智能
未来趋势下的软件测试:挑战与机遇
随着技术的不断发展和应用领域的扩大,软件测试也面临着新的挑战和机遇。本文探讨了未来趋势下软件测试的发展方向和应对策略,涵盖了自动化测试、人工智能在测试中的应用、安全性测试的重要性以及测试团队的角色转变等方面。
|
2月前
|
存储 安全 网络安全
云计算的双刃剑:便利性与网络安全挑战
【5月更文挑战第20天】 在数字化时代,云计算已成为企业和个人存储、处理和访问数据的首选平台。其提供了前所未有的便捷性、灵活性和成本效益,但同时带来了一系列网络安全挑战。从数据泄露到服务中断,再到合规性问题,云服务的广泛应用使得信息安全成为一个日益复杂的议题。本文将探讨云计算环境中面临的主要网络安全威胁,以及为保护数据完整性、隐私和可用性而采取的策略和技术措施。
|
2月前
|
机器学习/深度学习 敏捷开发 人工智能
深入分析自动化测试中的挑战与机遇
【5月更文挑战第31天】 在软件开发的不断进步和迭代中,自动化测试作为提升效率、确保质量的重要手段,其地位愈发凸显。本文将深入探讨实施自动化测试过程中遭遇的技术挑战,如维护成本、复杂场景模拟等,并剖析其中的机遇,包括持续集成的协同优势和最新的AI辅助技术。通过具体案例分析和前沿技术趋势预测,旨在为软件测试工程师提供全面的视角,以应对未来自动化测试的发展需求。
|
2月前
|
安全 测试技术 持续交付
新时代软件测试的挑战与应对
随着信息技术的快速发展,软件在现代社会中扮演着至关重要的角色。然而,随之而来的是越来越复杂的软件系统和日益增长的用户需求,给软件测试带来了前所未有的挑战。本文从自动化测试、移动端测试以及安全性测试等方面探讨了新时代软件测试所面临的挑战,并提出了相应的解决方案。
67 8
|
2月前
|
机器学习/深度学习 人工智能 安全
企业使用Sora技术面临哪些困难?
【2月更文挑战第8天】企业使用Sora技术面临哪些困难?
61 7
企业使用Sora技术面临哪些困难?
|
2月前
|
人工智能 安全 测试技术
未来软件测试的发展趋势与挑战
随着科技的不断进步,软件测试作为保障软件质量的重要环节也在不断演进。本文探讨了未来软件测试可能面临的发展趋势和挑战,包括人工智能在测试中的应用、自动化测试的普及以及安全性测试的重要性。在快速迭代和持续集成的背景下,软件测试将如何应对未来的挑战,提升效率和质量。
138 1
|
2月前
|
机器学习/深度学习 人工智能 安全
程序员在2024年严酷环境下的新机遇与挑战
程序员在2024年严酷环境下的新机遇与挑战
43 0

热门文章

最新文章