原文地址:http://www.agiledata.org/essays/bestPractices.html
现代软件开发过程,包括统一软件开发过程(RUP)、极限编程(XP)、敏捷统一过程(AUP)以及Scrum本质上,如果不是敏捷的话,都是演进式的。这意味着如果数据专家想要成为这种团队中的有效成员,就需要采用能够使他们演进式工作的工具和技术。IT系统的数据方面没有什么特殊之处:它们可以像非数据方面一样采用演进式的方式进行开发。即使是数据仓库与商务智能项目,也可以采用演进式的方式(而且坦率地说这是一个首选方法)。本文描述了一些敏捷/演进式数据库开发的最佳实践。
这些演进式/敏捷数据库开发的“最佳实践”包括:
- 数据库重构。数据库重构是对数据库模式的微小改动,它改进了模式的设计但保持了语义(例如既不添加任何东西也不破坏任何东西)。数据库重构过程是数据库模式的演进式改进,使得你能够支持客户的新需求。
- 敏捷数据建模。使用数据建模的演进式方法,以迭代和增量的方式对系统的数据进行建模。使用敏捷方法,以高度协作的方式进行演进式建模。在项目初期,设计出一个初始的高层需求和体系结构,然后以一种即时生产(JIT)的方式针对细节进行风暴建模--不再使用预先大量建模(BMUF)。
- 数据库回归测试。应该确保数据库模式确实能够满足系统需求,最好的方式是测试。使用测试驱动开发(TDD)的方法时,在编写产品数据库模式代码之前先编写一个单元测试,最终的结果是拥有了一个100%数据库模式的回归测试。敏捷测试提供了具体的反馈,那就是需要确保数据质量。
- 配置数据库工件的管理。数据模型、数据库测试、测试数据等等都是重要的项目工件,应该像其他工件一样进行配置管理。
- 开发者沙盒。开发人员需要自己的工作环境,称为沙盒。他们能够在沙盒中修改系统的一部分,确认修改有效,然后与其他团队成员的工作进行集成。
- 数据标准化。数据标准化是组织数据模型中的数据属性,以增强实体类型的内聚性的过程。换句话说,数据标准化的目标是减少甚至消除数据冗余。这对于应用开发人员来说是一个重要的考虑因素,因为在关系数据库中多处维护相同的信息时,存储对象是非常复杂的。
- 设定一个现实的主键策略。事实上有时候需要使用自然键,有时候又需要替代键。作为专家需要明白什么时候应用何种策略,并且当你发现做出了错误选择时需要进行重构。
- 数据库封装。数据库封装层从业务代码中隐藏了数据的实现细节,包括物理模式。实际上,它为你的业务对象提供了持久化服务--能够针对数据源读取数据、写入数据以及删除数据。理想情况下,业务对象应该对如何持久化毫无了解。数据库封装层既不是魔术也不是学术理论;他是各种大小应用,简单或复杂,常用的实践。数据库封装层是一种重要的技术,每个敏捷软件开发人员都应该了解并学会使用。
- 培训开发人员的基本数据技能。这样能够使得开发人员更有效地改善数据方面的工作以及与数据专家的交流。基本技能包括:关系数据库基本原理、数据建模、对象与关系数据库映射(O/R映射)、遗留数据处理、XML、参照完整性与共享业务逻辑、如何从关系数据库中检索信息、编写报告、安全访问控制以及事务与并发控制。
- 培训DBA的基本开发技能。同样,DBA需要理解应用开发,以便能够在他们支持的团队中发挥积极的作用。
- 共同的开发指导方针。拥有一个容易理解和遵守的、共同的、有效的开发标准能够极大地提高系统的质量。这些方针可能包括,但不限于,编程指南、建模风格指南、数据命名约定以及用户界面约定(包括报表设计约定)。
- 精益数据管理。精益管理的目标是确保组织内部的数据质量、有效性、完整性、安全性以及可用性,而敏捷/精益数据管理的目的是使得开发团队在整个IT生态圈中能够有效地完成这些事情。许多传统的数据管理方法似乎在实践中奋力前行,我表示怀疑,部分因为文化差异阻碍,部分因为传统IT管理通常进行艰难。传统管理策略典型的命令与控制方法很像放羊,你做了许多努力但是从长远来看没有什么效果。另一方面,精益管理专注于人并且激励他们做正确的事情。精益数据管理方法促进数据专家和开发团队之间的健康协作的关系。
- 敏捷主数据管理(MDM)。如果你计划在组织内部采用MDM策略,至少应该采用敏捷方式。许多组织转向MDM是进展困难,通产是因为他们采用了传统的命令与控制策略。
参考资料与推荐在线阅读
- Agile Best Practices for Data Warehouse (DW)/Business Intelligence (BI) Projects
- Agile Data Modeling
- Agile/Lean Data Governance Best Practices
- Agile Master Data Management (MDM)
- Agile Testing and Quality Strategies: Reality over Rhetoric
- The Cultural Impedance Mismatch Between Data Professionals and Developers
- Governance
- Initial High-Level Architectural Envisioning
- Initial High-Level Requirements Envisioning
- The "One Truth Above All Else" Anti-Pattern
- Prioritized Requirements: An Agile Best Practice
- Questioning "Best Practices" for Software Development
- Survey Results (Agile and Data Management)
- Why Agile Software Development Works: Improved Feedback
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24945919/viewspace-742286/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24945919/viewspace-742286/