Eduforcement
When I introduced the OSMF, many people told me it would not work unless some sort of license enforcement mechanism was in place. I disagreed and instead focused on education. It turns out we were both right.
tl;dr
Eduforcement is education reinforced by just enough friction to ensure people actually see it.
A little over a year ago, WiX v6 became the first project to adopt the Open Source Maintenance Fee. As developers, we know that being first means you will find bugs. So, I approached cautiously and planned for no enforcement mechanism in WiX v6.
Instead, I leaned on the requiresLicenseAcceptance feature in NuGet packages to notify users of the EULA’s introduction, added documentation and prepared to be responsive to feedback as it came in.
At that time, many outside developers argued that no one would pay the maintenance fee unless there was some sort of license check that forced them. Before we launched, I couldn’t argue with them. But I wanted to believe that most companies selfishly want to do the right thing by complying with license terms.
When we launched WiX v6, the feedback came in. Many asked good questions that helped expand the FAQ. Some pointed out we missed some obvious documentation (oops, fixed). Some indie devs worried paying the maintenance fee would bankrupt them (oops, fixed). Companies asked for a better invoice option and GitHub provided that (thanks, GitHub!).
In the first 6 months, we had almost 100 companies paying the Open Source Maintenance Fee. I thought things were going great without any enforcement until we got the feedback that it was easy to upgrade to WiX v6 and not realize there was a new EULA in place.
I had banked on the requiresLicenseAcceptance feature to notify users of the license change. Unfortunately, I learned the hard way that there is a very long-standing bug in .NET that requiresLicenseAcceptance is only checked in the Visual Studio UI. Many of the WiX’s use cases do not go through the Visual Studio UI.
That meant the critics were right. We needed an enforcement mechanism. But based on what I’d seen in the first 6 months, I didn’t think we needed a draconian mechanism. I still believed leading with education was the best approach.
So, I devised an “eduforcement” mechanism for WiX v7. That implementation is intentionally minimal. WiX asks direct users to acknowledge the EULA once, while avoiding prompts during transitive builds where the OSMF does not apply. The goal was to introduce lightweight friction with clear documentation to improve compliance without draconian enforcement mechanisms.
WiX v7 launched a few months ago. At that time, we had almost 200 sponsors. Today we’re over 300 sponsors (100+ sponsors in 3 months) and no one has complained about the friction eduforcement introduced.
So far, eduforcement appears to work. We’re educating users about Open Source sustainability in WiX without managing an onerous enforcement system. Win-win.
I expect this will work for other Open Source projects as well.
In the end, I think both the critics and I were right. Users won’t pay the maintenance fee… if you don’t tell them they need to. :)