Accelerated Learning with Rapid Prototypes and DSLs
You have created a story map with your business partners and defined an MVP. Your development team has started discussing architecture and how the system might evolve. You define spikes to answer some questions and validate your assumptions. How long does it take to build the walking skeleton and validate your spikes? Is your system designed to be able to give you the answers you need to see if the desired outcome has been attained? Are the models used to build the solution space useful? Is the resulting architecture effective? Does it bend?
This talk, targeted at all development team members, will provide methods for creating rapid prototypes of even complex systems to explore how useful the models are and how effective your architecture is. We will show how to use Domain Specific Languages (DSLs), templates, and code generation to rapidly create prototypes and test systems to enable accelerated learning.
Outline/Structure of the Talk
- Desire to deliver value quickly
- Target Outcomes and defining success criteria for problems and solutions
- How long does it take to verify MVP and metrics?
- Code generation tools of the past and stigma
- Current code generation tools and template engines (gRPC, yeoman)
- DSLs (domain specific languages)
- Microservices and Service-Oriented Architectures
- Generating a walking skeleton and determining usefulness of the models and architecture
- Examples throughout, but show real-time generated architecture for a context-map DSL decorated with ports and adapters, and tests to validate an architecture design.
- Conclusion and MTTVL (mean-time to validated learning)
The goal of this talk is to show teams that they can run spikes and experiments very quickly using basic DSLs and code generation in conjunction with automation tools. A team should be able to quickly generate a walking skeleton for even complex systems using lightweight templating and code generation tools to validate if the design is useful. We take a light-hearted approach with this talk to show how to enable this behavior and we propose a tongue-in-cheek vanity metric - MTTVL (mean-time to validated learning) - to see how long it takes to learn something useful about proposed system changes and features.
Developers, Testers, Product Owners, Architects, Leaders
Prerequisites for Attendees
Nothing specific. Knowledge of architectural styles, messaging, and domain-driven design is helpful, but not a prerequisite.