能够满足用户需求的优秀软件的关键是什么?对我来说,它不是编程语言或框架。它是对业务域以及系统如何在用户上下文中工作的深刻理解。工程学科可以为我们提供帮助。
- 持续交付。当软件始终处于可发布状态时,我们可以经常将其交付给用户以获取新知识。
- 领域驱动设计。DDD使我们能够构建一个由团队,业务甚至源代码共享的领域模型。
- 干净的代码。源代码包含有关系统和域的知识。每次阅读时,干净的代码都会向我们反映此知识。
- 重构。重构使我们能够使代码中的知识保持最新。
- 配对编程。配对编程可在团队成员之间传播知识,有助于建立共识。
- 测试驱动开发。TDD使我们甚至在编写系统代码之前就指定了当前的知识。
其他:
DDD是团结开发和业务的圣杯.
这就是DDD表现出色的地方,它建立了开发人员和企业共享的无处不在的语言。
以敏捷方式构建-构建,测试和演示。还了解域以帮助抢占所有可能的异常路径
如今,大多数团队/公司都达不到以上列表的一半,因此我认为这些观点是朝正确方向迈进的良好起点.
我会在列表中添加以客户为中心的跨职能团队。除了工程之外,其他功能对于创建真正满足用户需求的软件也至关重要:-出色的UX / UI设计-满足用户实际需求的要求-客户/技术支持等