DSL - Payroll Summary

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

2.

A Domain-Specific Language for Payroll Calculations: a Case Study at DATEV

A Domain-Specific Language for Payroll


Calculations: a Case Study at DATEV
Yu Chen, 03722670

Concepts
Domain-specific language (DSL) -- expressing the calculation logic at the core of their
payroll systems
Business programmers -- experts in the intricacies of the payroll domain and its governing
laws and regulations (LaR), but not in software development

Summary
The desired DSL to be developed for payroll applications at DATEV faces challenges
including: 1. high complexity in terms of the core domain (e.g. laws and regulations) and
infrastructure dependencies; 2. hard for testing, getting immediate feedback, and
implementing build process; 3. not accessible to non-expert programmer end users; 4.
difficult to integrate with existing architectures and build pipelines while keeping deployment
options.
The target DSL ( separating the domain and technical concerns) brings DATEV with benefits
including: 1. keeping track with evolving law, 2. developing new and innovative products
faster, and 3). running those on a wide variety of platforms.
An evaluation framework is established to evaluate the target DSL in the scope of complexity
reduction, quality of the final product, and application-development performance.

Three positive aspects


The design of DSL separates the domain and technical concerns such that business
programmers can implement, test and deploy new functionality reliably within a single
sprint, and infrastructure developers are able to ship cross-cutting optimizations in the
generated code with relative ease.
The three-layer separation feature simplifies the process of locating and understanding
errors (layer-by-layer debugging) in the LEGACY system.
The DSL reduces complexity be taught to domain-experts in a reasonable amount of time
because of the introduction of proper IDE support, Error checking functionality, liveness, the
big picture and end-user involvement etc.

Three criticisms
All tools used to develop the DSL including JetBrains MPS language work-bench, and MPS
Extensions repository are open source, whereas the final payroll DSL is not for research
purpose but for business.
Even though the three-layer separation enables both business programmers and
infrastructure developers to be able to focus on their own implementation concerns, a
system level debugging requires a long-term feedback from end users to the system
engineers layer by layer.
It still takes a few more years to to re-implement the overall domain functionality with the
DSL(from 15% to 100%), but the scope of the functionality may expand.

Three questions to the author


The final payroll DSL for business purpose is highly relied on some open source codes or
tools, how to handle bugs or technical problems from the source codes or tools?
The DSL only takes the overall domain functionality into account but the domain is
expanding as the business is expanded to more places. Is it possible that somehow the DSL
does not fit with the demands and needs to be redesigned?
The evaluation system for the DSL only provides some text description, can you provide
some data verification?

You might also like