The previous blocker was that in much of the USA, this data flows through a central system operated by the Government (as a contract to BioTrackTHC, Metrc or Akerna/MJ Freeway/LeafData). So, there hasn't been a critical need for interop. However, recent states to legislate cannabis (Oklahoma, Maine) don't fully have that and one (Washington) is moving away from theirs at the end of the year.
The Washington state one is now, finally, getting some eyeballs to our API model. We'd been inviting these compititors for years to participate but it was crickets. Just recently a trade association stepped up efforts to get some parties to the table. After a few meetings we still haven't been able to even agree to agree. It's frustrating to be asked over and over if we're OK to have others contribute (TF!? we've been asking them for years). And the conversations go in circles:
a) what if we don't get everybody to participate? (we won't) b) what if the model is not perfect? (it's not) c) what if you (OpenTHC) take some nefarious action? (on MIT licensed work, in a public repo? feels like a bad-faith question) d) what do other industries do? (they have a common data-model (eg: GS1)) e) what if we don't get everybody to participate? (we won't) f) repeat while (true);
Then after the meeting, we get stuck in one-on-one meetings with the same parties from the group sit-down; and talk the same circles; and deal with finger pointing; and re-explain how common-data-model helps us (why are we explaing this to CTOs and techinical founders?). Sometimes it's even suggested to form a NEW association/group for this. It would be disappointing in our efforts to reduce the number of interop-protocols we actually create another one! ( https://xkcd.com/927/ )
We don't think the API is too complex, the models are very simple and (we assume) that everyone knows distributed/federated systems are a good design goal. We've offered many times to help with integration, run pilot programs, or talk through models. In fact, some of these informal conversations have led directly to changes in the model -- it's just the person giving the feedback won't do it publicly, there's no Issue filed, no PR -- and we still don't actually move forward on the integration; and the project doesn't have the community feedback publicly documented -- so it looks less "strong" than it really is. Many of the vendors have APIs (unique, bespoke) but they are just slightly different (eg: Area vs Section or updated_at vs updatedAt) and none of them are posted for community use and feedback and all that FOSSy stuff; so at the moment we're like the only one out there.
a) what are we missing? b) any tips on getting competitors to agree on interop-protocols? c) what are we doing wrong? d) what lesson did we miss?
The industry (cannabis farmers, labs, retailers) needs us to work together but it just feels impossible to get folks to play nice with each other. How the F did email come to actually work across vendors?
Do they? Are they? Maybe you need to check if anyone else in this industry thinks this. If they don’t then you have to convince them that it’s a good idea, AND that your product is the solution to it.
You say “many of the vendors have APIs”; will switching to your product solve the problem of interfacing with them? Is this a problem anyone is having? Perhaps you can push adoption of your own API by making a product that talks to all these different closed APIs on the back end, and only requires its users to learn your API to talk with all of them.
Perhaps you should read the history of email. Wikipedia’s article on it starts by noting that it took fifty years for the current suite of smtp/pop/imap to become the standard. https://en.wikipedia.org/wiki/History_of_email
No, the beneficiaries of your standard are the actual farmers, labs, and retailers -- in other words, your competitors' customers. But how do they benefit? Your standard won't make their software _cheaper_, at least not in the short term (see the point above). There are a few situations where these standards help software consumers. First, it can make migrating from one software vendor to another (relatively) easy, as the data can be exported from one system in a format the other can _theoretically_ ingest from. Pro tip: it never works this seamlessly in practice. The other primary usecase is where the consumer wants to incorporate several different software products in a modular fashion. If you don't already have a software ecosystem like this for your industry, this will be a chicken-and-egg problem. You're asking non-technical consumers to demand something from their vendors that doesn't currently provide value to them.
Good luck.
2-You have to demonstrate social proof of your momentum. Show who has recently joined, and use that to show people are rallying around it. Everyone goes where everyone goes.
3-Set it up so it isn't clearly "your" solution so they de-risk being at the mercy of a competitor. Open source, but also run by a foundation, not just you.
full disclosure I’m the primary author of OpenCannabis — the other open standard for the legal industry.
edit: learn more @ https://GitHub.com/OpenCannabis
One (costly) thing I learned a couple times as an entrepreneur is that it's almost impossible for a small company to make a market but they can sometimes move a market. In the same way, you might not be able to make the standard (the fact that you refer to it as "our OSS interop protocol" is telling) but you might be able to coordinate an industry group that starts with something small and grows it to what you'd like it to be.
Warning: This takes an extraordinary amount of time (I've been part of RFCs that took 4-5 years for complex protocols).
https://share.transistor.fm/s/957e541c
The other suggestion is I would try to find a small place to start. Of the different parts of the industry who is feeling the most pain from these problems? What is the smallest piece of the project you could focus on delivers immediate value to that group? Something that you can iterate on.
Is there anyone other than your company using this API? If not, it might make sense to find a single "customer" and make sure the API solves tons of problems for them. If you cannot get first adopter, iterate on the product/API until you can create something that a customer loves.
It sounds like people don't see strong enough value in being the early adopters of these APIs. You might need to iterate on API/product until they do.
Interop alone may not be enough at this point in time -- the pain of lacking it may not be high enough to overcome intertia.
Perhaps one way is to provide libraries that not only implement your protocol but also solve some immediate pain point developers have.
The reality is that because no one is using this protocol, your pitch is a really bad one for anyone you're pitching to - you think they should spend the time and effort to use your protocol, and what will they get for their effort? Nothing. No one else is using it, so they'll be implementing an interoperability protocol that doesn't actually make them interoperable with anyone else. Why would anyone ever do that? Why wouldn't they wait and see if others adopt it first?
This whole post honestly feels very self-centered - particularly "re-explain how common-data-model helps us (why are we explaing this to CTOs and techinical founders?)". You have to explain it because you're asking them to do work. They get to ask you whatever they want, as many times as they want, because you're not presently offering any value whatsoever. You need to stop assuming that everyone else shares beliefs about your protocol that are obvious to you, the person who spent a lot of time and effort planning and building it.
Instead, put yourself in their shoes - what would make this attractive to them? Since we're talking about interoperability, clearly if there were a lot of other folks using it, that would be a selling point. You obviously can't offer that, but you could try to get soft commitments that companies would use it if a critical mass of other companies did too - if you get enough of those commitments, you can then show that there's potential value.
You really need to find someone who understands sales or business development to guide you here. It sounds like you built this with no real input from anyone, and now you're taking it to companies, explaining what it does and getting frustrated that they aren't responding positively.
The one thing that it doesn't seem that you're doing at all in those meetings is asking questions. Why are you on HN asking what you're missing and what it would take to get people to sue your protocol?
Ask the people who you want to use it! When you're in those meetings, you should be asking people what would make this attractive to them and what would incentivize them to implement it. What you're doing right now is selling, and the way that you sell someone something is by understanding what problems they're facing and providing them a solution to those problems. The first step in that is asking questions - otherwise you're the car salesman trying to sell a guy a sports car because you think sports cars are neat, and you never bothered to find out that he's looking for something to take his five kids to their sports practices.
If you're serious about making this work, I really recommend finding someone with business development experience to help you out - if you don't, you're just going to keep spinning your wheels until the folks you're trying to convince just don't want to spend more time dealing with you. I know folks on HN are often deeply scornful of BD, but this is exactly what it's about - understanding the needs of the folks you want to work with and brokering deals that are attractive to them.
1) States aren't valuing this above the closed source tracking solutions.
2) Some states aren't actively looking for a new solution (having one in place already).
Unfortunately both of these are hard problems to solve, and have almost nothing to do with technology (which it sounds like is your area of expertise).
> we assume that everyone knows distributed/federated systems are a good design goal
This sort of assumption is sadly not true, at least from what I've seen. I'm in the UK and we have the Government Digital Service. They're pretty much one of the best government IT services departments in the world, 18F was modelled on them and they train other governments to set up equivalent programmes.
GDS finds this hard! That's one centralised organisation, with wide veto power, and loads of deep tech/policy understanding that means they do value things like distributed/federated systems. Despite this, and while they've managed to overhaul the UK govt's IT services, they haven't substantially overhauled the open data scene. Even standards like Gov.UK Verify (distributed/federated identity verification) hasn't really caught on as they hoped after ~8 years.
If arguably the best placed organisation to roll this sort of thing out struggles to do it from inside a government, then I'm not sure that a tech-focused non-governmental organisation is going to manage this without very significant leverage.
That's what those existing tracking solutions probably do – they lobby. They'll spend money on lobbying (marketing) and sell contracts.
---
I'm sorry this is such a negative answer, I'm all for open source interop protocols, but I guess I'm suggesting that you need to view it from a different perspective.
Assume that they don't care about it being open-source or federated. Assume that the closed source competitors are lobbying and doing all they can to legally bribe decision makers. Assume that even if you were actual government employees implementing this, that it would be an uphill battle.
Now, what can be done from those assumptions? Some things that come to mind are – grassroots organisation, getting everyone else onboard so that the incumbent tracking is essentially pointless? Maybe try for some legal challenge on the grounds of competition? Maybe hire someone who has sold the incumbent contracts to help you "sell" this in the tender process as if it were an existing solution.
I wish you all the best of luck, I'd love to see more open-source interop protocols for everything!