This post had a last minute change of tack, as Salesforce rowed back their
plans to charge for security reviewing free apps. It's still something I
wanted to publish, as I think free apps add real value to many customers and
I'd hate to see them go away.
Earlier this year Salesforce announced changes to the way that
app exchange listings are charged - a lot of us missed this, but
Todd Halfpenny, one of my co-leaders of the London Salesforce Developers group, pointed us
at it during the Feb event. Instead of a flat fee to list ($2550) and a yearly
renewal ($150), the charges are switching to the security review - $999 per
attempt. Apparently the stats showed that most apps take two attempts to pass
the review, so for most publishers the cost would reduce slightly. So far so
good. Then it turned out that these fees would also apply to free apps, whose
costs to lists would go from $0 up front and $0 a year, to a minimum of $999
(potentially multiples of this) to list and an unpredictable cost for periodic
re-reviews. Not such a good deal in this case. Obviously I understand that the
security reviewers need to get paid, but for free apps it felt like something
that Salesforce should invest in rather than pushing onto the publisher.
I've listed a free app (BrightSIGN) since 2015, provided numerous bug fixes and enhancements, written blogs
about how it use it in various scenarios, and supported end users when they
had problems integrating it into their setup. All of this has been done in my
own time at evenings and weekends. and I've never made a penny from it, or
indeed tried to. In the interests of full transparency there may have been
some marketing or other intangible benefits to my company - a few Salesforce
people used it for demos which might have predisposed them to us over another
partner, but I viewed this as a community contribution - something that a few
hundred people a year found useful so worth a few hours of my time every
month. To find out that in order to continue giving this away to Salesforce
customers I was expected to cover any costs that the $170 billion company
incurred didn't seem reasonable.
When I read this I wasn't mad, just disappointed. Disappointed that none of
the decision makers at Salesforce could see this was a bad look. Fleecing the
very people who are already going the extra mile to help you is the kind of
thing we expect from Mega Evil Corps, not Salesforce.
I can understand charging for security reviews of
freemium
apps, as those are typically a sales channel for the full featured version, but
free as in beer
apps already represent a donation of someone's time. I can also understand that
if there are bad actors chucking poorly written apps over the fence and relying
on the security review to find all the issues, that they should feel some
consequences. It should be targeting the problem with laser accuracy though, not
taking out the rest of us who play by the rules as well.
When I submit my app for review I do everything possible to ensure it will
pass - the submission requires a fair bit of effort on my part and I'd far
rather only do it once. I go through the code with a fine-tooth comb to make
sure it adheres to all the security requirements and I run it though the
automated tools that Salesforce make available to me. Sadly, I still find that
I fail at least once, with something that is either a new requirement or that
the tooling I have access to doesn't pick up. If Salesforce are serious about
ensuring that apps are in the best possible shape to pass the review, they
should give us access to the same tools that they use. In a perfect world this
would all be entirely automated and we'd just provide a link to the report
showing we'd passed to the security review team.
Another issue with this approach is the periodic re-review - often you have to
go through this even if you've made no changes to your app since it passed the
previous review. Salesforce being in full control of changing the requirements
under you, mandating that you have to re-review, and charging you for it, feels
like a process open to abuse. I'm not suggesting for a moment that they would
use this as a mechanism to generate revenue, but if they did there's pretty much
nothing we could do (aside from take to the socials!).
If Salesforce had pushed ahead with this plan, I would have pulled BrightSIGN
from the app exchange without question. I might be able to get my company to
cover app exchange fees, but that would involve a considerable amount of
effort on my part to make the business case and there's no guarantee of
success. I'd still publish it, but it wouldn't have the security review stamp
of approval so potential users would have to decide if they trusted me or not.
I'd likely supply the output from various security scanners, but there would
be no way for anyone to prove that they applied to the package version that I
was offering. I'd also tell everyone using it why I was having to do this, and
I'm sure I'd bad mouth Salesforce quite a bit along the way.
While I'm a very trustworthy individual, I'm sure that some (like my evil
co-worker) would be rubbing their hands at the thought of introducing
disruptive packages into customer orgs. Like many attempts to block things in
the past, it would just end up pushing them underground, almost certainly
result in a less secure ecosystem, and give rise to the potential for data
breaches that damage Salesforce's reputation.
The good news it that Salesforce have decided, for now, not to charge for free
app reviews after all. Hopefully this is a permanent change for apps that
cannot be monetised, as long as we keep up our side of the bargain and bring
our best work before the security review team. I can't help seeing the dabs of
the activist investors
all over this - not that I think they are determined to take down free apps,
more pushing for every department to be profitable. Sometimes the costs need
to be seen in a wider context - it might be a free app that turns a prospect
into a customer, makes the difference at renewal time, or helps a non-profit
with limited budget achieve their goals. I think that's worth investing in,
which is why I built my app, and Salesforce should too.