过往的软件开发, 往往都是由架构师将他对产品的理解,利用 UML 来体现软件的架构设计。
这种方式的问题是:因缺乏使用者与团队成员间的互动参与,使得对外并未能完整的将使用者需求,映射到软件架构中; 而对内所提供的软件架构设计文档, 对实际开发的工作, 指导意义并不大(因为,厚重的架构设计文档,便如老太婆的裹脚布般;又臭又长)。更严重的问题是,由于架构设计耗费太长的时间,如此再加上开发、测试的时间,团队往往会太晚才会发现软件架构上的重大缺陷。而由于太晚才发现软件架构上的缺陷,所以,软件架构上若需做优化,则往往需耗费惊人的人力与时间成本。
敏捷开发, 经由可视化、轻量级的 "场景树", 使得使用者与团队成员间可共同的协作, 共同的识别:
- User Story 中的活动
- 活动后所产生的实体对象
- 验证实体对象的纬度
- 识别描述实体对象的价值对象
- 整合所有 User Stories 的 User Story 地图
所以, 开发人员可根据 “场景树”与 User Story 地图,轻易且高效的找到单元测试点并设计出有效的测试用例与测试数据。而使开发人员能在最短的时间内,将软件架构直接转换为测试代码与产品代码。使开发人员能在最短的时间内,经由单元测试的 “黑盒测试”,发现到软件架构上的缺陷。
另外,SonarQube也提供了一可持续优化产品代码(架构)的平台。
“所以,在敏捷开发中,我们真的找到了一个有效的方法,去构造一高效、健康的产品开发的生态系统;经由此生态系统,使用者与团队成员将可高效的协作,共同的设计软件架构,并在最短的时间内,发现软件架构上的缺陷并持续的优化软件架构。”
欢迎你也来试试。