Monday, October 17, 2011

Platforms vs. Products

Depending on the tech circles you run in (or keep track of) you may have heard of (or even read) the following post that was made by a Googler who formerly worked at Amazon.

        Stevey's Google Platforms Rant

Who knows if it is/had/or will have any impact within Google, but it is still a great, well thought out post/article/tirade about how to "design" something and quite honestly in my opinion the underlying tenets can be applied to the design or architecture of anything, not just software. If you're designing a building, do you want to design a "Product" or do you want to design something that people will be able to "plug into", make use of, and adapt to their needs? Sorry FLW fans, but in some respects he was a bit of unique genius like Steve Jobs, and most of us are just not that good, we can't design something that will perfectly fit the end user's needs 5, 10, 20, 50 years down the road, the best we can do is design something that will adapt well to meet those needs as they come about.

So besides a commentary on design over-all, why do I bring this up? If like me you're passionate about where Revit can go, and how it can help change the industry, or if you're just really frustrated with its current limitations and what it can't do right now, then I think it is important to look back at Revit's development history overall. Originally Revit was undoubtedly designed as a product. The stories from out of the Factory back that assertion up with no ifs, ands or butts; "tell me what they (user) needs it to do, and I'll (we'll) make a tool". That is very much a product mentality and quite honestly it is what is needed to capture people's imagination and more importantly market share, you need to be selling a product. However as the article makes note of, Facebook somehow someway did a great job of starting life as a product, and then became a platform.

And that, really is the key for Revit, and where we are today. Revit is quite clearly (and has been for the last four to five years) on a path to truly becoming a platform. The unfortunate reality though is that its taken a great deal of upfront investment that you can't see, to make that transition, particularly for a product that did not start its life with the idea to be a platform (the article also clearly talks about how this transition is not easy). The other part is that Revit isn't done yet, if you talk to anyone who knows anything about the API, they'll tell you there are numerous parts and pieces that they don't have access to yet, every year the API grows stronger, but only as feature teams tackle parts of the feature set that need updating, add news ones, or where adding API hooks are easy to add. Furthermore, developers have in the words of the posting started to "eat their own dogfood" in terms of developing against the API, and not creating custom hacks, and data transfers to make things work.

So why should you care (if you don't know already)? First off as Revit continues to evolve into a platform more and more you will see an ecosystem of Autodesk offered services (Autodesk Cloud) and tools as well as third party software tools and services that really start to get at "doing something" with these great models we've got (see my post "Quack!" for where I think the next big development bridge is). Up until recently most API tools were confined to aiding and assisting direct modeling efforts, however more and more there are tools showing up that are all about doing something more with the model data, whether it is Project Storm or Neon (structural analysis or rendering) or Newforma's plug-in (still needs some work) or some yet to be announced tools that I know are coming from developers (exciting stuff coming) or even experiments like Vasari, it is clear to see where things are headed, and none of it would be possible if Revit does not act and breath like a platform and not a product.

So for the Autodesk'ers out there that I know like to browse my blog, pay attention! I think you're already on this track, but this is only further re-enforcement of the direction that you need to head in; and for the users out there, have patience, the more that Revit acts like a platform, the easier (in the long run) it will be for Autodesk to add the new features you want, or have someone else add a feature for you, or potentially have both and you can choose.