In this episode, Scott Ambler helps us to understand the power of using models and how to use models in an agile environment.
After listening to this episode, you'll understand:
- Why you should use models in agile
- What models to use in a given context
- How to keep models lightweight
- The link between models and Test Driven Development
Written documentation is the least effective form of communication to create a shared understanding. We create models to understand, to collaborate, and to work through and explore a design or architecture.
Ideally, you want to co-create models with the team and stakeholders. Be sure to keep your modeling as lightweight and collaborative as possible. Do just enough modeling and defer commitment until the last responsible moment.
This allows you to focus on what you know now and what needs to be done now. Later, you will know more and will be able to ask better questions, which will allow you to dive deeper into other areas of the model and iterate.
How much modeling is just enough? “Just enough” is in the eye of the beholder. It really depends on the context and the situation. Do enough modeling to get everyone on the same page and understand what to do next.
Models will evolve over time. Some may disappear if they are no longer needed, some may grow and become more detailed, and some new models may appear.
Common Agile Models
Any model can be done in an agile manner. Ideally, you would work together collaboratively and do just enough modeling to answer the questions you need answered right now.
As an example, if you’re building a website, you might use User Stories, use cases, personas, user interface models, prototypes, data models, and network diagrams. The models you choose to create will depend on your situation and context.
Choosing the right model for the purpose comes from experience. Having many models in your toolkit allows you to be effective in a variety of contexts.
For business application development projects, there are a few commonly used models including User Stories, User Story maps, UI / sketches, business process models (including flowcharts or activity diagrams), and lightweight data models.
Yes; user stories can be considered models. A model is an abstraction and a user story represents something more complex.
Test Driven Development
Models can be used as a step towards Test Driven Development (TDD). TDD in its simplest form is a process of developing software in which you write tests first, run the test (which should fail), write just enough code for the test to pass, and then refactor the code.
Modeling is good at thinking things through and understanding, but they’re not very good at providing detail. On the other hand, tests are very good at providing detail, but are bad for high level thinking.
Use each for their strength. Use models to create a higher level understanding and then use tests to fill in the detail. Modeling first helps everyone to get alignment on the big picture, which can prevent rework after testing.
Listen to the full episode to hear all of Scott’s advice on agile modeling including how models scale and fit in at the enterprise level.
Build agile modeling rooms. Create a room or space where you can model and collaborate. This can mean having whiteboards, painting walls with whiteboard paint, using flip charts, etc. This allows you to work through problems and collaborate on solutions.
Links mentioned in this episode:
Senior Consulting Partner of Scott Ambler + Associates
Scott works with organizations around the world to help them to improve their software processes. He provides training, coaching, and mentoring in disciplined agile and lean strategies at both the project and organizational level. Scott is the founder of the Agile Modeling, Agile Data, Disciplined Agile, and Enterprise Unified Process methodologies. He is the (co-)author of several books, including Disciplined Agile Delivery, Refactoring Databases, Agile Modeling, Agile Database Techniques, and The Enterprise Unified Process.
Thank you for listening to the program
To get more valuable content to enhance your skills and advance your career, you can subscribe on iTunes.