Of Referees and Wrenches : Cocomo vs FMS, Redux
I wanted to take a few minutes today to respond to Stefan Richter’s thoughtful posting from last week, responding to our announcement of the Public Beta. I’ve always followed Stefan’s blog pretty closely, and he’s definitely on my “top Flash devs I’d like to have a beer with” list. So when he’s got stuff to say about Cocomo, I listen.

Reading through Stefan’s post, there are a few nuggets that were really satisfying (to me, and yes, I crave validation..).
“Having taken part in the Cocomo pre-release program I have had the opportunity to use the technology first hand and the team at Adobe (many of which are familiar faces) have done an incredibly good job. The platform cannot be faulted from a technical standpoint.”
Thanks Stefan! More than anything, I’ve been focusing on the API architecture, designing the approach we take in exposing the Cocomo platform to developers. Hearing that someone at Stefan’s level of experience with FMS thinks we’ve got a good technical foundation, to me, is nerd manna. To extend the pat-on-the-back-fest for one more quote (then we’ll get to the real deal, I promise), I thought this was particularly gratifying – he describes how Cocomo development differs from FMS development :
“A key differentiators is the fact that Cocomo is a pure client side framework, meaning the developer has no access to the server side code. This is not a big issue since Adobe is aiming to provide all required functionality without the developer requiring access to any server side logic.”
For me, having been in this game a pretty long time, I can remember when an idea like the above (“no access to server side code!”) was laughable, something to be derided. Seeing the world slowly come to accept this idea has been a sea change that we’re happy to be sailing in.
But let’s not get too caught up in ourselves – Stefan has some pretty pointed commentary around Cocomo’s positioning with regard to FMS :
” What concerns me are Adobe’s efforts to push further into the domain of their own developers, and potentially competing with them on a playing field on which the referee may be playing for the opponent. I’m not yet convinced whether Cocomo will open more doors than it will close, and it is clear that any application built using Cocomo is competing with applications that were previously built with FMS. Undoubtedly this will drive some developers away from FMS since Cocomo is now the suggested way to build collaborative applications.”
I’d like to hear something more clear on this from Stefan, but I can at least offer my point of view [disclaimer, I work for Adobe, but I am not Adobe]. I just don’t see how Cocomo constitutes “competing with developers”. If Cocomo is the right platform for an application (which it won’t always be), then the developer has a choice to use Cocomo or not (be that FMS, LCDS, etc). At no point are we intending to get in that developer’s way – we’re not about taking away the option to purchase licenses of our server products! I don’t anticipate a sudden flight away from FMS – there are tons of great products out there using FMS, and most will continue to do so.
The “referee” analogy seems really emotionally charged, but doesn’t fit imo – I don’t think there’s a competition going on for developers’ share of money. If a developer chooses Cocomo, she’ll make money. If she chooses FMS, she’ll make money. In some cases more, in some cases less, depending on the situation. So I think there’s a difference in when you would choose which platform – but they’re just tools in a toolbox. To parry with another weird analogy – this is like saying that the invention of socket wrenches hurt everyone who used open-ended wrenches; they do similar jobs, after all.


So, although the use cases have some overlap, I think that the situations and audience we’re trying to reach with Cocomo are different than the ones FMS reaches out to. I think there will ALWAYS be a place for FMS – places where server side scripting is required, or a hosted service is unpalatable, or where really customized requirements just don’t fit with Cocomo. But the flipside is also true – there will be developers who would honestly never consider putting real-time collaboration in their applications (or even using Flex, period), because it isn’t cost effective for their use case or because it was something they weren’t familiar enough with to try. These are devs for whom Cocomo is a natural fit.
This is an important point. We’d like to lower the barriers to real-time collaboration, and hosting the service is a piece of that which can’t be ignored – it makes some things *really* easy. But in lowering the barriers, it also raises expectations, which I think has the potential to benefit *anyone* doing work in the rtc space; once rtc becomes more common, there will be more demand for it. If you’re a kickass FMS dev, you’ll most certainly be a kickass Cocomo dev, and for projects where Cocomo makes sense for you, you’ll have yet another tool in the toolset to get what you need done. Even if you never want to touch Cocomo, increased demand for rtc will still find its way to you.
I’m sure I haven’t fully answered Stefan’s concerns, but I look forward to hearing more from him on the subject – ultimately, the team we’re both playing for here is “people who want to make the web more immediate and social”, and I don’t see how recruiting more players hurts our chances of winning.



