Use declarative modeling to prepare for the future. Your models will stand up to the toll of time while your code does not. The investment you make in defining your application’s content as declarative models can be used over and over again. You will become – Future Proof.
Between a rock and a hard place
The world is evolving at a more and more accelerated pace. Adapting to constant change can be very costly. As new technologies become available you have a difficult choice; either to build more business functionality in your current technology stack – or to put a lot of effort into some new emerging technology.
The first option will keep you in the forefront when it comes to business content. This is a good thing, but the drawback is that your technology will be outdated, eventually, so much that you will lose in sales.
The second option will get you ahead of competition, technology wise, but will probably use so much of your resources that the business content cannot be developed at the same time.
Parallel development instead of serial
Now for some good news; You don’t have to be between a rock and a hard place. There is a third option. Domain specific modeling and code generation enables you to work with business development and technology development in parallel instead of one at the time.
- Add new business functions to your set of declarative syntax.
- Generate code from them to your current platform.
- At the same time, develop the new platform using the exact same business content as stated in the declarative models.
This means that you can do both at the same time. Add business content and switch to a new platform simultaneously. When your application’s business content and technical platform can be developed independently of each other – then you have the option to schedule resources to the currently most important one.
Declarative specifications are always up to date.
But, isn’t learning a new modeling tool going to be time consuming and take resources from other activities?
No, not really. Have you ever looked at old specifications written in any traditional format, such as Word. After a short while, they are typically not relevant any more. That’s because the definition of your application’s behaviour is no longer defined by the specification – it’s all in the resulting code.
With declarative content, your specifications will always be up to date – since they are used over and over again to generate code. And, maintained within the same repository as the code so that any change to the specification will be directly linked to the corresponding change in the generated code.