Agilists criticize the “big design up front” (BDUF) nature of plan-driven development. Uncertainty early in a project makes BDUF costly and risky. However, the avoidance of BDUF is sometimes misconstrued to mean “no design up front,” which leads to poor quality and high technical debt. Experienced agilists know that what is truly needed is sufficient design up front (SDUF)—enough to galvanize developers around a shared understanding of the problem domain, architecture, and data models. This course introduces an agile modeling approach that strikes the sufficient-up-front and just-in-time balance.
Read more +
Prerequisites
There are no prerequisites for this course.
Read more +
Outline
1. Introduction
- Agile Overview
- Benefits of Evolutionary Design
2. Agile Modeling Mindset
- The Challenge
- Purpose of Modeling
- Agile Modeling Goals
- Modeling in the Agile Project Management Lifecycle
- Agile Modeling Guiding Principles
3. Agile Documentation
- Why, When and What to Document
- Creating Self-Evident Implementations
- Documenting with a clear purpose for the right audience
- Minimally sufficient documentation
- Negative Value Documentation and Document End of Life
4. Domain Modeling
- Why, When and Who
- Story-Gathering Process
- Defining and Refining user roles
- User Personas
- Domain Modeling Exercise
5. Use Cases and User Stories
- Why, When and Who
- Use Cases
- User Stories
- Use Case Exercise
6. Sufficient Design Up Front
- How Buildings Learn
- Iteration Zero
- Conceptual Data Modeling
- Establishing Test Automation
- Continuous Integration Infrastructure
- Sufficient Design Guiding Principles
7. Data Model Patterns
- What is a Pattern?
- Pattern References
- Why Use Patterns?
- Drawbacks of Patterns
- Patterns, Seed Models, and Archetypes
8. Technical Debt
- Overview
- Design and Technical Debt
- Indicators of Technical Debt
- Prioritizing Debt
- Technical Debt exercise
9. Database Refactoring
- What is Refactoring?
- Refactoring Categories
- How Refactoring Works
- Preparing to Refactor
- How to Refactor
10. Agile Modeling with Data Vault
- Complexity of Changeb
- Introduction to Data Vault
- Hubs, Satellites and Links
- Data Vault example
- Data Vault Strength: Adapting to Change
- Data Vault Principles
- Why is Data Vault agile?
- Data Vault Exercise
Read more +