Why did DMP use an external data validation and CWR generation service?

Django Music Publisher (DMP) used our commercial service for data validation and CWR generation from the initial 18.7 version until 19.1 was released. In this article, I will explain the reasons for this.

Proof of Concept

I started working on DMP while I was on the seaside with a cold. By the time the cold has passed, the initial (18.7) release was mostly done. From the start to the beta, it took exactly one week. The main motive was to make a proof-of-concept for our CWR API.

The Dilemma

With all the experience I have, if I chose to make a stand-alone project that would not need this external service, it would have taken me at least a month. And this validation and generation would not have covered everything the service does. Each time the functionality would be expanded, most of the developing time would have been spent in extending the validation. Without the experience, it would have taken many months.

And every project in this domain faces the same dilemma. Whether to go directly for a complete, stand-alone solution or to use our CWR API, have a working solution much faster and then, optionally, replace the functionality that the service provides with their own code.

Although I did not know at the time, which path DMP will take, it turned out that it was the later. Once the registration part was nearing completion and the next generation specs for CWR were available, everything became clear and I replaced the API with an internal code.

With selected few publishers, we are actually using CWR API file validation just to make sure that the code works.

Now, Ever or Never

The real difference is not just in timing. The main reason why we introduced the service is that we have seen so many projects dealing with batch registrations fail. Bad data structure and underestimating of work needed for achieving compatibility with various entities, due to documented or undocumented differences in CWR implementations, are the two most common reasons for projects failing.

DMP is a simple project and with all the experience, this was still the right way to do it.