Less is More with
That Green Thing
Music Publishing Software
Less is More philosophy is not something that can be applied to any project, let alone any software project. Actually, it doesn’t work in most cases. So, what makes That Green Thing different?
That Green Thing is not simple, far from it. Even it’s red baby sibling Django Music Publisher (DMP) can not be called simple software. (The latter is open-source and free!) And DMP certainly does not follow this philosophy. And That Green Thing has far more features.
But, if it is not about simplicity, nor size, nor features, what is Less is More really about? Specifically, when we talk about software?
To answer this question, we must first answer another: What is software?
What is Software?
Software is code. Well, to put it more precisely, software code is a part of software. Another would be software architecture. Those are obvious.
Answer to all of these questions is a Yes. Surely, this depends on how one defines “software”, but for the rest of this article, software is all of the above and much more.
What is Less is More?
In this context, with term “software” encompassing all of the above and much more, it simply means as many benefits for clients, with as little of “software” as possible. But, wait, isn’t that the same as keeping the costs down?
In a way. But, business is about profit. Costs are just one aspect of it, others are revenue, growth, cash-flow, etc. Cash-flow? Absolutely, if you run out of money, profitability is meaningless. Anyway, Less is More is about keeping costs down, and maybe having less revenue, without sacrificing growth or positive cash-flow. But, it is more than that.
Again, it is about benefits for clients, also known as quality.
Let’s start with code. Less code. For That Green Thing, just as for any modern software, most of the code is written by third parties, very little by us. Less code means less of our code, and less of third-party code. It is about cleverly choosing features that will keep the amount of code down.
Architecture. Same thing. Choosing the architecture that will have as few elements as possible, and preferably only very standard ones. PostgreSQL is a yes, Elastic Search is a no. (The latter is great software I often use, but it is not as mainstream as PostgreSQL.) This, again, reduces the number of features one may choose.
Documentation and videos? Well, we test software, write documentation and make videos at the same time. If something does not work, we fix it. If something is hard to explain, we change it. At the end, we have working software that is simple to explain, documentation and video tutorials. It is less work to do it this way, and benefits are much larger. Less is more.
That Green Thing actually has far less documentation than DMP. All it needs is a user manual, and it does not have to be as detailed, because That Green Thing comes with user support, DMP does not. In this aspect, it is clear that DMP does not follow less is more philosophy.
We made several promotional videos about That Green Thing, that don’t show any software features, just name them. They have nothing to do with quality, let alone features, do they? Actually, they do!
We made a video describing why That Green Thing did not support sub-publishing. When I was working on CWR generation, I realised that the explanation made no sense. And by trying to fix the explanation, I realised that I can add sub-publishing.
That particular video is gone, though parts of it will be used in a different video, explaining the difference between real sub-publishing and mumbo-jumbo. But it helped in making advanced set of features in an innovative and simple way.
Here I will talk about very specific features, and why they were included or excluded. Examples will make things clearer. And, for the record, these articles are actually not part of less is more philosophy. It is just that I like to blog, and in this case, more is not less.
User interface - Django Admin
I started using Django Web Framework as my framework of choice in 2005, precisely because the Admin was refactored. I use it in all projects, and in the last 5 years, it has been the only interface in most of them. That is the case with DMP, and now also That Green Thing. A no-brainer. While for some views, like Writer, Publisher, a lot of actual programming was needed, for many, like Label and Artist, there are only several lines and more of a configuration than actual code.
In any project where stability and interface features (navigation, searching, filtering, complex form sets, etc.) are more important than looks, less is always more with Django Admin.
This is more of a concept than a feature, but still, a crucial one. And it has a lot to do with aforementioned mumbo-jumbo, which will be the topic of the next article. However, a short example is due here.
There is a requirement by US PROs that a writer or a publisher can be affiliated just with one of them, and if a writer is in ASCAP, then all publishers (original, administrator, sub-publisher) must be affiliated with the same one. So, any publisher of significant size will have separate entities for each of the PROs.
And if non-US publisher wants to register directly in the US, and has writers affiliated with more than one US PRO, the only way to register is to have separate aliases for the US that are sub-publishing for their original name. It is just labelling mumbo-jumbo, no real sub-publishing is happening at all!
I introduced the concept of first-party publisher, to make this mumbo-jumbo bearable. As a result, this fake sub-publishing mumbo-jumbo-undo is included in the Basic plan. I’ll explain why real sub-publishing is different in the next article. It is a long story.
By adding this concept, many features became either much simpler or much more complicated to code. Those that became simpler were included, those that became more complicated, were not. It’s that simple.
Territorial CMO affiliations
With some restrictions, a publisher can be affiliated with multiple CMOs, who are then collecting for them in various territories. There are even writers with multiple affiliations.
Territorial affiliations are only available in That Green Thing for first-party publishers. Basically, those are the only collecting publishers in controlled chains. CWR 2.n does not include a method for specifying multiple affiliations for writers, so making it available for them made no sense at this point. In 5 years, maybe.
Less is more here, as editing first-party publishers is more complicated, but done rarely and requires additional permissions. Making editing most publishers simpler, will reduce the possibility of human error, but also, if it happens, it will only be contained for works of this publisher.
Agreement templates are available for writers (for original agreements) and publishers (for administration agreements). They are only templates, the data from it is copied over to writer-publisher chains in works. It makes date editing much faster and less prone to human errors.
In DMP, original agreement between a writer and the (only) original publisher is an actual agreement. The downgrade to a mere template in That Green Thing makes it less consistent and less restrictive, compared to DMP. Is this an example of less is more? In the hands of a publishing expert, definitely. I presume that That Green Thing users will be more experienced than DMP users. But, only time will tell.
As I already said twice, sub-publishing in That Green Thing is the topic for the next article. But, with That Green Thing, clients can offer sub-publishing services, as long as there are no share changes. Clients can send data in various formats, including CWR and EBR, but only data required for this service will be imported.
One of areas where That Green Thing has seen largest changes is in generation of Common Works Registration files. Actually, generation of CWR in DMP was split in two parts, one for generating lines relating to writers and publishers and one relating to everything else. The first part is completely new in That Green Thing, while the second has not changed. Neither has the generation of sequences and counters.
Less is more here. Not in features, but because battle-tested code was used whenever possible, while new code was written where absolutely needed.
Less is more is also visible in the removal of CWR 3.n versions, available in DMP. No society is using them yet. Once they start, DMP users will be guinea pigs. Once DMP is known to work, we’ll enable these features in That Green Thing.
Explanations and examples made here are just scratching the surface. But, it is the surface users see. I could talk about less is more from completely different perspectives, as we do in a video that will be released soon.