Make or Buy
Key indicators for using a DSL
We have created the following list with indicators for you. If one or more apply to your situation, DSL's are a viable option:
- You have repetitive coding work that is specific to the business you are automating.
- You have repetitive coding work which is not specific to your business, but there is no satisfactory product for this problem available.
- You have some domain experts in your team, but also developers with less experience. You want to leverage the domain knowledge of these experts.
- Your application will need continuous configuration during its lifetime. Typically this configuration is the result of external influences; new regulations, new procedures, new product definitions etcetera. The configuration will be done by a power user and exceeds a simple fill-in form; a textual language would be a good way to enter this data.
Make or Buy
There are two flavours of choosing a DSL: buy a off-the-shelf DSL product or create your own DSL.
To buy
We want to be clear: if there is a DSL for your needs available from a supplier that exactly meets all your current and future criteria, you should not develop your own DSL. Our advice is to ‘buy' the DSL in that case.
To make
You have specific demands on flexibility, completeness, quality and support. You want a product that can grow with you and your business in the future. There are product in the market, but the do not fulfill your needs. Or you have specific business knowledge that you want to use efficiently. In that case, you choose to ‘make' the DSL. We are happy to offer you our services.
Benefits of developing proprietary DSL's
Competitive advantage. You have better technology than your competitors. You will be able to work faster, cheaper and serve your customer better.
Automating functionality not supported by 3rd parties. You can maximize the gain of your business specific knowledge, by automating processes and tasks to your experience and insights.
Avoiding vendor lock-in. If by building a dsl yourself, you are not dependent on a 3rd party DSL-supplier. When you have developed your own DSL, you are not dependent on a DSL supplier and assure your business continuity.
Challenges of developing proprietary DSL's
Acquiring knowledge on developing dsl's. Creating DSL's is a specialism and as any specialism, there is a learning curve. We have experience in creating DSL's and we help you to make a jump-start. We train your employees during the development, so you will end with a productive DSL and experienced, self reliant amployees.
Finding, setting, and maintaining proper scope.
Cost of designing, implementing, and maintaining a DSL. Creating languages without a language workbench is very expensive. We have developed a toolset to help you creating DSL's and keeping costs lown. Because this toolset is so well suited for the task, it is quite common to have a return on investment within one project.